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 0902CC6FD1B for ; Tue, 7 Mar 2023 01:30:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 64D1A6B0073; Mon, 6 Mar 2023 20:30:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5FDA36B0074; Mon, 6 Mar 2023 20:30:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 476686B0075; Mon, 6 Mar 2023 20:30:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 334086B0073 for ; Mon, 6 Mar 2023 20:30:04 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EE9FD808B0 for ; Tue, 7 Mar 2023 01:30:03 +0000 (UTC) X-FDA: 80540371086.03.3786372 Received: from DM4PR02CU002-vft-obe.outbound.protection.outlook.com (mail-centralusazon11013021.outbound.protection.outlook.com [52.101.64.21]) by imf24.hostedemail.com (Postfix) with ESMTP id C40F8180005 for ; Tue, 7 Mar 2023 01:30:00 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=rK9AbwVB; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf24.hostedemail.com: domain of namit@vmware.com designates 52.101.64.21 as permitted sender) smtp.mailfrom=namit@vmware.com; dmarc=pass (policy=quarantine) header.from=vmware.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678152601; 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=hBK8dbustjfWyLxlyWzQSvHKM8FNDVgZNhlqBA4f0YU=; b=iFm+XSH0/hTD3qoqpj1TgS0wUuYPsuAwQ4JEviR65g+UhONU3s7L1tPhJkmfNoiy23UZ8d kM0SkdoFswaSpGv55lBoEI+8pxFPqP0zQTbMJoiNZrx8a4Ja2BlZkfAClvuOebf//nDXKW cPM/e/J5nyJqx6aUhT5HfqQQ6YNIlME= ARC-Authentication-Results: i=2; imf24.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=rK9AbwVB; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf24.hostedemail.com: domain of namit@vmware.com designates 52.101.64.21 as permitted sender) smtp.mailfrom=namit@vmware.com; dmarc=pass (policy=quarantine) header.from=vmware.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1678152601; a=rsa-sha256; cv=pass; b=IYD6qq/rPtEG/rmliK/wIMQfYwhEYpmWy4oT5pAsTfR7U/2+ubcO2ZhzVQ+71kiXamJir0 qDUG2EsTRBSdXTMXvnm279r3XVV1T1OZCEfyiAjFgErhQz3mtUgf+6ffzp0S7uRZZluRoi pQsemQrEWe9KElJxsp5lqo0F1V4Sxdo= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OvWkyIgd9FE90Vf0zTZwDxtsjgBNTfyNFs+Q2n9QwiXCe7IF63iNrXt8zsCDOWlAtU5Im/xNPp1X7d2hauS6IBa1Ls9Cuq3U+m2hcQ4aplCX7+J1Hs10APDljJOuhY+NI/Gu4RWeO0k3q6oeQCYiTPAjOI2ItNEUS6vKvHsB1GF9FLHuKDvUJPLILvbcwRvd+P1iEv/kVNBfCsklGGbZBZKVCuja/5pPEWIqGzb5VQa3gLOE6camknRGPkIaJ6KGvnT+T2USxnxLGq6BBs/461j9NwTIhXvvcFrhY7JNc8oLoJ/cwI495fNhcLHAnQ1tfG4ivT/XyxYe4ixyVknDUw== 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=hBK8dbustjfWyLxlyWzQSvHKM8FNDVgZNhlqBA4f0YU=; b=LyWOFAjSjO+NciX6mEJHpvidTWcClHuoyEJxUg0FE0fjkc0ILENwP2vIV4NdfoiCb6JjLIldYmrttrKNPPLTr0digyopGo7BeM9thO/FpdvcDpOHwn2sYLJnLJ55v9e6sgbS8Pdu2qjLyZbej043+21OWGXvOOsZ6IjpGPwyIC9FxHlGDe7uYJyaQEqzVZhxbXYjq3brMbSvWTgFTeqXyhpJuB/2yUaC5JTr3V5pFtAgbUWLMxiTJg82dGFK/rRkDe4UKTrmTj/B5VA3knq+5WP7blUQGgaf1iT7Xa38fqbnpW+43BrHoru9/QukjBcjB7FEAlcFwHODvQDv6OH+aA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hBK8dbustjfWyLxlyWzQSvHKM8FNDVgZNhlqBA4f0YU=; b=rK9AbwVB8dHmjjZ3z7enJl8smlj94E4A9QHQXaoTtt8PdgsO620nxGka1HWhcKNbZx7kp/ciSHvw98gs2CujvRv/ujEHqMHWbVd4uKCmgbxaHOSoqN6n4kDZgD0NbsRjKUtpalsJGYCZCJ7Ju9ltSrJCNFIFxE7+cw19229WyV8= Received: from BY3PR05MB8531.namprd05.prod.outlook.com (2603:10b6:a03:3ce::6) by DM6PR05MB6667.namprd05.prod.outlook.com (2603:10b6:5:132::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Tue, 7 Mar 2023 01:29:58 +0000 Received: from BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::e9bd:ef2f:b71:8084]) by BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::e9bd:ef2f:b71:8084%3]) with mapi id 15.20.6156.028; Tue, 7 Mar 2023 01:29:58 +0000 From: Nadav Amit To: Peter Xu CC: Axel Rasmussen , Alexander Viro , Andrew Morton , Hugh Dickins , Jan Kara , "Liam R. Howlett" , Matthew Wilcox , Mike Kravetz , Mike Rapoport , Muchun Song , Shuah Khan , James Houghton , linux-fsdevel , kernel list , linux-mm , linux-kselftest Subject: Re: [PATCH v3 4/5] mm: userfaultfd: don't separate addr + len arguments Thread-Topic: [PATCH v3 4/5] mm: userfaultfd: don't separate addr + len arguments Thread-Index: AQHZUH4V9u80YHiRfUSB2Rpal/Yol67uhN4AgAACwIA= Date: Tue, 7 Mar 2023 01:29:57 +0000 Message-ID: <209840DC-22D3-422E-A035-B7ADCB8E531E@vmware.com> References: <20230306225024.264858-1-axelrasmussen@google.com> <20230306225024.264858-5-axelrasmussen@google.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3731.400.51.1.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY3PR05MB8531:EE_|DM6PR05MB6667:EE_ x-ms-office365-filtering-correlation-id: 224da4cf-394e-410b-29c2-08db1eab7672 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5RBrKUNTiHq243kkx09pEViAMTSz9/UBpKlfOmYhOEYmdSHW1oGzXY2UZh1d4I+jGpK9PkoKp4rfvROk8F7JXjIR0ytJDQqFWpW3/6V4xce9PVRmL5+GNJ5QzMoNvmxAw+q6rmB/BipQlVhHmU3jVD1GACPARG51WHkz7fiVDM6j9nsoa8v8UKhbKhR4UdwoRTleSibTOVW+LxsRJXig3xjxD/UjxxnboawRkBINIT/0GX1CduItRF0h9VmbQ1ZPPZ1ny/E8B0184bq4swpbZPs3GppG1JfdEWt838PIuGmOKX59s3cP7fU2gSWm8cVkRhcAobL/cF1slQyK1lpWwcJfkTg56Z4ltV5AGeRlI2hAXGAMvosDGlQ0PNQqfFpzjni09YPGsq18H3ajQ3+SeP7vdLKrxKa9DqnhV8y/1syxGYmuVzrr4lCvEsRbq+cFUdfQibQ2N3K/N6QtqnCkpNlisKq7+ubkoIU4YK9fe6uFRmXRn1ZVA87akI3bWGmBSFh7tb18hqZXPJOKQ6Mh8o7FqSpXiEmWSLt9BTL9LukbOY35jwYZSlVo4YLtvO0jzwHAm94oqvMBh5DlauRXJLFnzS9VMPPwXKCsQB//uL3e3MHfOJX6WTUzAH3m/E4rJjDPzmN9dYQEKTiFlsbnAngZQiPqAqWXgUPBE3K+gGdJq2uRVP6n2WbP8Pdf1dhqryxPBVBIjThBWIWi1w8ycmsHnDkBNZdYngKzu6g/x1Q= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY3PR05MB8531.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(136003)(376002)(346002)(396003)(39860400002)(366004)(451199018)(66899018)(76116006)(6486002)(66556008)(66476007)(66446008)(64756008)(66946007)(478600001)(54906003)(316002)(38070700005)(38100700002)(86362001)(36756003)(33656002)(122000001)(2616005)(26005)(71200400001)(53546011)(8676002)(6916009)(8936002)(41300700001)(5660300002)(7416002)(4326008)(2906002)(6506007)(83380400001)(6512007)(186003)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?JAl9XbqkuPiXObq3jEBJrWXOY6BQFVoV+8c6p85FHramlhqW9HzMTpryexU1?= =?us-ascii?Q?FCYMbPptBxsGuMFqtcze87b4Tx30Qq79huQqijmVstHeuiCBq6cX2HStrTuo?= =?us-ascii?Q?ASNDjm447sQBmgEoazTBX+zJ3s4/mFVwM4weYbkxQjjePLbec0G7KPFuHAI9?= =?us-ascii?Q?gEbJqNYaHAi0jX5nwsYoFEX1gl2yKz/gKIW7KjcXN8Ab6Zp6Suju/zionAyk?= =?us-ascii?Q?w12Wr4MT8/nhLWb8REzs7+FmMHl9JBPPn2G78vWq3V0R9d8yITGf1/9SBswG?= =?us-ascii?Q?pdPuYHYRBKx5My63tHvDKSwbaArqu6S9M03/2Fyo9SjHsK2PFgC2n5zhbqUh?= =?us-ascii?Q?DN5knr+EUk7zienS/+Pkko8jmo8VwNShal7EyBnIP5f6KnAG64RvEmHhysis?= =?us-ascii?Q?M9PS1aflRk3Ibihl2b47azm5n1Y1jNccYAH1MVDAtsNJAV7kueMHBNgddSCY?= =?us-ascii?Q?T9W2N8M5WKLbNkPVuEiLhKgzC9EWy3lMqo6E7OuHgox4K4IjzxTMSPUCHJNf?= =?us-ascii?Q?dofNl2jjKoz3JYqeXIQX2sK20IrJ5KFtNAKGGVIgBICpYS4cheE9jIFi6hOW?= =?us-ascii?Q?78wzWU6c6x8mJYH1WU/z35w6VTF9Ch0FiJ9IpURTR90zEO3S43feefw2G4y0?= =?us-ascii?Q?6VqtzLzskQx+g/jzs3At2EZo8tk9sQRCqWQhgfeqUt9CDPUlIMnoQOe7g2rZ?= =?us-ascii?Q?zYF/IHet1ZOCi99eu/fWZIKJWCslnhMMwvMBjhwZsOTXch+P2p1RNfDSdCd0?= =?us-ascii?Q?qmOlmNoiScL2bwxYu39wuoVzSuNpbIVLsdp1VgA/aLXGZB3Ta+ysHlUypEPP?= =?us-ascii?Q?NHplOuLCXKUBLA3xdsayJGqSOwVZmeBgt0auR86afJZ0F5GskyB43VnnxG06?= =?us-ascii?Q?pKdWNeBMvMHqdG0dtID0myn7kns5TRe/wj//YJtKM127LCflTKPhJTmd+pyz?= =?us-ascii?Q?CiuBVZZfn257qE79iYNwvF7TRmGeQOgW/iqYvYpCvWalx6kN83M/C38kICSF?= =?us-ascii?Q?7DtFExeZb4YWFO3ppphhkh2WfNyW4eAHL4itQT/sT5tvAoiuBDts+0um/WF5?= =?us-ascii?Q?zWFuFNUwP2v/nGtqZqUJhCTRqVHnWmA6UHNr/uyoS1unoCGmPxYJxq/WTFXy?= =?us-ascii?Q?bWInDS3rB0X/tyxo86zdIP+JltxkVUT2qAnbuxN1gwJvqG8SKRSt+fmxu+cN?= =?us-ascii?Q?jqmRlzsXuJHhMOfKXktCugPDEwwqJivj1dn33ZlAnEzveJL2EIq38RB/S+CF?= =?us-ascii?Q?SnJZ21wAd2+MLbHNAuNjjwalwh8P3LqSSrvGVS2nM1oEIHDwvDgAng9uA7Hc?= =?us-ascii?Q?/C6gsJxIvO4I75RJkNhO5caSIM7/C/e/yqynwd3257BtLdYV0rEdjSWo/Haf?= =?us-ascii?Q?SLUCwt+U8LMoAyJiGMiQA3XHVf6oo/Yu8KGjpBCcU1akDAHVVfKo708e+swc?= =?us-ascii?Q?fSMGlbyy0fr13WnF87tZyVXD+Tu8B9EvxBLVZFHXWRYCVdqgHYB/r46ljkb7?= =?us-ascii?Q?w4iTeYUyy2/62Iiw2ELKWxLWTMYSnJ+IdIKNuka32E3Vh/zGD+DbNJqAIG+N?= =?us-ascii?Q?nLtV5IPAf9ikfBXCVyWQ6+GMqniwzuvB3UHwDa25?= Content-Type: text/plain; charset="us-ascii" Content-ID: <04BC7981C92E304AABDBF36A01B39BCC@namprd05.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR05MB8531.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 224da4cf-394e-410b-29c2-08db1eab7672 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Mar 2023 01:29:57.8335 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bHmQBefQpAG+4IQ35WbXzmFFMKdFaCDjXJor1/DFtCug64QrnH01AN2bMvdKggO8MkzUckEwatZE0B4U3B2lGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB6667 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: C40F8180005 X-Stat-Signature: 1fdbcxfzsjfukuhqmgod65hnh4yuyjss X-Rspam-User: X-HE-Tag: 1678152600-537595 X-HE-Meta: U2FsdGVkX19dBBfxKXep6HUxe3WwsgHvbZkmH152bXjL5H24DcMWLfCJqnLb9ADMvE+APOl+1G1/+UHOskl0jlb6dTWSkLW+bxK+78FFczta9xXl1A9mQt5R/eu9WelvyXuVIMwwik4HmqAc3vEKArg93AADRGbPlEJS9JBieIXxkiCN/GrFz6d4lNwTwo62u/yMPtyppxXjvi6WOIMApw4zQuVusXnQqwnstTB5RhejPdqrItlvNJUMmDkflwSjTxvB+4C+HXmD/qxeYykvNwLl3M0SrqYSf8LinJnTPXP1QCFZeK7JIAaaLa+rbfbzjmaceb6pT3pGGtrHWp8BKxO2ORON7w060NV4yEeOnd8du0CcEaZzUZ3CycuMcV3yLKNFpmD7W846PUY1/6myDvWEWmjgKTrOChhBHAgLgf3pi+9FM23liHytS9YT8Dw0MtrO8y2/HvCzLqXrezMZilQn6pTgnU/3POhBbbERi08Zd0p2Mciz4N/tMBuj5dunJ7oQASn/bcEgBvBVJ1Hjy2miDDXXmMxY3d3YEgJOJQTbZDILh8J4CAhi1s9ggn6mQOxBLKCdmFvgc0MV2ir0cdHYaQuSJAK16kKSrtqvzhwMFSJAI+Nto3H8qOSt8M+wBK6xnCtQAQfm57kV759pke6flWCAF+iGw2HuksSpfLQ2s6qc2Ooc8/2QiotrjejFDDl0Xy8bsDdKm2a5HJByGjEXC6qf+YCkfS+eWDrAriAQltMomekG4qb/ojBSvlv+NpCrhKx7SjTX5yoVrJX+A5lU4g5rTXXmkPZlpxUF6EeuYM8Qohqj1/CFZJtEVZt2jj1Qdbqd+XyKMUp2GyBaK1m2lhmnZYk4M5KKytFHA0VFF3TkLd0LUK+K+RLnZiheDFwP+Ldf27f1TTCPqJ89WlidzSirbdbQKKmU/zo8zAUtrN5DXDFSqyqlcF/cMPMrY+CiiHrPDfk+U1KYSSp nPW8tdSX uagJanl/ly7h73xWu/Xj0ixcPDhJjD9enTpVWpNhTAciMWEmgvGt0gPTPw8Iw11+Y+Trn07idjwWNXvHJlGIxCtm18P9RzaekGWMXPLXKc6o9kMKFkDuWaFAZRsYJxqv+JT1TdPUqWjllSk70kzGmyKvrZF3libhYPHSQREDNO7hVfjxDbfBzM4jjTq3gUxGUb8vLQdTfHcEF3RrZep9SNuFnyy5llFfAVuBitOkN2jIISRXiyEWaldFuXBQ06pVloDqgGLiUkgPrgUVnBVbLqtv4tA== 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 Mar 6, 2023, at 5:19 PM, Peter Xu wrote: >=20 > !! External Email >=20 > On Mon, Mar 06, 2023 at 02:50:23PM -0800, Axel Rasmussen wrote: >> We have a lot of functions which take an address + length pair, >> currently passed as separate arguments. However, in our userspace API we >> already have struct uffdio_range, which is exactly this pair, and this >> is what we get from userspace when ioctls are called. >>=20 >> Instead of splitting the struct up into two separate arguments, just >> plumb the struct through to the functions which use it (once we get to >> the mfill_atomic_pte level, we're dealing with single (huge)pages, so we >> don't need both parts). >>=20 >> Relatedly, for waking, just re-use this existing structure instead of >> defining a new "struct uffdio_wake_range". >>=20 >> Signed-off-by: Axel Rasmussen >> --- >> fs/userfaultfd.c | 107 +++++++++++++--------------------- >> include/linux/userfaultfd_k.h | 17 +++--- >> mm/userfaultfd.c | 92 ++++++++++++++--------------- >> 3 files changed, 96 insertions(+), 120 deletions(-) >>=20 >> diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c >> index b8e328123b71..984b63b0fc75 100644 >> --- a/fs/userfaultfd.c >> +++ b/fs/userfaultfd.c >> @@ -95,11 +95,6 @@ struct userfaultfd_wait_queue { >> bool waken; >> }; >>=20 >> -struct userfaultfd_wake_range { >> - unsigned long start; >> - unsigned long len; >> -}; >=20 > Would there still be a difference on e.g. 32 bits systems? >=20 > [...] >=20 >> static __always_inline int validate_range(struct mm_struct *mm, >> - __u64 start, __u64 len) >> + const struct uffdio_range *range= ) >> { >> __u64 task_size =3D mm->task_size; >>=20 >> - if (start & ~PAGE_MASK) >> + if (range->start & ~PAGE_MASK) >> return -EINVAL; >> - if (len & ~PAGE_MASK) >> + if (range->len & ~PAGE_MASK) >> return -EINVAL; >> - if (!len) >> + if (!range->len) >> return -EINVAL; >> - if (start < mmap_min_addr) >> + if (range->start < mmap_min_addr) >> return -EINVAL; >> - if (start >=3D task_size) >> + if (range->start >=3D task_size) >> return -EINVAL; >> - if (len > task_size - start) >> + if (range->len > task_size - range->start) >> return -EINVAL; >> return 0; >> } >=20 > Personally I don't like a lot on such a change. :( It avoids one paramete= r > being passed over but it can add a lot indirections. >=20 > Do you strongly suggest this? Shall we move on without this so to not > block the last patch (which I assume is the one you're looking for)? Just in case you missed, it is __always_inline, so I presume that from a generated code point-of-view it is the same. Having said that, small assignments to local start, let and range variables would make the code easier to read and reduce the change-set.