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 6062AC25B50 for ; Mon, 23 Jan 2023 18:07:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D20456B0074; Mon, 23 Jan 2023 13:07:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CD04A6B0075; Mon, 23 Jan 2023 13:07:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B49806B0078; Mon, 23 Jan 2023 13:07:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A49BE6B0074 for ; Mon, 23 Jan 2023 13:07:44 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 49962AB16C for ; Mon, 23 Jan 2023 18:07:44 +0000 (UTC) X-FDA: 80386846848.15.B86CE0B Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by imf25.hostedemail.com (Postfix) with ESMTP id 57C06A0025 for ; Mon, 23 Jan 2023 18:07:41 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=UCVHVFmX; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf25.hostedemail.com: domain of jgg@nvidia.com designates 40.107.236.40 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674497261; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=K37xbglHeXdyjMsopgSpzKWBNt4ASztvy9yyqDpzDi4=; b=fWSn3xC9AewRlXOpjlME59ZCWWeNQnmYbk43PF1SGbIia1ZYB9ZBGwscjFcFjdZMWeu/97 eoMZ/Fbn/I79E9RqTJWrxvJKFchSi3J2Q42XRZfxPN1YxJemK5ElN78OaX7ZxQtsPGH+83 KBUI9/awlSNuUhUX1qqdY0PmDe+x/Dg= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=UCVHVFmX; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf25.hostedemail.com: domain of jgg@nvidia.com designates 40.107.236.40 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1674497261; a=rsa-sha256; cv=pass; b=enSj5PlKqhOsRMjq24rCY+aT7bxWcdvpTYO09bL8KtFTkB039lr4IV6iAfSRPrIq5DlnYu 7sNwZjQvmMTicw5y69XEbbegKpSDlJTTpBlJgL1Jm1/MjRbtu3/MNzpYfaRXKbf+9n0gDr pbhcCJB4T7gryeM8u9vHRFfiQDDCmYk= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kjSLIMNdMOD1ANCMMJp8PBt2kyfqm0hE8Th6KAINXjX/xg9rycrVy5kJN2xPVvuZFTY/uiUlFpd29ht1H+m4L0DSAEiZGVaOl69mDWdKW5Z7SE1ldes91o4WSmixdKzSL+Hx4cBTqTLXsIOXWfy3y2bRbdKift1jOAOt1uSNARVOHkW8Vi6U+keMajjR2s/aq0GnJGjQQl5nMR3sJGN6s1/aj/8/5xNswCe5LK6e5J7snEfSwW4EZp+cOyL5uqcWmTRlh3bOmMDlKr+elaIqO/WNmtHEeI1eeoD1R/AFQuIDrizTT25pnCtRZG0Pxigb/00I2cImribSfHhxlfnyig== 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=K37xbglHeXdyjMsopgSpzKWBNt4ASztvy9yyqDpzDi4=; b=e2GjRC4tP8DmiBjmgeRj2rWIia6Va5wpY9eGvZZwlhaXuu2/y0lKWkFiPrLR6EJbA2FrSF3QYA7EHKVb02p6SY/uNVJR6X2S98XQJdDbGw3izWe2WvEJRbwk2xkj0X1TA7GSNQHPZ5ppkWeUAdnl9GwenpKQbTdmp838PzKF0O1y7PQrC56UulFNQecsYYNgv1x+iXzIe4gGr7fRsiS2lxgMfWwj6KRQhKUjpFdxEWFvuymO1DMb+7G6WkZlpYT+siy6UD5YtlQV0Jjp+CKSa7JNkiYlTueG0bCISMUNQKSdQGXYzTEZ0/HhMh3whrneB71nWWep0G/rcOL3nF01+g== 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=K37xbglHeXdyjMsopgSpzKWBNt4ASztvy9yyqDpzDi4=; b=UCVHVFmXUkX81jWOW4+7CisM/rTfQdfGCc6JJ3BwXdW5dWkVTASRlEG2g6H5yQpHOprN72flBb/cG0uC5TPM3qui+fsQuBjeLD6uUH3HjWwKcvGPrasCq3C0g1p1shEnPZjUYYr9jcvRtcTLqXrWAGt1duGGCgrGvJNWDf/80POKb/upRElpHQ71i5KvuIlDkIefb1xdcrsffKLNsX6gyQQKcfXSRJRMOHYnPv1UvIDyWyEiEKzvKHF9d2Db572akBgQOUXSiO8uqB2V/IsUZUzR5W2c7N4MY+DfEjc2zP8G7PUleD9IiP84axOspN9M793R1ZpVq7XD/1eG+wAgSg== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by MW4PR12MB6922.namprd12.prod.outlook.com (2603:10b6:303:207::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Mon, 23 Jan 2023 18:07:39 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3cb3:2fce:5c8f:82ee]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3cb3:2fce:5c8f:82ee%4]) with mapi id 15.20.6002.033; Mon, 23 Jan 2023 18:07:38 +0000 Date: Mon, 23 Jan 2023 14:07:37 -0400 From: Jason Gunthorpe To: David Hildenbrand Cc: Alistair Popple , John Hubbard , linux-mm@kvack.org Subject: Re: [PATCH 6/8] mm/gup: make locked never NULL in the internal GUP functions Message-ID: References: <6-v1-dd94f8f0d5ad+716-gup_tidy_jgg@nvidia.com> <89c98586-8d38-7f30-1e7d-21a5f9ce7c89@redhat.com> <3e431c82-189a-f82c-6545-b8bd441cce52@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3e431c82-189a-f82c-6545-b8bd441cce52@redhat.com> X-ClientProxiedBy: MN2PR19CA0062.namprd19.prod.outlook.com (2603:10b6:208:19b::39) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|MW4PR12MB6922:EE_ X-MS-Office365-Filtering-Correlation-Id: ddafef6f-9f7a-4e02-62f3-08dafd6cb684 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Cw/yblEAUVVFDY1MW3ptgA2cEf5rncfW1W3eIqMDsSRT4pXKta/17AGGCI1S/DdESbcbAz/tBRUqBYnUJwATJLpU7Ls+xlskBa0bUIi81soOwG2bvGI5g9+OBDz9MWTKubByK+CLqxf8R5y9W2zDTNfweY+Nb157N2lJ5PF1L3Yn23jfXzQEbgOOLy4BRvqGMGR47EKZR7B796/ZyxGz/oij0F4+rb33+E0H8iFe6h6Zd6o+cmWsitzNNHJGx0tWgIQIjv0w9/yq0j81P5hqVEAbmKbwu5jaTpMHITwosIKMjrN8z8G6p3GMG89Z2g3O8/pE50oFyViSNzOGc6+9xtRGQAoT2o3NvjRrCpmGSu3/b1KFbXyf1iR+Vx8cdReqai7qOh5bwTcx3AunpZrogSP8IFlSIn2k1AFmIhP6LkMxKvGDLI5wQZjWk0mxt4Uv84qCeweq/d1/XhlQiBiatYu1a7r+J6G8aiE4UcyR903ZGHnHJmknNIkHz95EG5Sy1MI24vmiuZ0kW2TWK+I2WwuBqXGU5WMFfFNvBgIfVEffDFuEkgWRmD8EzUOvZ3mZ8NHRc3pAk7FFZ7nzJXwYF0gwn/o+H55f2tENmQvij2ySA2jK2hlq/eOS3qj3TyYpRTFZprc6v+eExmIWaMPa3Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(376002)(346002)(396003)(366004)(451199015)(36756003)(41300700001)(86362001)(5660300002)(8936002)(4326008)(2906002)(83380400001)(38100700002)(478600001)(6486002)(26005)(8676002)(6916009)(53546011)(6506007)(186003)(6512007)(316002)(2616005)(66946007)(54906003)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oAOus0nfX6mjfCo3NrCGb55TAnsNhrewxsVX+6Ezb1ezpWY9JTYgOlfdzVP2?= =?us-ascii?Q?P/68CbT5LwrST0S43bwVkVNFiTwh84NF+vyUy6qINFpdrrCrCdo2JYRoFZDM?= =?us-ascii?Q?TS5ZAf3wHwRf7Z1rW8DpwmcBBbr2AkN+fYeSA8qx3tQpagX/HQMZkWJZGG86?= =?us-ascii?Q?nyjSrbhEo/76kCRB282fVDvinbZOCICx4uK31qT6zMkfnrUev9WOkLzfkik4?= =?us-ascii?Q?M4WzpRqK6/8NCaO6MoAc7/JJyaVMO4B16RK8cgfn8gmMojTfh+Q/x4SgTktG?= =?us-ascii?Q?rCP4tV7VQWHzNiBNdYL+5nJ/JQV5TzY1+WX0gRnQ8AO+bu0GiszDgWcxor9X?= =?us-ascii?Q?WZ92ALvJAoPvO1IMC8H8kuXc4cDRw6tMvYJGeLBo49tQ/MT24ohgwxEWGTH0?= =?us-ascii?Q?jz+Tk9R2zi98MpudrOiRNsB12MCFORMr5I7ZJzwslfLGDVzW5PpgQXlYtta4?= =?us-ascii?Q?xpff65ISZ3EAbNa7uHWkkBkipHc7RK1NRqdLsC25BK6OHyU3sxZ61GGMjRkw?= =?us-ascii?Q?+Uzz1pd29uWvJK4xdBNC+JkmCcT/F+1dohUITciC96TARybpHoZ8HS7Sq/sK?= =?us-ascii?Q?d2kp8zwo7VrKXDwo7aMG0+cgmSah0rq37/gDh9UCwuKFQXB9FaDmQJwB8/Qr?= =?us-ascii?Q?4z/fOUJHTxSe6p1d1ucS/rloelzqq30lJCSc8gPi0w6UBOWPz3yq/yyLQgsW?= =?us-ascii?Q?WcKsmhfx5y6mNKWcihTpU94fKjNLy9yzZjjl++YUY22Rzv1EF54TZJBuuas3?= =?us-ascii?Q?rjXS94RL4osJqN6FOUHRWigoQa+3kSLM0lFMypQr6I62JxOVTHlGSqKlW3UW?= =?us-ascii?Q?hL5ghZblevrhIn6q47EFNYVCZMWHH3N54GxJCabZOyweVAWeryDzWy+jC9an?= =?us-ascii?Q?1AoZvDSOBcwaWmABGO11T1YTNJkdf8JOtG4uWXxE1dCwepFACoENGqPebndT?= =?us-ascii?Q?8VFZFE5sgycZB3DDGnbfekvniGvjOd9skdNkRYOw/BZ5WUDOf0geN5xMe/gF?= =?us-ascii?Q?ed5YnRKK+NaB3UHZ8GK2zhVD6fpMKI0xpxtSymRvMWhAcQNx2y4EghA2rc6e?= =?us-ascii?Q?zPkFez0pyvlJ5UBg9eeut6iKB1Nv/I2t3BB/ViyDc5/qo7Q0JdgXQd8ARV+/?= =?us-ascii?Q?pQnqFnxm97Oh/Kc+Z6LK68tmSHHvHbBV0ms0lkI1S96qAe9nIjNDPAcXMLgK?= =?us-ascii?Q?/P9xrA84ezkXprYDQ0dfi2Ysik4eo/mddVShNhv58jw3IdVCZ91uW3G6DJKw?= =?us-ascii?Q?hzAzvE2R9yD9s8dFw+ENoovhKEb9sOiq0rNhXrQlwtX7nvl2QAFF67OzziIa?= =?us-ascii?Q?2CBWQ9qVW+oHnyIgei3TDYaJvcFMTUdXit1WjnqGVGCCE55I+khJdPfaNP7S?= =?us-ascii?Q?DE11GyZCQhSyocFyuU7vgldxQdDLvVeeFgdCiclf4wDsdhSbZPzCQC96+uJ6?= =?us-ascii?Q?NFRFqrIuZaBEpUbBoINxmOizEqBscUz4NKcMoi1afBS5wrmEqW5z7CGX1lRH?= =?us-ascii?Q?x6ajhqEexOOnorOFXfTD1b8Ll+XqFYIaCWDjmdBFwLzSONoGQK1Rzjph4Gxb?= =?us-ascii?Q?z9o3b3JwgeTavp9lXbqg8UaytbB0X/EmO91ZXKlb?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ddafef6f-9f7a-4e02-62f3-08dafd6cb684 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2023 18:07:38.8333 (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: GkUETT3UmUobyo3qu5svrnTsITA/DvcKRNMJqjak46m23GZIs4xsfcVbp2AkkAMH X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6922 X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: pk9x3dr4wf4wnb87k49gucf1ikzcmtww X-Rspamd-Queue-Id: 57C06A0025 X-HE-Tag: 1674497261-355085 X-HE-Meta: U2FsdGVkX1/c76Bl2Juu+COVYs0P09547ISeWd7V67jKaaBpqu/c6+Afy5AwaVxCIxrJXLgOOjrl9GVKio29ckJccvJDtl2c/DNoflINsNTcfSJ0lOK5scM4pZItacvMKIu29VP+seh7f73iTuyZ1QbU5ilGliulYkuhRyy7+MuEI4IyvJWCtJmRGd7ljNVk8q4J4B6C1i0itdQIULwSxaExxyL7QLTmkOmsAid370bwpVRCM4j8cyT6bnP2AiOiPhHUVsDzo+ebO95sm4CAjSZDjD6wqoIVdAprtXgRuRPvLJ7utYAbfWysnuYblgvK+tp7Gym2FGVeLQOBUGg23LlsZhqLyd79LPGI7VzAlSHfpUskZenIA6IFhqdhI2ecaX8oVOQNffv2T/8yMQ6WQDD9cYbxUNiZHk0OBMhmIl26nBMAeknlp3Gl+FyDao+O0Kl7flBXUb8GVZBmRfukvCjNlZQClRNkY4WBzWvdHCFR5F6TsCAIRuVO4Ds6B/HwKcTqk6sIXudvYulNBuW7noKOsdbqZAOb9CPME38NHWCiA5cDdsrpnVSU8Pz9/oo/Rrk1dlNOO39ugj707kRNITPpduAi5SdNTl88CfDg3XF22Q8+BzQDKSkIXVN3p26tYMSH0a1UGRr11Rocrm+/Yq540ohHwsNt+MQMBQ5DTL1Mg9/mmQon8fXgYrZDrRY9YZS9e+l8M29hZjC4oVIAVpUSMHd+J3+WeyO6cvoS4ScuUwm/6u7IXjKhXdETqhceX0LzCCakwvdxK9TyvnaLNdFSSYe0PHIHggcXI/2aGke3D546KVyXOID9MzyYsKmIaBjPfXEDrT2BKb+HQgp1mStWpHQhUD/ohQqFVVbky23JG3vxOmlpOqe+gCAaickEH6iRXl89zqeoGRS2Qy4LAgwSeEBlwF5/NzEoQ3nhCr9t/k0vK/ErH4fZKsQAx8UTFaTAfaNLRtYMxG4WYbr bi1Y9jvu HXF1VQ4xKmaH+L+EZYlaD7QcthoR24oRymd0UWMogaOA8YInLa6fQcxLJ8H9de65MJtU0jsExkKIe6xOKFo3on65OiwbxCxHqunYmSbWShYOVledyHjDcWSXchu4kgcqrqNJXN8iKh2I+E37jevfb1qE60y109JWMzSbS1g6rkH3+2QFTtWuvNspxKzG7Nl99u4m0PpyFArXNrTsbeCeZalJQUOxMp2xsMeRQr5du3mJd+REd+r+ACgbQBRpwF1MP81VB X-Bogosity: Ham, tests=bogofilter, spamicity=0.000159, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Jan 23, 2023 at 01:59:55PM +0100, David Hildenbrand wrote: > On 23.01.23 13:44, Jason Gunthorpe wrote: > > On Mon, Jan 23, 2023 at 12:35:28PM +0100, David Hildenbrand wrote: > > > On 17.01.23 16:58, Jason Gunthorpe wrote: > > > > Now that NULL locked doesn't have a special meaning we can just make it > > > > non-NULL in all cases and remove the special tests. > > > > > > > > get_user_pages() and pin_user_pages() can safely pass in a locked = 1 > > > > > > > > get_user_pages_remote) and pin_user_pages_remote() can swap in a local > > > > variable for locked if NULL is passed. > > > > > > > > Remove all the NULL checks. > > > > > > > > Signed-off-by: Jason Gunthorpe > > > > --- > > > > mm/gup.c | 30 ++++++++++++++++++++---------- > > > > 1 file changed, 20 insertions(+), 10 deletions(-) > > > > > > ... doesn't really look like a real cleanup. Especially with the > > > > > > 2 files changed, 20 insertions(+), 12 deletions(-) > > > > > > on the previous patch and a new internal flag .... > > > > > > What's the benefit? > > > > There are all kinds of unnecessary branches on the faster paths, > > inside loops, etc to check for NULL when all we really needed was a > > single bit flag. > > ... call me skeptical that this optimization matters in practice ;) Oh no doubt, just noting that it isn't just about line count. > > It isalos much clearer to understand that a FOLL flag changes the > > behavior of how GUP works rather than some weirdo NULL argument. > > The whole "locked" parameter handling is weird. I don't think adding a new > FOLL_ internal flag on top particularly improves the situation ... at least > before, the logic around that "locked" parameter handling was > self-contained. Self-contained weirdness. Well it has become less self contained now. Locked is sprinkled everywhere, and the main purpose of locked has now changed to primarily be about managing the mmap_sem, ie we now lock it automatically for *locked=0 So the special meaning of 'you can unlock while guppping' has been really obscured. With FOLL_UNLOCKABLE it is clear, search on that and you will find the few users and the one place that implements it. Jason