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 319EFC433F5 for ; Thu, 3 Mar 2022 19:05:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F3038D0002; Thu, 3 Mar 2022 14:05:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A1F98D0001; Thu, 3 Mar 2022 14:05:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 51DDA8D0002; Thu, 3 Mar 2022 14:05:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0084.hostedemail.com [216.40.44.84]) by kanga.kvack.org (Postfix) with ESMTP id 402B58D0001 for ; Thu, 3 Mar 2022 14:05:40 -0500 (EST) Received: from smtpin24.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id E0DE1A2314 for ; Thu, 3 Mar 2022 19:05:39 +0000 (UTC) X-FDA: 79204003998.24.4A4309D Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2075.outbound.protection.outlook.com [40.107.102.75]) by imf02.hostedemail.com (Postfix) with ESMTP id 459A480014 for ; Thu, 3 Mar 2022 19:05:39 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lp44kiwEAsmyie0dYn2DxjbTdGjuEQxB4wmGToZqeB8414Juh/OqW8cs71nnhzZGzCpGm7H9TnUWn5stazzKP4Eu6mdy5Y2sa8F3swvh1u++MiVnOO1/wA3lt5wdHW7fzWtSUuvX7oBL1l/aNILufm0XmXImHBg9Z5zDhrdXiNr9Qx5IJxbgdbfTvINzTfIeeNWsmpwHD8AQOAJFqRoP6dPNh/NBNOO+wwM3mpd+0lO/Wr0lFiDqaeLFS+xoHrOPvlShHJq9ijKg0/f8PGnXmnq6eHgraJb1PxCZj+nfgqNIFu+mNIuJzzuEet1Tk2ViyAcyO57gA9E9ynN/wElmQg== 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=rZjRa/nnyIlzOZVXSIHwqbPSQuyKE3Mt6A4bzg3w93o=; b=jWNeWHCjck3pLdhaSfbSYi1L4q4f0t3xv7OpNZOu9DchQWZ9jsLhjMLHG2IElaJuBS1dcIaU9w1QKdPAkjzP8bSZUTTnGkIc6ynR+ilMtz+t2NDbFiV7cmOy0SIYJ+fsGJ6rsMOtqFsrCdOSTmNrtZsAwcsTHQGGH9twAjUMMW1PpxAdhg9/2MR6kc79T3399AZ/5kle+UynYjp4JzsBdj46SJEjsI/E4cPk6zTtyJIV+xuWTgAOZ3DKeQskxAcTYMDYQsUTifHfMSKwcW5xlctTf3HcQZ8PLxpZ+rFPv3z1DRRPwHEz46WRLAyZRg/cnZ+3c6bXAOMZGsv9EzrMFQ== 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=rZjRa/nnyIlzOZVXSIHwqbPSQuyKE3Mt6A4bzg3w93o=; b=v4rHpULPGeWNDke/YDklUg53r7UUpqvyP5NOejOzjGkpSZCQRkL0ny57sfBMJ534pioIq/91NUe2oqabW3/l25msUw2HX0S63fSc86JvW+IyKTjrzyjwPqJSo+N5Fa3zvHmZsS6vRwv/kf58Ey76Mo2MUFc3bH+D3Is5fJ91Wyc= Received: from BY3PR05MB8531.namprd05.prod.outlook.com (2603:10b6:a03:3ce::6) by DM6PR05MB4315.namprd05.prod.outlook.com (2603:10b6:5:9c::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.11; Thu, 3 Mar 2022 19:05:36 +0000 Received: from BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::7856:d027:55:4db6]) by BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::7856:d027:55:4db6%2]) with mapi id 15.20.5061.006; Thu, 3 Mar 2022 19:05:36 +0000 From: Nadav Amit To: Peter Xu CC: Andrew Morton , Linux-MM , David Hildenbrand , Andrea Arcangeli , Mike Rapoport , Jan Kara Subject: Re: [PATCH v3] userfaultfd: provide unmasked address on page-fault Thread-Topic: [PATCH v3] userfaultfd: provide unmasked address on page-fault Thread-Index: AQHYKrg8+uNuP1c3jkOAmyouHui0kaytVNSAgAC5DoA= Date: Thu, 3 Mar 2022 19:05:36 +0000 Message-ID: References: <20220226022655.350562-1-namit@vmware.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.3693.60.0.1.1) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7887d5df-75a8-40c6-d9da-08d9fd48ccba x-ms-traffictypediagnostic: DM6PR05MB4315:EE_ x-ms-exchange-atpmessageproperties: SA|SL x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AyBz0bVps6rcpcs+1r5XMLBedXk+m1iQqSg7+wrGhOR5VP6hw3pBR+zS3tMsDxlAyzq9sXx7wi6FM2YvFY6vxpzSTRLgb4IEKu2crEgxjmg4xK6MAVs0O6Rch4qthtlesAy1xlQlk9eZqKgKmrXUt/uHgccSIXUYsi0zo923yqn+QmIzCU7PCAyJBxY1tax0o4VQHqgyNl5TpHbJmP8njHIuIj8lJaZX6UiLW7g98yBkGsPgYBrYsNAlHGUFrosEpcdFz+G6w8Bi3oODXsGpMQ4Ox5JX/zTzcdTGhI2hVwwJsQTBuaur32EZt6SIFKWOpg9TFSm4ZOPSeYakoxFTvGDvpwVOdAPlIevksOLC0/SjbiGq40kIPmt2HdxZQinUMHuyHO+ZsR2lO4m330eFZktU0ZSmfkZfLhljRfAG6TXMli0zlQZZkTzQQbjP1XaesAwGs4u8qgvlNj6NQ81i79pXdhohFZfYbo0mItvCaQi4bfxjw+DEAbUtQM0F8WL8TkZUtAJgzKqB+k3ooKaROi0h9Sh9DvFf9sfvDnGkt+TibtnNyBuGp8liDWb0eZ6ZpioTX+ozJdUixDOZOxdePljXOZ0rFHrTWpH9D3CXcYOWOMZBX5dRv0IkCpFW/FVoSPTjna3cnCQFjNqfio9tHtX4GJMzmlm/y9ANvucIuEQj8CanFEJktWfhvi9tjtbXUa+PyIWU76Plx1cDfTzqmC4yip93ro2PhkGmp/tolptWo7dMhAX+XThHhoxU/rf8 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:(13230001)(4636009)(366004)(54906003)(26005)(316002)(186003)(122000001)(6916009)(5660300002)(2906002)(64756008)(66446008)(8676002)(38070700005)(4326008)(66556008)(66476007)(86362001)(8936002)(33656002)(38100700002)(66946007)(76116006)(83380400001)(36756003)(53546011)(71200400001)(6506007)(2616005)(6512007)(508600001)(6486002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?sBhVdn6H+wVxGz/57W3OKGEVgzgp4lJMZ2d7ujhRShIoUy2z9lguzW5Rb5hx?= =?us-ascii?Q?6QmPkXnS1QX3OBQ9JGDgKpMxC8Vewr2SDE1/7N2TRARU4LkZAs7VXsElo8v8?= =?us-ascii?Q?QAnWVitE6XbYYhOaVSFgAkVpWQXscLZRU56cc6A4gR5uUq92V7KxUS6OgUbd?= =?us-ascii?Q?rUnlCMnKKDKyy7cun2+a8SVJxTN8S+7Bw5sP2ZCM30rQcrVHK71TdnqrsHsZ?= =?us-ascii?Q?XFfh5Pkio1CVq8wZBu7lyeaeNXAHFKd62K5nyqxlwSK0K+nZVGTxWoJnWffi?= =?us-ascii?Q?gId9ETZ8GqaqtpdfsqecXwDPnlDlaSOHqh99vLktjjo558uiSTuytJKm1rHV?= =?us-ascii?Q?7XstFptNPIZjRTWHRoy13LRgMjJexB/7MjDmdPiDYI4FoAYU8+VKUnfkuhy7?= =?us-ascii?Q?QFa/fNw8qM6YEYa190cexFWA/8eWFdApL29YL7/7ovf8OgowRzsYl6LxXwTk?= =?us-ascii?Q?C2UT2ShzXiZTBspCFdzChZc7VY5g4PZKhbXPc8srSFnXvsdSyMZK3xVArg08?= =?us-ascii?Q?MJfQRkmK2+dF4RMTw7zyfGBHnSNKqTHDZ+LWIq3qzlyvXoAzWe2CvXGdktd2?= =?us-ascii?Q?QzEYRDTotMa+1HNdz40TCl6TOF8mN+8XuL6K/qbpfmtkOnAdAZ1IQ9xI94VR?= =?us-ascii?Q?VEJQi3SgcIyRCJb/b45KbadU36BvGAcw7QCjrjjsD9o2yQBsXxHyOtSg9jrh?= =?us-ascii?Q?d1ZhlZ44jzMlk1MtBPnV582kj7vnG9Bprd4vkVhuuRWCpX0BH0f80TOSrTrX?= =?us-ascii?Q?hYhqW77MvEQhXQg515Y3Z5eriSmXyScZvanMV18brME3U6M2YVwqxnILkOa+?= =?us-ascii?Q?kaYZ1jkL1FMAHDHxvVdleO3bi6oNZuQJj1xnvNGh0uPndlbnLzwy8S/BbOvm?= =?us-ascii?Q?GbIcyUfDXIbPVoNXOT974YJetQhauVuOPg0tCIISMrzlFj5ZUshS+A0OBWpM?= =?us-ascii?Q?45h6yMPdrXHijG3fpAqMN48reYq3MB7pvdlT0Klrl+wSX+USyO4ExEMtaR+b?= =?us-ascii?Q?wHGjF4AoidKyadYRMcV8LYUqzYbGkDoo5aR/+oTsIQ74/Gu5m4jfrl+qCyKu?= =?us-ascii?Q?m3LP3sZpWoJkO8tt+tZR9aL+n/odMeCFLw/Ekxb3uJi3TMVX50AxMJpM7ccO?= =?us-ascii?Q?drjLmc3cy+gCNf1wC8kgOAmzMB4aXDx0em7oISNY28Po9JxJTLY8RnefmhTR?= =?us-ascii?Q?Lf2qJ75gslBlxHlcrLttL/Q0KEIv+peMBZ89uzDn4vvkuE3oFXHSi2irRK2M?= =?us-ascii?Q?A40nJLnNLVjDSexCBbUPTTkkYEy5pZYa0JUqnRxWnCMjywLRoOBvsfXE1ENS?= =?us-ascii?Q?c6bBogO+F5MlAHrTfOp0fRybaBTQOZqYtbvo8YOQDofmWwRL5ZDr1M0xnr5z?= =?us-ascii?Q?eKFBtSrxr3Y2BM/0gvd6k7AQGyi9jVCFHR8bH5u3g4IDjgvR9yFqR4Fnz06M?= =?us-ascii?Q?deujHSZ+j3IC5+xZRgbj2FkdHIsswsnKfQTEtB2nGM201fA5rn4aUiaA7csd?= =?us-ascii?Q?Zm3V8PZEFRJuikRHnEWbYF9VsUc+5WKlLPlq4q59RMfg1D39yVEGUcfJr7Qp?= =?us-ascii?Q?sCubUUZydTVu1xKCWlHODtXoZyHqw4TGr9g++0Rdxycn1LoihVQ9i41+GkKD?= =?us-ascii?Q?Ww8JAwI7ElYOo2Ezxz+fZn8=3D?= Content-Type: text/plain; charset="us-ascii" Content-ID: <1B66042D84A9CD4E94055281A468F093@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: 7887d5df-75a8-40c6-d9da-08d9fd48ccba X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2022 19:05:36.2812 (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: QmOa/cEs2SXqRY4jxmPRgHyxX8r3EM9pLJAoPSAF8Y8kIHuH6jiSsw5qnZwbtziY+jmqunzXfQHgqJK2td47QA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB4315 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 459A480014 X-Stat-Signature: xr3j18gx8s47ri7iep35x45qb6ybdc4t Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=v4rHpULP; spf=none (imf02.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.102.75) smtp.mailfrom=namit@vmware.com; dmarc=pass (policy=none) header.from=vmware.com X-HE-Tag: 1646334339-90655 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 3, 2022, at 12:03 AM, Peter Xu wrote: >=20 > On Sat, Feb 26, 2022 at 02:26:55AM +0000, Nadav Amit wrote: >> From: Nadav Amit >>=20 >> Userfaultfd is supposed to provide the full address (i.e., unmasked) of >> the faulting access back to userspace. However, that is not the case for >> quite some time. >>=20 >> Even running "userfaultfd_demo" from the userfaultfd man page provides >> the wrong output (and contradicts the man page). Notice that >> "UFFD_EVENT_PAGEFAULT event" shows the masked address (7fc5e30b3000) >> and not the first read address (0x7fc5e30b300f). >>=20 >> Address returned by mmap() =3D 0x7fc5e30b3000 >>=20 >> fault_handler_thread(): >> poll() returns: nready =3D 1; POLLIN =3D 1; POLLERR =3D 0 >> UFFD_EVENT_PAGEFAULT event: flags =3D 0; address =3D 7fc5e30b3000 >> (uffdio_copy.copy returned 4096) >> Read address 0x7fc5e30b300f in main(): A >> Read address 0x7fc5e30b340f in main(): A >> Read address 0x7fc5e30b380f in main(): A >> Read address 0x7fc5e30b3c0f in main(): A >>=20 >> The exact address is useful for various reasons and specifically for >> prefetching decisions. If it is known that the memory is populated by >> certain objects whose size is not page-aligned, then based on the >> faulting address, the uffd-monitor can decide whether to prefetch and >> prefault the adjacent page. >>=20 >> This bug has been for quite some time in the kernel: since commit >> 1a29d85eb0f1 ("mm: use vmf->address instead of of vmf->virtual_address") >> vmf->virtual_address"), which dates back to 2016. A concern has been >> raised that existing userspace application might rely on the old/wrong >> behavior in which the address is masked. Therefore, it was suggested to >> provide the masked address unless the user explicitly asks for the exact >> address. >>=20 >> Add a new userfaultfd feature UFFD_FEATURE_EXACT_ADDRESS to direct >> userfaultfd to provide the exact address. Add a new "real_address" field >> to vmf to hold the unmasked address. Provide the address to userspace >> accordingly. >>=20 >> Initialize real_address in various code-paths to be consistent with >> address, even when it is not used, to be on the safe side. >>=20 >> Acked-by: Peter Xu >> Reviewed-by: David Hildenbrand >> Cc: Andrea Arcangeli >> Cc: Mike Rapoport >> Cc: Jan Kara >> Signed-off-by: Nadav Amit >=20 > Hi, Andrew, >=20 > Just a heads-up that this version has not yet been updated in -mm I think= , > while the queued one is the old version. >=20 > IOW, uffd is currently broken on latest linux-next on hugetlb. Thanks Peter for reminding Andrew. Andrew, please acknowledge it would be queue for the next version and I will submit a patch to the man pages. =20