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 7021FC433F5 for ; Thu, 6 Jan 2022 22:05:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 972FB6B0072; Thu, 6 Jan 2022 17:05:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 922D06B0073; Thu, 6 Jan 2022 17:05:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 74DE76B0074; Thu, 6 Jan 2022 17:05:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0075.hostedemail.com [216.40.44.75]) by kanga.kvack.org (Postfix) with ESMTP id 65E066B0072 for ; Thu, 6 Jan 2022 17:05:36 -0500 (EST) Received: from smtpin20.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 249518E3D5 for ; Thu, 6 Jan 2022 22:05:36 +0000 (UTC) X-FDA: 79001244672.20.7B1C71B Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf03.hostedemail.com (Postfix) with ESMTP id 9E4232000C for ; Thu, 6 Jan 2022 22:05:35 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 206KfXVP029118; Thu, 6 Jan 2022 22:05:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=9blQdm/HuOSbRTP7s7Vsuk9B8t4+EaqZKAR4JowPfCs=; b=dDPl7xMegVozpbwRodkVeVuDkZQHoZO7qoqhdhEELTvSIuyA06cOoRdnw2cSWbKqdtZJ Qmq0QGz32hS4Ky/H4snaSb+xng8Zt/F+6OwwSTau3jJAU3Prhg2GgbtPxnE1xmD7VryG mGLwzh7WCEoAKiCVr07+HoiWV0RQvPtf8wSzK5o6Io1xqVWQZyTaGleTNtXo4QWhRAoG vJDVoOdzxMPgJGWFaznt6SHwz2OoKTdJqDXuSjxJipPe9pJ3ODR/xwmOzUSK1RV1BH2o /zIZHhFtY8K7lfD+JifEuh6EfkD0asXoXSs+rLwbEAjj0K3Fdvbdtms7BrOdu8AmEb6C JA== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3de4va0n24-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Jan 2022 22:05:32 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 206LtL7I077078; Thu, 6 Jan 2022 22:05:30 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2175.outbound.protection.outlook.com [104.47.57.175]) by userp3020.oracle.com with ESMTP id 3de4vmeasv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Jan 2022 22:05:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hfLVbxGKOzfKFv3yoUxq+pPG9vKAGOhmwoltuguUi6TGrZQNpupWQN40NgCbIH0h81XePbau12MowUN/qxwyJGpRmVj40TUTOqfJxKZuccR2+a9ApLZ7Srl0KWOP8I1mGlw8gDG9zu2tCspe41wR2/wBU4wlEREoeinjcv9a4QmxfU0pQrjJJH1EHgA/cRt8Rll1YD+eOumKn3HVwRPKFLlaeUqvGrst2iDL2AwLkJHZMHBVT1T5fnLpDlxjipOa5XGeD/cBYIOiE3btcvVNZVTelbEmA0p/EpijWFYalIwg0xX2QXHg/kCUJmNsvEQ65QSE0wkkcQDn38vevW8l+A== 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=9blQdm/HuOSbRTP7s7Vsuk9B8t4+EaqZKAR4JowPfCs=; b=hta4qTwh9tKe/OLcsws8V5+XVANVCbp4JXpuNOv7aiaTl9gwHA7tO52Qq9W6q8vxPNmzxeVd5d0z/o2b+h38DA+WX4Dl1YUpCaUY+nN+LNokwei0JxCT3c1izTDI+fb8a32id2kC0KqrkeTkYBH6Iw8ePMub50ikP5lotX+CvW1IheyitzGvIabTyEGS7JoTAjoNAil6FWmcmW7xaET0YikUYjBqPznph7/dowN66YpFLsN5D2uNf4Ld4kE7xHusUXKAoeoMx4ui2mrpZXNBfL4aTnUJNdxhKvljqkv0BFkvA0P4mgKO93WzrknXHcHWUvlCZ0VGNlR2q1myFqTlVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9blQdm/HuOSbRTP7s7Vsuk9B8t4+EaqZKAR4JowPfCs=; b=dOlu8ZPWU/i0AoNGYlp22cF1nyL01YevkE4mH5feXnIns/vC0LfFR1R2A7prfIzqgwS2cGJWwUDADY4NjpjKjY0r4AZ+0DJqMWzuw2gelc5X2figs1DjK22HJ7ulW/XS+Ygx+gtBiM44Uxy4CSiPr7tqYBOiMughqTc5j4n5Ts0= Received: from SN4PR10MB5559.namprd10.prod.outlook.com (2603:10b6:806:202::16) by SA1PR10MB5841.namprd10.prod.outlook.com (2603:10b6:806:22b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.19; Thu, 6 Jan 2022 22:05:28 +0000 Received: from SN4PR10MB5559.namprd10.prod.outlook.com ([fe80::dcd7:5a68:adf7:5609]) by SN4PR10MB5559.namprd10.prod.outlook.com ([fe80::dcd7:5a68:adf7:5609%4]) with mapi id 15.20.4867.010; Thu, 6 Jan 2022 22:05:28 +0000 From: William Kucharski To: "Matthew Wilcox (Oracle)" CC: "linux-mm@kvack.org" , John Hubbard , Andrew Morton Subject: Re: [PATCH 07/17] gup: Add gup_put_folio() Thread-Topic: [PATCH 07/17] gup: Add gup_put_folio() Thread-Index: AQHYACPMmbvUlsWXMkmevl8aYxiEiKxWkr8A Date: Thu, 6 Jan 2022 22:05:28 +0000 Message-ID: <42A9AF46-1A7E-41B7-98CE-F079A0FC9BC7@oracle.com> References: <20220102215729.2943705-1-willy@infradead.org> <20220102215729.2943705-8-willy@infradead.org> In-Reply-To: <20220102215729.2943705-8-willy@infradead.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3693.40.0.1.81) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 031eb048-a856-459d-7498-08d9d160a63e x-ms-traffictypediagnostic: SA1PR10MB5841:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3631; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6BAbAcBbFhIhZ+TGYA0sLos0G7leUGsSrYFsCP27wpgCbXUQyMkgzWAFRe09vuurlLsIG9SFUaH6nikqtHw+PWDWUe01ZspbgpPn9cc8alpmY6yhgmWRDkrj/PjfZ1W1/FjSg4z+xKDxMVdTt8UXQEcvdAaIm/qEWlWg06ojE+j4+m9X3KERCW47GoeTqgJRe2PJVPYGbL7d29BUsJ8wCbywcX+84in6FM8Exvk5I1gzB0Pxbyw4sbxWs5CYS1EjaVK1DhAlzY0CX60rjDwi+k2ax0+JsqvTWLz0o1/EQATv8khapT/F+7lTa2769Q0/2s1hJE3xFS2tcFeTWPp4Pd54EROD8aJV//ZknaUrC/h17b9NKHziOLSUaC2IBfDCD9abIzEePBehITcNqQl2FdoXFY46NZsHHplBGmHMzqPTxyjsqFBkt5sKQtm58GwuBKb//XkebUsvUyUsHmoitNHjfLJZTuu/4s21ljqhj6rDkqGcZqDcKb7JvAf7eBS0uzhYdNEkHnkx22QEWJWtUcL7Krl6w3EKH6MEuwBK0vhDyzJ8biVTo2futvm5nOPs099QDDyAuouuUw8NMLOkDsFNA1jAR7fiXQuFrnIVQpysepAn5dJfHhasrPCq5xMWOY4YJNfOw7uOm4IiDI0SmoQ6grSLfZO/9IbA8hEZkD86bUGGjZ34sHU5mwYTg6kBE+2SG3tBgxfeUYxy3A2WzMkLbaYWkSyoF9NcSjtbaFM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN4PR10MB5559.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(8676002)(122000001)(2616005)(33656002)(66476007)(83380400001)(6916009)(36756003)(66946007)(6486002)(6506007)(6512007)(38070700005)(64756008)(71200400001)(8936002)(5660300002)(2906002)(4326008)(53546011)(91956017)(316002)(38100700002)(86362001)(66446008)(508600001)(66556008)(44832011)(76116006)(186003)(54906003)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?RrqGbA8NCuMsgX8JUrPUKoGmDsDCUvLbJMhxWbT0r4qaX6yIejvQmlCGMsT9?= =?us-ascii?Q?twAihIA4X+BGNLTfNZ9ispLs9NrwIyybiv3Zg9qy4GERHl/UABixkbPBdIKp?= =?us-ascii?Q?76dCuvoncEVl30M3EJYieLK8JrJGKXfT6n6FingjJvYQkDXClUQXKZey0pfO?= =?us-ascii?Q?Ank8PwenqqDGnOqL6u3IcEH5wO3cbUqogjW3YHMicZ7kDC3riUWpauS82+Kl?= =?us-ascii?Q?QCRwjetJSW03pop5lE7eevVh1cMiAdZn7I8PD4BXYSGUeLv60cmFPBAHOO7e?= =?us-ascii?Q?q+GXnXL+3nx5OJ8lbRbosGUPFJxU2XiNnlDIlu1GkComKO2tNFXtNKnxS6PB?= =?us-ascii?Q?8jy4kteyNoRpiBpuIW0slYb3dkDHUCnTd9x3EjrGXwJQLiyCaT8aYFnA+HkL?= =?us-ascii?Q?vc+8q7nYcgb5k7/cd9QLRjJ3OP7+esA9D4NWqM6FvNh4r52tfyLWMOHY6fA9?= =?us-ascii?Q?JUieT7AhKCgDGe32oLFDxnAyCeUb0uamkoiRN/YTAFW9F4XHjxQfAzLwaQfu?= =?us-ascii?Q?ZK5M2EZtwISdegAdZtqkPhNhsZFTHxGMCW5EmzZKScp9nGW45oSe69uQjasL?= =?us-ascii?Q?ClCs7YzQWCJyhjhDaZXTGwefQyQFwKgTq+bw4BuzuzKqux+UD84tz/NpXNl8?= =?us-ascii?Q?4DOT7ayDF+u4SmsEd1aF48u87/gPQVsVKHoZvCsQmuvYm0ERI1RTecGXHw+B?= =?us-ascii?Q?rg9pe2jKerArLatb6U7jH7VPDMUATJqu7LiqBT7Ywn1Oog72wbxc93Cinzc5?= =?us-ascii?Q?RVgM7KqeTKw9e8/HYEmK+NLIsFnA6q+6k6tK0NXidsYBVaE9EjdSDzr9uI4P?= =?us-ascii?Q?96/sYUBXiYJ/vQMEc3dcYLY9tSLM2s839neT+S/bv94xVHCXm7MpqJQa4/s3?= =?us-ascii?Q?CwANEpJZZFG3gkt+ZQu2YujSW0crRr9xeJDu2uxvyUNKpDH/wjUI5u0kltGI?= =?us-ascii?Q?1EQwOXn2WbucccppFLsCdddR/BDFePA+uBECVHZ2JYfJjEBHyJ8sRAYb+Uus?= =?us-ascii?Q?MteyBlSEnDcqQAkhL+cZ87NUvUsrmAzN9/5qTBrHZz9bpLkzTQRfCLa5M7LO?= =?us-ascii?Q?YkkfFE+lZzz0mgRdzFjFiuV+aMfMNchUfqwcy3ddfG8m5MPkZzBbKsCtfgzE?= =?us-ascii?Q?BBezcIgYx4mEieDluKDw4VESuCdHXu2fKHZh5PCQujS3l4yT0gicntLEc7rS?= =?us-ascii?Q?ML8eMHrvI+bYh+yx6tm2XQaWB4/cS3UiDUQ5s+m7s3QMJ4/KKrIamSt5/43L?= =?us-ascii?Q?1lVTvviqdjBdD3ITbmPChcIfdKRXgEG9TGZmH8bncgsFmGywQrJLh8hMTQGE?= =?us-ascii?Q?H+AdHepkojstF0Th7/NW5ZW0U+G+0CL6p7pPFd6gwI7app+vD+4GbhflNuK2?= =?us-ascii?Q?4O+AYxpwWx6mVFjBe/+Tja5SUvDUV4K4YklRjNe8Kp/ltlB37ZIrXSQLbhp2?= =?us-ascii?Q?FsWoCsXZu+3VL2tPRBruRCwliKFIY/2l4dsqRB/cNlAV55QrXxmJv10E2o33?= =?us-ascii?Q?6X+Qw2c8B7UHB7qhWL3qwA2KAOZP9Mwe6Wvid7p0Rs5KVHvK5cDrP4psG07R?= =?us-ascii?Q?rh1erIlCHAu5nTLzDDf1ibFX7vUdt/5Uiz+msWDuqLxFhhYDqtg3BbfvSn2S?= =?us-ascii?Q?xxXBdQnUu/LWjW2Qm2Ok2xKy4HMcqdV/nARNX1FBnfTybxyp+yXr6TpCng6c?= =?us-ascii?Q?1xeuWtYLnGgyLmMdGW+OOk4DYk3G5jA5ZcjNPFwF2/mRx0sYhQr/BDX6pvwy?= =?us-ascii?Q?brmu7LLkQROoH8oret/Ghs3NB0cw/8A=3D?= Content-Type: text/plain; charset="us-ascii" Content-ID: <30E5ED311FD35E4AAD713C3FE3724CD4@namprd10.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN4PR10MB5559.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 031eb048-a856-459d-7498-08d9d160a63e X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2022 22:05:28.4719 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xUY6tgUvHi20GH2cAm3ubAnyMVlsukNBnJsHEAA/YKMTegcpqH5GqfjpG0TxBwrh7kpqDXKpYq0igyMjwNc6o4XsAcLXbB/6jV07L8EQylg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5841 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10219 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2201060136 X-Proofpoint-ORIG-GUID: pqtE9FTMSZWfkuBwD4E1QUdljeQxvArI X-Proofpoint-GUID: pqtE9FTMSZWfkuBwD4E1QUdljeQxvArI X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 9E4232000C X-Stat-Signature: djrdg8167wm5h5rx4gtnbj5yqcam7kfg Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=dDPl7xMe; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dOlu8ZPW; spf=none (imf03.hostedemail.com: domain of william.kucharski@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=william.kucharski@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1641506735-155382 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: Comment inline. > On Jan 2, 2022, at 2:57 PM, Matthew Wilcox (Oracle) = wrote: >=20 > put_compound_head() is turned into a call to gup_put_folio(). > This removes the last call to put_page_refs(), so delete it. >=20 > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/gup.c | 44 +++++++++++++++----------------------------- > 1 file changed, 15 insertions(+), 29 deletions(-) >=20 > diff --git a/mm/gup.c b/mm/gup.c > index 58e5cfaaa676..6d827f7d66d8 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -36,29 +36,11 @@ static void folio_pincount_add(struct folio *folio, i= nt refs) > atomic_add(refs, folio_pincount_ptr(folio)); > } >=20 > -static void hpage_pincount_sub(struct page *page, int refs) > +static void folio_pincount_sub(struct folio *folio, int refs) > { > - VM_BUG_ON_PAGE(!hpage_pincount_available(page), page); > - VM_BUG_ON_PAGE(page !=3D compound_head(page), page); > - > - atomic_sub(refs, compound_pincount_ptr(page)); > -} > - > -/* Equivalent to calling put_page() @refs times. */ > -static void put_page_refs(struct page *page, int refs) > -{ > -#ifdef CONFIG_DEBUG_VM > - if (VM_WARN_ON_ONCE_PAGE(page_ref_count(page) < refs, page)) > - return; > -#endif Should this retain a form of the CONFIG_DEBUG_VM warning here to trigger if folio_pincount_ptr(folio) is < refs? > + VM_BUG_ON_FOLIO(!folio_pincount_available(folio), folio); > - /* > - * Calling put_page() for each ref is unnecessarily slow. Only the last > - * ref needs a put_page(). > - */ > - if (refs > 1) > - page_ref_sub(page, refs - 1); > - put_page(page); > + atomic_sub(refs, folio_pincount_ptr(folio)); > } >=20 > /* > @@ -175,19 +157,23 @@ struct page *try_grab_compound_head(struct page *pa= ge, > return NULL; > } >=20 > -static void put_compound_head(struct page *page, int refs, unsigned int = flags) > +static void gup_put_folio(struct folio *folio, int refs, unsigned int fl= ags) > { > if (flags & FOLL_PIN) { > - mod_node_page_state(page_pgdat(page), NR_FOLL_PIN_RELEASED, > - refs); > - > - if (hpage_pincount_available(page)) > - hpage_pincount_sub(page, refs); > + node_stat_mod_folio(folio, NR_FOLL_PIN_RELEASED, refs); > + if (folio_pincount_available(folio)) > + folio_pincount_sub(folio, refs); > else > refs *=3D GUP_PIN_COUNTING_BIAS; > } >=20 > - put_page_refs(page, refs); > + folio_put_refs(folio, refs); > +} > + > +static void put_compound_head(struct page *page, int refs, unsigned int = flags) > +{ > + VM_BUG_ON_PAGE(PageTail(page), page); > + gup_put_folio((struct folio *)page, refs, flags); > } >=20 > /** > @@ -228,7 +214,7 @@ bool __must_check try_grab_page(struct page *page, un= signed int flags) > */ > void unpin_user_page(struct page *page) > { > - put_compound_head(compound_head(page), 1, FOLL_PIN); > + gup_put_folio(page_folio(page), 1, FOLL_PIN); > } > EXPORT_SYMBOL(unpin_user_page); >=20 > --=20 > 2.33.0 >=20 >=20