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 3D6E4C433EF for ; Wed, 5 Jan 2022 07:36:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B0E96B0071; Wed, 5 Jan 2022 02:36:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 760906B0073; Wed, 5 Jan 2022 02:36:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 601616B0074; Wed, 5 Jan 2022 02:36:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0169.hostedemail.com [216.40.44.169]) by kanga.kvack.org (Postfix) with ESMTP id 4F43F6B0071 for ; Wed, 5 Jan 2022 02:36:34 -0500 (EST) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id F18E5180B7D2B for ; Wed, 5 Jan 2022 07:36:33 +0000 (UTC) X-FDA: 78995425866.12.F711C23 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2041.outbound.protection.outlook.com [40.107.237.41]) by imf23.hostedemail.com (Postfix) with ESMTP id 66DF2140004 for ; Wed, 5 Jan 2022 07:36:19 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y5XeiBAz7wZJQJQvpeBhRoTY2hd7C2XOgJSntqBqzm6WUtt8hgm+7vmPmcWMu/d9yVLGlZTSAtNjctttWlMD/n4kldE300Pj3GLzjC51pMV/LhxtnOcc+kWpfgkgkYDHh4XD9+dc5/PGMSF0E8m0ha+UPvtF7/IjvlnJ4IGTId5sNlaoZDRhrw5p49e5z5XEq2fNpyyaU7O6TBaVKaiNBpnw4soRNVtk6MEGRmOoeFv5Wao8GqTO96NCFGwsDCbwop9yMq2Knxoezzp0obwirbIre1CD2dSL+5xFV98kIfT7xEIZkGBeOP93aGA9leh1zPAflrY7hcknRkbH8dnzSg== 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=MmD2EgyM45zoNHqh0tsUFS1v8m6eRCQEhS/ghe1NxKM=; b=lPqMit/QtP0UU0gQ/1D0xmAavYNjbkCPzTYVO0TUPiL32c+L5sfMKHQvYxV7P/26Ev8CbRcpyZAwhyeV1zehWi62nbF4O37zdAe5v6XyfcMs56Z1zLlkhzQX61LFA962wGy/qxnrBbom/UGUk56VUfJszslyu5Hbfdjm78R7OT45m83zPEOcIlrXpSFmv5nGgnSjy1d7dZrgyIgvs9TIzaxyxfkv01x6zLTwxB1+SfUV1rxKqUaLeVPn6ZhN6mH8JDPE9mLrXf6PROkziJFFfy34Yu5TMGczqelCS38PI7Q43TjQ0mbBXBUMo6dpD510HKFKIsMtfb1I+1BiyS1P4w== 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=MmD2EgyM45zoNHqh0tsUFS1v8m6eRCQEhS/ghe1NxKM=; b=CGtgyaqcURpfprW+g5wSDmMuQJs/5hRoqcAvKrDGRaB1duXXyziuckajEx7/3v+ck/lbeyJAfSrz8Zys5Lv7pmVdKvfSzv+vTY7CC8niQOKEQNCKZIrE5pJQ0eevabIw3BqhCvGnRb5oyRa54yQswUKahL8pWhMladwjR53ea3UwnMa1jmN1oVnitjANdqppDOOp35XDmjD1X61PlJ9oZXccirOotT8zqhVKJ0jrTIoe4F0mTe7Cy13onAcXrWb1cixQ2k90JLITQ81NoSbzS1GvMc6T1SbwPpWGmAaIINI/UsTM0wurjAbpkgY7d3/3N8d8N9qBdnvEk27WZhXBHQ== Received: from BY5PR12MB4130.namprd12.prod.outlook.com (2603:10b6:a03:20b::16) by BY5PR12MB4965.namprd12.prod.outlook.com (2603:10b6:a03:1c4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Wed, 5 Jan 2022 07:36:31 +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 07:36:31 +0000 Message-ID: <02e2dd23-4400-1ac7-8e5c-ffdcbb8200ad@nvidia.com> Date: Tue, 4 Jan 2022 23:36:29 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH 09/17] gup: Convert gup_pte_range() 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-10-willy@infradead.org> From: John Hubbard In-Reply-To: <20220102215729.2943705-10-willy@infradead.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR03CA0344.namprd03.prod.outlook.com (2603:10b6:a03:39c::19) 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: 9e289a70-1d51-4979-9871-08d9d01e174d X-MS-TrafficTypeDiagnostic: BY5PR12MB4965:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U/ARSvaltzPf8fHDi3exOpwVco51m7wOECuyyBoeaaq+bp5etxzfVRIY7N0hsCHv2TzVVcc0mdhNlQGSPWsEaIHHO9KAG/sRKVwRpL571O4KXuZcwPQspFTgncTGnc3HE3zz7Z1H+EILQWSHS/3zJnnBuKy4oRc7sTd4E90gMLBI4P0Ux16LxgwVGZldrGq3w2bo13kHgukqwifD8WK9WwHNmulB6SgoXrlIgvrPsP4VBxm6jqkmE7kVhCK9vlXCIMAC+Vjfi9BBmQT8bNoSEmok+a+aEBSFizLAiuaLneMHj8odp2gV/ap5cU1jak53GFFuprKG5CtS2Fh0NW97tfVUgXvHIiF7S9+4Jcq4SP7Z47/bi9kDSL3I+adbq5kOYn7TqeHbiu5yRMzxcA7nX3T7y55eJwAnhMjL99ZluY3jgDpRD0VnxvuexM/doE3/QNo69dUOxAm6PWYYCPdsfMXhwJPoL49YeQ7bkotKIGEF8FmjwURFtY6geBr6SOzorRT8dIRaspTwRNaI9BucUDtPi4uAHTe6wxtwK6sPoOm3aF26Nuh1kV/V+0VrVGckStks0yaSccG79gVLKQghvkrPJkt+98/SiF3XaydUVi/mbDXROg09RBiYCpQHodI6tya/8axUr3aaQiLM/YgfOXqrP2LLGvuD4nWRIFM2VV+irqtNIfZrY9ruqWFstXRhfW2j3CUIgC6SayAYOsK4sNvzl0cYAqmYu1PjYmOXbIk= 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)(5660300002)(508600001)(31696002)(86362001)(31686004)(8936002)(8676002)(6486002)(66476007)(36756003)(66946007)(66556008)(316002)(2906002)(6512007)(2616005)(83380400001)(53546011)(38100700002)(6506007)(186003)(26005)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YU52OFZ6cWNrZmh6ckxuRG9mYldXSTB3Zm9CM21nN1BwMDdHczZXSkRzVmk0?= =?utf-8?B?NVEzODhrUHUvZWV6WEtQRXBSWlNaSlpKcWZzMjF1dmZQd0ZaVVMyZ3VuaUtl?= =?utf-8?B?TlRsN2Jja2VlTENnR2tDb2tEN0tPQzBzWkxQYjJMa21zSG9OdFJPTGo0S0Zy?= =?utf-8?B?UW9Ebml1a0o5d1c1RkppWXJsQjdrdTh1aS9Fb3JwR2M4ZFVieUgwdm10cGhs?= =?utf-8?B?bm5OK2NrNStMMzF5L3lnNTdSZGVyeVZscTZPR0MxRGYxTmsyVDBpeDJpVm5W?= =?utf-8?B?N21EUjZDbVhkb1hOQ1BtM0JCTjRMdVpJRStRTHdqZG1OSVhBc1dJZnpQS2RW?= =?utf-8?B?c0ZFUmlnZzEvWm4weUkxbHJFMFd3NS9leVpNWWxjZTFsZUxvOCs1RnRJM3dw?= =?utf-8?B?YlI2U096Uy9OR2FqVUVYNW5GUVJLVzNzZzBqSjFwSHlWRDAzYjZTK0VCV0Zj?= =?utf-8?B?UE5oaVZ5NWozdUdDUVplMUhUbTZTUm5McUZLL2dGaFlrazJ4THAwK2d4a0M3?= =?utf-8?B?WXFxNmppb216Yy9aYlFQWWRVcFFxTy9XZVU0TjF4bnFoTlkvbHhRYkcwck50?= =?utf-8?B?R2xjV0xDZFNreFl5NmRzd0ZWZnp4VEZXZk9pQXFmcFc4Vmd3NndSUDFqY1dP?= =?utf-8?B?R1NNYVJlM0JyekZWQXBKUldQeGxaVC82eGJRdWdRTW1QZHpXU2g1d1lwRDhG?= =?utf-8?B?N2NUTVJlYUovWnA4SHlIR096dUlaQnQ2RXJZTEJFWHpCN2ZZRG5XbWpmMHBJ?= =?utf-8?B?blNWSmZQMnF0NXUvZWorOWtiVEI4YUM3eXN6MDJQYmdpRlIyZmZwSVIxS1Fp?= =?utf-8?B?c0hjUFZON1RsZmJtUlJ0d0lGTGI5cWZBcHVSaStHWG5rYkJPclp0U0lIT1Ft?= =?utf-8?B?cHkvTkZNMm5LY3M2NHBCVEZjNjE0eWJUaWRNT2pBSFYyNTlXdW5ISWsxcmo0?= =?utf-8?B?d2xNQmNDejRldEF4enZjVkJyaU1pTkp2T2dyczJQbXpNdE5NZmF0NDdIdTdl?= =?utf-8?B?VkRVamFWT3hZZklwSmV5R2NBalF3dTFweW1jTDJMbVUzUmo3cllBMk9FcFZp?= =?utf-8?B?SHVnWDdPTmx6YnZJQThwd1pRYlAxV3F2OWJNVitOeURXTVNlQ0xLNTRwS1Q5?= =?utf-8?B?L2hLR2lCTTdQaWc4OVpFNWdYTWhvMFJ4Nm9scUhxei9FUlZnQ2M5dEhKeDdj?= =?utf-8?B?UUlIWCszbEZDbXIwV2ZDQjZYTE5TMjNyOVRDTk50RG9uMGwveGhDR08xTFR1?= =?utf-8?B?ejFDbWVsSHphNjdLQVNDaVAwM1RGVWZwb3RqWGJHWEpQeHV3TERqU083QWwx?= =?utf-8?B?L3RicTZqSzY2czZwNWpjdzQzT3IyTGpla3ROK0xCZ2wwWERabllXZkZPNWIv?= =?utf-8?B?WG0zOFYvQnR2KzVHbzhtdTE3SG80VjVVanpib3VCaHliY1NSV1FCcnNtYXk1?= =?utf-8?B?TDAwbC9ESHBiQXJoemI0WXBhN0pQZ3ZTK1hhSGJ5cTUwVC9oNktMdi95d2J1?= =?utf-8?B?NjlndWt6UWNwK1R6anZnT2dMTG54T2RXTXBFVWozZ09YSnpzTEJRTE9zMWJs?= =?utf-8?B?NkNndEp6TWozY3hnSWh2ZjNER3lKRmJ2Uk9uVTFuQVNpZy9pSE4yYUpzeXcy?= =?utf-8?B?eVM5K3IxOU02dzlCK0doS3FDNmx2OGNGUjd5SCsvTzdhMnJETmJGYnR5VW1V?= =?utf-8?B?cU5DUWVuNm5qQ0UyTUlSdlF0WDNmQlVKRGtwTkpsWVE4WlRWbkpvU0szRFM5?= =?utf-8?B?TUpMWEYrdVJmU1VodktkUC9UTFp3U1Q1KzdTNURWQ21IVmlIbFpLWWxHYUp2?= =?utf-8?B?UlVibmFrVVB0cjBaLyswTGQrcy9UZU9Ea3BmWmZSamRQQTAwa0U2VnFRSVlw?= =?utf-8?B?REVUb1pwQ0JyYm5ESnpNdVRsNVdhbXo3NThhM3VnZTRDTjh5TGVQaU1BU05R?= =?utf-8?B?UXVXdU5JS1RBU20wMUFSemUwL1ArWW1JMDNJMHh5ejhISnpxb0xEUWVoWnZT?= =?utf-8?B?bkI5emFtMmFXVlVESFhKTWlmRFZXM3VpSjY0dlBhNWwvT1BPOC92Rm0ybHJD?= =?utf-8?B?QWZNSjF5QmpNYkZiZ2lCMlpjVG1JV042R1V6SE5NMmYxVGtQNVVzUGR5cktC?= =?utf-8?B?MzJQeWFXUnZmUGF1ZElHNTV0ajVEVnF5UnhRNkU1NVhVQ0lkc3J4dnpFZ3h6?= =?utf-8?Q?e/JGHDs9FYjnB1BKGhHuHrc=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e289a70-1d51-4979-9871-08d9d01e174d X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4130.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 07:36:30.9911 (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: DipXIR9hU+mD4WPspCZll3H670IIMwS6jm/DJJ1wL02WBvb8Kc5C15jFQuDLADH7lGqSp5KMt+oOytJxzoTNnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4965 X-Rspamd-Queue-Id: 66DF2140004 X-Stat-Signature: 87bcxyc9q8teejisd69yq1q6k7fbt6b9 Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=CGtgyaqc; dmarc=pass (policy=reject) header.from=nvidia.com; spf=none (imf23.hostedemail.com: domain of jhubbard@nvidia.com has no SPF policy when checking 40.107.237.41) smtp.mailfrom=jhubbard@nvidia.com X-Rspamd-Server: rspam11 X-HE-Tag: 1641368179-641101 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: > We still call try_grab_folio() once per PTE; a future patch could > optimise to just adjust the reference count for each page within > the folio. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/gup.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/mm/gup.c b/mm/gup.c > index 2307b2917055..d8535f9d5622 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -2260,7 +2260,8 @@ static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, > ptem = ptep = pte_offset_map(&pmd, addr); > do { > pte_t pte = ptep_get_lockless(ptep); > - struct page *head, *page; > + struct page *page; > + struct folio *folio; > > /* > * Similar to the PMD case below, NUMA hinting must take slow > @@ -2287,22 +2288,20 @@ static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, > VM_BUG_ON(!pfn_valid(pte_pfn(pte))); > page = pte_page(pte); > > - head = try_grab_compound_head(page, 1, flags); > - if (!head) > + folio = try_grab_folio(page, 1, flags); > + if (!folio) > goto pte_unmap; > > if (unlikely(page_is_secretmem(page))) { > - put_compound_head(head, 1, flags); > + gup_put_folio(folio, 1, flags); > goto pte_unmap; > } > > if (unlikely(pte_val(pte) != pte_val(*ptep))) { > - put_compound_head(head, 1, flags); > + gup_put_folio(folio, 1, flags); > goto pte_unmap; > } > > - VM_BUG_ON_PAGE(compound_head(page) != head, page); > - > /* > * We need to make the page accessible if and only if we are > * going to access its content (the FOLL_PIN case). Please > @@ -2316,10 +2315,9 @@ static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, > goto pte_unmap; > } > } > - SetPageReferenced(page); > + folio_set_referenced(folio); For the case of a tail page, I *think* the above hunk changes the behavior. Previously, the tail page's flags were affected, but now, the head page's (folio's) page flags are being changed...right? thanks, -- John Hubbard NVIDIA > pages[*nr] = page; > (*nr)++; > - > } while (ptep++, addr += PAGE_SIZE, addr != end); > > ret = 1;