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 53210C678D6 for ; Thu, 12 Jan 2023 03:05:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8023F8E0002; Wed, 11 Jan 2023 22:05:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 78AF58E0001; Wed, 11 Jan 2023 22:05:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 604778E0002; Wed, 11 Jan 2023 22:05:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4C1CC8E0001 for ; Wed, 11 Jan 2023 22:05:49 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1EF341C643A for ; Thu, 12 Jan 2023 03:05:49 +0000 (UTC) X-FDA: 80344657218.23.76EDAEB Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2057.outbound.protection.outlook.com [40.107.102.57]) by imf23.hostedemail.com (Postfix) with ESMTP id 5D7F414000B for ; Thu, 12 Jan 2023 03:05:45 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=ngLNljRp; spf=pass (imf23.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.102.57 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1673492745; a=rsa-sha256; cv=pass; b=IfY5gyBW+v+6ED5uFZEIbyzh/4P5mMA5UsCaDs/yYdxJo4TNndDgjJ23/vxbImC4Ya+h0h a5UTyvWFP7w407RFaSUN0YE4hJ+pHMcHhB8CluTT4vPaediFtLFxUbYg4dF2iA+Gz5QCno fHuvngIMkVdgibIyudDUjjAeDgxN3uI= ARC-Authentication-Results: i=2; imf23.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=ngLNljRp; spf=pass (imf23.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.102.57 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673492745; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=g4zgBODyRLGAmtZawT3hdiuMHkSLE96gNKTkXX/Oof8=; b=JqpuE97ieZpZXGdWz+7PkmtJwBjuF275/F5h9FOP5u7q288OVN6zfIKB3+m8tiKZYYRl07 R3Gr3qdOWD/ToATlD3YpZoCVne58bEb0rvvLBWi7KFIzZ5kVtZnkhbV6OqbXzqlp/TATOR bGNCvC18kgALdgiorRy5LvMsO7Mrfmo= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gpnsiu0tU9Qz4Y6rEQEcU2J/u8ApcDk4JHRoNOEMytA0M7Mb+8b+HIfAn3Qu/1GdfnvW06EB0Yin36auo23WgTzmpIShFrMFYU3uFVB8dqKAWsUfaqtEyaf6blnYvzEoDF91ICYXICChMSjnkoSOEjkccmsh9jtDx/9DIsz5qS4916A7IloDOjrFgJJBM9NMP64OxDzNwO2vwPKog9cR8m+zwHK1buExKK4tiEUbk4aDe1WqVgaDVpBtAUIlIsk6W9KFS+gFI7D/tdQyTeQiyblOWSyMDPUSzYv6do4QGVJhWezgGzEXJPbd62LCSRnJOrGma0p2B+uxkWdDCU9QHw== 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=g4zgBODyRLGAmtZawT3hdiuMHkSLE96gNKTkXX/Oof8=; b=fT9UtjKPXvCa5CK84ZW/uXPo6a1ZZYaDzAmgLtLlIS8yhvBBsUUdGf0QxK+vT31Mz/2Y86Xj0RgAjBEqLmzWLcw3pdymy5Dq20cXy3xP/lUR0ufVHe5Zpez0SKM6CEpB7LSsgxHl8maavoxzAeDG60paS80YxOkt1S8jVUoaK/4H5x1tkT1HPOab573pvBLy1/nLSdnLYUK0ZUfojqWgA4pUXkqEDBviY3fqm2SOVeaRxGXcBR6V2HCFp7e45t94L9d3xv2ndTKT0NWPc6OhQ5rQyHPGqfJRtD24VzGVR0LX/SW+nA2+S7vpEBU5EBa38ipVu8fPVURIntz8+DhkwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=infradead.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); 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=g4zgBODyRLGAmtZawT3hdiuMHkSLE96gNKTkXX/Oof8=; b=ngLNljRpvuvas68Tm4aGhNZyOjRuHnG/z77cmvK2/DgZ8UnHCJzC7/034JhigG3tqLQfuMgX/rTwUm3TYCKYTMGo3K6mWL7xYe+F3wSSvUkUoR2lTUnlLmVMcvAVB5jUVITsXA+lmEXqOGUVOV6a0CypdP5fCy9PJERhA1XHVFd2428XDi8jaiN1JrASYAd5IGDVPajPMlNWUnvL//iMBCXYsvJIw2pMRP0w4bDEzsDhsKP6WuiTjVkFgB7jkeLIBwAezSNQMEB5CKEm6KRxuNdRb6boLMLFNxHStN8y035zETcIU0y3bsgojjcaBc8mUHabfmNBEdwDkwcflKArZw== Received: from BN0PR02CA0004.namprd02.prod.outlook.com (2603:10b6:408:e4::9) by CH2PR12MB4181.namprd12.prod.outlook.com (2603:10b6:610:a8::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Thu, 12 Jan 2023 03:05:43 +0000 Received: from BN8NAM11FT046.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e4:cafe::bf) by BN0PR02CA0004.outlook.office365.com (2603:10b6:408:e4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13 via Frontend Transport; Thu, 12 Jan 2023 03:05:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BN8NAM11FT046.mail.protection.outlook.com (10.13.177.127) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Thu, 12 Jan 2023 03:05:43 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Wed, 11 Jan 2023 19:05:30 -0800 Received: from [10.110.48.28] (10.126.231.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Wed, 11 Jan 2023 19:05:29 -0800 Message-ID: <0494d96b-ce69-b40c-f766-228c1d880d0f@nvidia.com> Date: Wed, 11 Jan 2023 19:05:29 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH 01/28] mm: Remove folio_pincount_ptr() and head_compound_pincount() Content-Language: en-US To: "Matthew Wilcox (Oracle)" , Andrew Morton CC: , Hugh Dickins References: <20230111142915.1001531-1-willy@infradead.org> <20230111142915.1001531-2-willy@infradead.org> From: John Hubbard In-Reply-To: <20230111142915.1001531-2-willy@infradead.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.126.231.37] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT046:EE_|CH2PR12MB4181:EE_ X-MS-Office365-Filtering-Correlation-Id: bf7afc45-1f2e-471f-f432-08daf449e4b2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +hj9M0eBXcg3WwZCrP+X9Jxry3hFdzdR75TTjGmExRth+M7XkpdJA47K5zuGcM6r33ZG3JciwrGWOTGXgAc5HK1ahLMLhktkWad9+yLuIog7rsVeqKet4tzyytb2udceZ5xKteYGXsyA3We+Ol1uRSrqH4qP5YIQ0x4q55KxmO5yM80TPMfjPPBHDRo5zNtqiVpUGWh46D1s/OuH8ZIiwun7JKgHGJn8fKE/7eQTzoBhOxzj+3lNzhsm655JaFREI5KJPyNDAAphrQ+APmjUO1qBGfWQI52C5UKKPL2IZ01A93joup+BU2TCl6CUkd9ZeB/aBk3CihWhO90Uy2UaHxKek6VCTsZXStNfFiisYjnFh1r2+6JKH5Gg2uBaf1txfH/c6tzkzq5a4Eu89mYwh+amDA1BlQjmCT5zspWkIBfGf5s41Sbzw4jXPB3iR6lWlqxcldRhd64EeJsx7niKyvF1MFOB7SGqs2DT495U2K/vcfLF1IA1x1fjZOvuED6vyxjkcXmfYNM4T8Yv6IhHDeKsUs2wmejO6Kx2jweIXjPBaUZlNdMk4QFazz2xu9xk3ZS17wvpv1YMXsLxGRQl+Mq3MBjF7+knHgnV7BenHE7EqyQjtAsAyZ5yeWOhMs9t8dCY4XxcUyRJcV0LCU3kjt7Ui5Kav7gHPvloqKLLelo8oNJQvqOXpy701AyJqIRlKwnIUwQ3vim9HgNgvTtkzqI/jVxM2QKPY3L0OcT4vME= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230022)(4636009)(396003)(346002)(39860400002)(136003)(376002)(451199015)(46966006)(40470700004)(36840700001)(16576012)(36860700001)(82740400003)(31686004)(53546011)(7636003)(356005)(2906002)(478600001)(2616005)(16526019)(316002)(26005)(186003)(5660300002)(40480700001)(86362001)(8936002)(83380400001)(40460700003)(36756003)(82310400005)(47076005)(41300700001)(426003)(31696002)(110136005)(336012)(8676002)(70586007)(70206006)(54906003)(4326008)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2023 03:05:43.0882 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bf7afc45-1f2e-471f-f432-08daf449e4b2 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT046.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4181 X-Rspam-User: X-Rspamd-Queue-Id: 5D7F414000B X-Rspamd-Server: rspam01 X-Stat-Signature: 696zga694yhxesgsr9y8ybe33m54r5z7 X-HE-Tag: 1673492745-356458 X-HE-Meta: U2FsdGVkX19TOrqhKc8cIucrsA5W8T8VUGv59K/zRfZcqxOc3ASjxf6owYWhQkx/n73qinK+hrYHFTdXcmJrX3x1EAWbiuKniBsrQAALvGjRFvdCRoc3kGHR/IQcqRevbLfpvekhjJGm7zw6lcOkty9Vi0PfHfaJIETsrwQns78/d6WgBNsd1wqbPaxu9z4jdtA8bvfHCT+E4eNPvzYRPqQ0k0sWEMd0+GgX/er9Vw3qpayaPl1f2tD/D7qr64iBEoQEBq462UEqAcVQfklc6mqxvRBg+kJ2ticG9FArJETnLutygxVWJdND9EOWP4uOnFdK2qnpFcmR5JUCKZcC7PeWcLmAxb8SUTxMqNu+VcnvBpj7UNXYKtziZViys53Q9TnomgMPXTvuiqXTJQiIy0HWgIegtra4lEahjEiXr9hz3zFV0uVbktMRuDOGtik2p533j2/LzvIgIevVjM7r/Vi+0VAzIDRantvpa7kkU3N0P3ukCkg9OVMcHkhq+j0xIyD18VfvvI4ugFKdbSX0hgYNfkrP27MPc1Lh9RXZMaJdRTaW7NyJMJHSdKMB5S4HjGqGHY6kGfmf7GSlqv6y1A1zQ9bU+kCpsyn7G9N9Bs4cEpDD2ORUWfWe2XV0qHr0ArzL9FpeiytNzrdfayzjVFwUYBz9NewOTtGOLjbAq3EE7xCQmze0mjb5KIYOI40gy5drhatdcW4DLHbD5bC5QEgr9jfNuk1wB3ZC/fLipLkOK4eGUiraUy4MXPvUZR1ZiWZ60iPSNoRsbiWt3B69IquMa5A/gVx8H/QTfnjRWcA6F0Xqs0z6BKvM2nfiZvnDMt9CyTAu4NR4eHcHrdlMFDSOqb7UnpXd5IIcH19mRfd/jCGMAMPlFQWG4moYPtN2ezwBnunH037N4yAy1RAktz07i5P8CXJiqAHLZNe1cTnEkyOZo9mNZ0O+u7of5fhxcLanMuCJPhbJODkKTDX YUB92XsO IVPaqGBWr9b/66L6Ik8PxFRB5Eg== 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/11/23 06:28, Matthew Wilcox (Oracle) wrote: > We can use folio->_pincount directly, since all users are guarded by > tests of compound/large. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > Documentation/core-api/pin_user_pages.rst | 29 +++++++++++------------ > include/linux/mm.h | 14 ++--------- > include/linux/mm_types.h | 5 ---- > mm/debug.c | 4 ++-- > mm/gup.c | 8 +++---- > mm/huge_memory.c | 4 ++-- > mm/hugetlb.c | 4 ++-- > mm/page_alloc.c | 9 ++++--- > 8 files changed, 32 insertions(+), 45 deletions(-) Looks very nice, just a couple of questions about casts, below. ... > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 4d9afa1048ea..d1e5ec875fd0 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -775,11 +775,13 @@ void free_compound_page(struct page *page) > > static void prep_compound_head(struct page *page, unsigned int order) > { > + struct folio *folio = (struct folio *)page; Casting, eh? I wonder if prep_compound_head() should just take a folio? There are only a few callers of that. > + > set_compound_page_dtor(page, COMPOUND_PAGE_DTOR); > set_compound_order(page, order); > atomic_set(compound_mapcount_ptr(page), -1); > atomic_set(subpages_mapcount_ptr(page), 0); > - atomic_set(compound_pincount_ptr(page), 0); > + atomic_set(&folio->_pincount, 0); > } > > static void prep_compound_tail(struct page *head, int tail_idx) > @@ -1291,6 +1293,7 @@ static inline bool free_page_is_bad(struct page *page) > > static int free_tail_pages_check(struct page *head_page, struct page *page) > { > + struct folio *folio = (struct folio *)head_page; Similar to above: should the function just accept a folio instead of a page? Anyway, the patch as-is is good, and those points could be follow-up changes if they are done, so either way, please feel free to add: Reviewed-by: John Hubbard thanks, -- John Hubbard NVIDIA