From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F7F0C433EF for ; Wed, 5 Jan 2022 09:00:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 99C856B0071; Wed, 5 Jan 2022 04:00:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 924C86B0073; Wed, 5 Jan 2022 04:00:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 79E9E6B0074; Wed, 5 Jan 2022 04:00:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0052.hostedemail.com [216.40.44.52]) by kanga.kvack.org (Postfix) with ESMTP id 626136B0071 for ; Wed, 5 Jan 2022 04:00:22 -0500 (EST) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 27FAE181C49AA for ; Wed, 5 Jan 2022 09:00:22 +0000 (UTC) X-FDA: 78995637084.04.D23D530 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2089.outbound.protection.outlook.com [40.107.244.89]) by imf17.hostedemail.com (Postfix) with ESMTP id 08E6F4000C for ; Wed, 5 Jan 2022 08:59:59 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=byV1v1czLuppSSa0zX/RruvnXFylj9l2DidpSsNVgYwi/cEynp7hRT5LzfdnOasTJpiaA+hF7U35QXyVtfo8vVZXS62+AcOAJNMp8PHghjs+YTLFYfzHyQ3aEY9R6UxYhHmFlYeCcGvaxLr95++5dLDC6iekbeil++2NrwJfyNWQ7Kur76xg5Jo12xdLv0Kjng182qzuP9nelEmLEtdDpNp5lFVfSbPXpYfHUiS1q1W5/hqajumDgc5bCdI/1dhHlMoDC5RVX9TeIvyBJqNnALB1z6UR05poFI9dz+aXB5roZOvuVbmN9t28Jak44VuIP0nsCdvJGscf/iBJ2v58yQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=R78c1umUqDYMtQuoodyLAr3bfL/1ZRQ817d71igag/o=; b=L1kKdhQ6P/XoVFONZM93fC1u+HYa1prjoE3gCd4gsPHPNwL2PCRuRBlMxKma/xHe1egQItK9z3sVxWTds3hS6RkWvqTW+LfVd16rnAzc617KB1v7Mu274B0yW0fpXLPpkSBsnDmQ+fi4dAy/zYBcMfFX2QNwy2InpdzQXl6oV69CicxW3Hjknm2zqZ5VRLncb/qUatXsQzW+/p8cxbqM7OxUsCwCdsR8HW2AmMpVHItlNIVnxQUqW6Biu0Uu4xlSqo04HBuEc0FPXB6o7fmtSf5GfgjOu7pwvZVR9BZD+BNXW3AOGSEJvLOywLFkAWDMoDyWgqyj+J7VpST5XiSvIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R78c1umUqDYMtQuoodyLAr3bfL/1ZRQ817d71igag/o=; b=AnTW3dQqBCofNf7uwdniHJe1V/ZTzzqjIGxCT1csMRynzNM7bQ8XbuXu44qfYz+tT0u/gdgUFC8b1V1FOzqB5WYyVSbXnmu86u8iyfO1aaQYwoD7rWTOTSD4sEilPlgqco/l+VpqDI62uNPAmKNrxZ4nMUCYwg7I9gSx5P1YIDGifY+hvXPWm7vcnd71FosVmDfFxK86D4DwWk4s8RCPLKduqM6l58r9LjEjjkSSQKQbcXnQ5XV3OnBxMnEFhZ8BaI6BuIZ4337cXD+knck1us5p+QVmQvEoxX/ZunLAdNxxHB6HzfS830+10/laInp9Yf0eUi+ffYUc+JY/w/StbA== Received: from BY5PR12MB4130.namprd12.prod.outlook.com (2603:10b6:a03:20b::16) by BYAPR12MB3383.namprd12.prod.outlook.com (2603:10b6:a03:dc::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Wed, 5 Jan 2022 09:00:19 +0000 Received: from BY5PR12MB4130.namprd12.prod.outlook.com ([fe80::8496:16fd:65c5:4af7]) by BY5PR12MB4130.namprd12.prod.outlook.com ([fe80::8496:16fd:65c5:4af7%4]) with mapi id 15.20.4844.015; Wed, 5 Jan 2022 09:00:19 +0000 Message-ID: <3d51ffdb-7c3d-0d57-4850-0a220d391898@nvidia.com> Date: Wed, 5 Jan 2022 01:00:17 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH 17/17] gup: Convert check_and_migrate_movable_pages() to use a folio Content-Language: en-US To: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Cc: Andrew Morton References: <20220102215729.2943705-1-willy@infradead.org> <20220102215729.2943705-18-willy@infradead.org> From: John Hubbard In-Reply-To: <20220102215729.2943705-18-willy@infradead.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR13CA0020.namprd13.prod.outlook.com (2603:10b6:a03:2c0::25) To BY5PR12MB4130.namprd12.prod.outlook.com (2603:10b6:a03:20b::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3554a651-053f-4f7a-286c-08d9d029cc49 X-MS-TrafficTypeDiagnostic: BYAPR12MB3383:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TPYWUkEQIUEkENPCKqFVCflMpOr2rase+NVJUUz7I8auAHEpXOqfXZrCnjIKEZrcSAkVlkdfdMiR0mMJTk2SF+ugfC8WjygGSpgO8OO2pvRd973F7RPbqrT+kZw8D2LguJtJ7KteGmhQIjZ2ztF8f4Iym1hPm2rilULLkrWMCKjD6+tUJNuJIoZ74Gnc+phuRshxEsZOF6VsDZ2Ba5lkCP+F8Ri81RPGLdUvfdqxPcaKnIXK8Z3LZBr2HeVI7M9dp65owmb6a1rUH/oTP7Mpem49CJ7W+S3XFHBtFKRjGX4k3iUEUhc1WsP741dcGAqA9xJN6HQd/r7/oe1lVuoGysWwzoxbLMbzKhTfpmdQwC2+vkVYm27IAV3S2tu4K1f+JSMC3AECLLQk7uSRlMiRVh/NKGhpBN/n+NUdGM2b0UdamfNTiGwTs89eCoAhrKRpE5TnOebOX5dyKHSusH4REocnDoFrFLVgshYVS5us3ivY45b8U09b3fTps6doXSb0wqw5gcjooVfFolX4Ms/UsogN8FNz9z09ts1G3V7gT+WFHJ3j98/s44/44/F3sF1lDG8bklcWbE7kio0FZNEMvR7B2TRY3eO8J00DvtnV3oPpzbe20J2oWU/aZrKsKU1Gr43GFxtkXwAVaWb3xbnK1XFcrmBnmZ5SRzCACFxsBRyYYArOZfgOB9JNGvoTjLFPP8r28lzz8wcuDM+3tuVdtSY/LB7GJzdlSkppVaneTVA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4130.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(26005)(31696002)(2616005)(86362001)(36756003)(66946007)(66556008)(53546011)(66476007)(316002)(31686004)(38100700002)(6512007)(8676002)(5660300002)(186003)(508600001)(2906002)(8936002)(6486002)(83380400001)(6506007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M3ltRkRXNnV2Z1BpVUNzbW82VmU0OU9zd3QwOFByTmxJT1EyWVIxajgwV2Nm?= =?utf-8?B?dzRFODdPbHpQUmJYaEFiM2RGS0NqODhwZnkyS1ZzRGM0MHN3YVR4NTZlZ0Rs?= =?utf-8?B?UEtmSDBLcHRucDdVTEZzWC8xT3pocWRUbkEzRzgwcDhEMFMyVjhuMytoaTdB?= =?utf-8?B?bjQ1eXBqQnZQcXlrdTZOQnBZMkxJOEVVSkhuS3NhRWRDNkVOanFOb3Vtcjk1?= =?utf-8?B?RmVvaWtYcnY2UnRaMVprV25iRVJnaGtsTVk1R0FCZXBZeWN6SE1YVVNpRGVL?= =?utf-8?B?WEVYMkYySHI2c2xFem1QREUyQnhnd2FocjlNYVVmV2s5VmRaWUhDK1daWTdh?= =?utf-8?B?VkFGUlNKaW8zd2t6SlBjTVAxY3dsSlI3MnBNM2laUmQ5bS9LME5DQ3kwN1M1?= =?utf-8?B?WDBld2IvY1VNRUJPdmN1L3c0ZThQdHJ2MWRrYkNsRmo1THRPbEwyNmY1ZkxK?= =?utf-8?B?QkJkanFlcDdPaW9HUkMxYTZTT29zaFdubVc2cTZnZ2p6REhaeDVtQzVvQkVz?= =?utf-8?B?M3RCYmU4SWQ2MzF4U3RYNnVYMFZrRUljMWhRUTQ5aDI4NU5NeU92K0QvcVlP?= =?utf-8?B?aUdmT2R4eDMzWjlUYjR1QWpIL0RnZDcwYmZFZGhPak9uWDdnQVZmU1hLV2Nq?= =?utf-8?B?RExHdWVlVG9WQVZWQkN6ZmNLMDZyaml4d01XS1V1bzFsUWZqMmNzVTNDMlBp?= =?utf-8?B?QXQyZDE4a0hhTXpEdG5KWis4NzNGeUVOSE9ZQjBldHZGSkhoNXV4SC9XMlVw?= =?utf-8?B?Vzg0bFFmSkFSNVZiQjZWZE55YkNXOEJLRnlFZTh6RFZzWVRXNUt2NUkzSFAr?= =?utf-8?B?SktJcU9HOEpmc09WRnhhZC8zblFhQnVoTEhCWkJhajl5QTJwTFQ3dWUzZ0Jm?= =?utf-8?B?Zm5uLzAwMGpmcnBVZmhxdFVGMGs4M2E3aXV4dVp4VkcxNnNhb2JiMEVRRGdM?= =?utf-8?B?alVmbnZ5cDU1c1ZNSUplYzFoUFZWVHhPTytWbys2Q052aGNSUnBzRklrSlls?= =?utf-8?B?TnRmcFE2TTI2OTEvSGV3cUs0cHRKb0o2RVZlUEswUCtVTTR3dzhobk8vZmJm?= =?utf-8?B?NGJlNEtaWGtrNnVESGliSHczSEI0bUZ2U1hGckVReXJ0U2dLL2RTUXZkT28v?= =?utf-8?B?SFBxdGJqUkJjNkpVL2drNW5vTDZreUVDbllkS2hwZXhLbTcvUXMrU3pQNTVV?= =?utf-8?B?cjBVMkNLV1FSVFFOM093UCtUWXErSFZQZTArc1Y0UmRDdGFnUG1kcFBITDlU?= =?utf-8?B?NHJKM0tYdGMzUFdxQm9DeHEzYjVTMFF4MFR2QUdqSGNTeVhQTGppNG9CSjkr?= =?utf-8?B?N2xhTE5nRUFjTE96YXRuMzE3MDRVUXVGSWRkUlIxLzV3ajlUR0RVTWJaME5T?= =?utf-8?B?V0M4RE1PVGdqVDdZY0lQeUNRb2NLNWVERGRpSUQxSFBtbUcyVlFIaEt1TGgz?= =?utf-8?B?TGQ3c0ljdVVTTXpQL1F4dndmOWlsZ0JodUkzTU5vYnUxbFlHdEhPZXoyOUFz?= =?utf-8?B?bS9iQzFESm81RFZCakJpdno3bG1PK1VSMVVIUWh0R2MxRjBlL0R6WVpObnlx?= =?utf-8?B?SmdPRnBmVnh3UjE3UDFiUit5TExYOTRJMWlnRWo3S0p3Z2RSUDEvSFZDbHp6?= =?utf-8?B?MWdKSnJML1d5WFI0ZzJqaThWZnF4L3ZGMWlMQ040K3c1WWUvVjlKODJUUlRI?= =?utf-8?B?Zi9adndLc1ZZUEFLTFpQUGQ2MFF6aFRCNzRGaXdqbmRkVldGM2xraDJmMEJQ?= =?utf-8?B?UFoxcXZaOUNINFQzSzFrY3ZDNjJRWU9kUENlcGFraGcrRmhsOGgwdWRmbEEy?= =?utf-8?B?THIvV0x1UnI4Vmw1RHJyQU11cjN3ekRJMDlrN0pOZDlUWWZ1K1dYYmQ5c2RJ?= =?utf-8?B?Zm1LZ1RKNWduUWU5c1VsZ3YyMEpDR2l1ZFNudDFLYitCS2lidXhsT0UzZ1lY?= =?utf-8?B?Qm9uV0k2NmFYZ3FjWGtNZ0ZBNFdYb0pDYUNHVUl0NnFOdEw5R3VIckhpSHFM?= =?utf-8?B?enJLN3ZROTVhNzFKcVk4ejQrK0ZLTkdabG1HZ0V5T2E0OS9yWWZBMGtMUmRy?= =?utf-8?B?aTA0elQrUGp1V3RZYStJRkZkc3pnVGlzNXpVUzdrWUc3VGE4Mkg0MTkzRGpJ?= =?utf-8?B?L284SnN0RUltUmk3WnZUaUdZUTd1RGlYdExkY203S1d0ZkFmTmd2WndyOUhG?= =?utf-8?Q?MGOK79jxmz22U6QB3JgHc5U=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3554a651-053f-4f7a-286c-08d9d029cc49 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4130.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 09:00:19.0624 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KF/UC4X6+Zv8T6pZvjoiQ2B4khSnMjLCOe8Sherxm/4cGqEjOZHDexHwSBGdaARqSxxzCug2eCesLwP1olBBzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB3383 X-Stat-Signature: mxncgwnbhkciuhh1r4h557413ymxxw5y X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 08E6F4000C Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=AnTW3dQq; spf=none (imf17.hostedemail.com: domain of jhubbard@nvidia.com has no SPF policy when checking 40.107.244.89) smtp.mailfrom=jhubbard@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com X-HE-Tag: 1641373199-707340 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 1/2/22 13:57, Matthew Wilcox (Oracle) wrote: > Switch from head pages to folios. This removes an assumption that > THPs are the only way to have a high-order page. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/gup.c | 28 ++++++++++++++-------------- > 1 file changed, 14 insertions(+), 14 deletions(-) > Reviewed-by: John Hubbard thanks, -- John Hubbard NVIDIA > diff --git a/mm/gup.c b/mm/gup.c > index 76717e05413d..eb7c66e2b785 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -1822,41 +1822,41 @@ static long check_and_migrate_movable_pages(unsigned long nr_pages, > bool drain_allow = true; > LIST_HEAD(movable_page_list); > long ret = 0; > - struct page *prev_head = NULL; > - struct page *head; > + struct folio *folio, *prev_folio = NULL; > struct migration_target_control mtc = { > .nid = NUMA_NO_NODE, > .gfp_mask = GFP_USER | __GFP_NOWARN, > }; > > for (i = 0; i < nr_pages; i++) { > - head = compound_head(pages[i]); > - if (head == prev_head) > + folio = page_folio(pages[i]); > + if (folio == prev_folio) > continue; > - prev_head = head; > + prev_folio = folio; > /* > * If we get a movable page, since we are going to be pinning > * these entries, try to move them out if possible. > */ > - if (!is_pinnable_page(head)) { > - if (PageHuge(head)) { > - if (!isolate_huge_page(head, &movable_page_list)) > + if (!is_pinnable_page(&folio->page)) { > + if (folio_test_hugetlb(folio)) { > + if (!isolate_huge_page(&folio->page, > + &movable_page_list)) > isolation_error_count++; > } else { > - if (!PageLRU(head) && drain_allow) { > + if (!folio_test_lru(folio) && drain_allow) { > lru_add_drain_all(); > drain_allow = false; > } > > - if (isolate_lru_page(head)) { > + if (isolate_lru_folio(folio)) { > isolation_error_count++; > continue; > } > - list_add_tail(&head->lru, &movable_page_list); > - mod_node_page_state(page_pgdat(head), > + list_add_tail(&folio->lru, &movable_page_list); > + node_stat_mod_folio(folio, > NR_ISOLATED_ANON + > - page_is_file_lru(head), > - thp_nr_pages(head)); > + folio_is_file_lru(folio), > + folio_nr_pages(folio)); > } > } > }