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 33062CD1284 for ; Thu, 11 Apr 2024 12:32:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C1F716B0095; Thu, 11 Apr 2024 08:32:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BCEF56B0096; Thu, 11 Apr 2024 08:32:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A97326B0098; Thu, 11 Apr 2024 08:32:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 899AF6B0095 for ; Thu, 11 Apr 2024 08:32:13 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4F4B61609AF for ; Thu, 11 Apr 2024 12:32:13 +0000 (UTC) X-FDA: 81997188546.12.A9E8F38 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2044.outbound.protection.outlook.com [40.107.96.44]) by imf13.hostedemail.com (Postfix) with ESMTP id 7C72E2002E for ; Thu, 11 Apr 2024 12:32:10 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=U0sBbF8r; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf13.hostedemail.com: domain of jgg@nvidia.com designates 40.107.96.44 as permitted sender) smtp.mailfrom=jgg@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712838730; 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=L/X+4uFcmj74B4moYCAmT+Ns0AktN/mS9uc2D5biaBc=; b=rwGbzucqYjRFACup/+bArf7ip/hLX26V3ZAdVAs0RglSQ67IaqLTo376z7g7baQCXXbniq EVHrMzD1Fv/NOYi/iwHuZxiSwMzUKDN4VHHao4GQajwrsomVMLLllU5WS5zWJfFyMYErcp k3digMbkll9cd1nOQ5Wb5grXPjvgrsc= ARC-Authentication-Results: i=2; imf13.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=U0sBbF8r; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf13.hostedemail.com: domain of jgg@nvidia.com designates 40.107.96.44 as permitted sender) smtp.mailfrom=jgg@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1712838730; a=rsa-sha256; cv=pass; b=NDO1LBAGZ1uG3VM6Puxu2+5xqgN8eDWhwXm3/cW8Bd7HgPq553nWk/6zfJRYVC19Xl+fO8 uih1W/nItdRbSlHJLRSvgcQ+BgqagRBk1mjb0DHQHh1szf2/wHQaFzSI0ZXTsV8Cjt2SWW v/ELWeY5Hu6vybG2ek7szxjLNNkyTk8= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F/vb3qt+fMfKWarBJtG1OUN7OrMjt2kr/P2m3oiFAQJhpC1+C4csvVJbt58ev0CJQumP3hDNAmTqZS9NaFX6O8sG5sv5iK4ikOJX9n8qjOt21e2ioYNY0MwvLubGdCgfLGC2cHhVrl1BsDrQmygd9ZKG3l9kpSjQvvSWFeVOkZxALrotvQosoWP3ZlIa6uyK0MuSbuWa5Q8KJ3blTGPwH21N8IPrWtPCoWfnLou4c7brP/uAM6bqBNBFVA7afic95SWKxqZqb9V447evx1V18AC+n/vji7zQbbmeo2oKOv06J4jYuim4PtUYinDOYitcP0GFSYSI/PafXsjCAzX/Kg== 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=L/X+4uFcmj74B4moYCAmT+Ns0AktN/mS9uc2D5biaBc=; b=ReVqYqzCIwjkI+yETrX4XqAvYAfE1F8NbSud/A+NxmIIdsIe3sxrrSCWQp+/zkICuO8HCvmV0Hv+uuTOJnkDWxqs+w/JA6Xcomnu2sLtZ8t8mNFO9Tw6QC53IoP/ID/4w6wX7HqVa3Xssgp67rfwt4xphHT2Kp3reQxFwfvLyYnhFWddN1b1FIX2IUGew7ePZ5MzmlPmdUo+QJmYfb1qBeqWz0V12iamzG+JCaB811GPl4eGGDkrJaLmL944QwnGw3NSXZjM0Ql2cbrUJQ3QI/UMuAb5ploH/cus91n/pVroWAHHtCd5ZRHtSJipWULDKbX97xRhoJnN2DUMfloNRA== 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=L/X+4uFcmj74B4moYCAmT+Ns0AktN/mS9uc2D5biaBc=; b=U0sBbF8rsqSGz9ZVg8CwkYDSKl8e6BcSvMJbPOM/qpbS3z4A7CF4EEgGdoUuop5t1PS0El92PUHoFsZ80Jk9D2ro0rKFd7t3pm0hMb38Jv3h7x/tOJe6UPmGIzMNCMGcGRa1H+E5AxcWXFG1HC9/rFn82XrL8XDHauKHLzhsCUqtkr2q+7svOmGCt/m1Q+wAl7qHpkO4BXk4Lcbsr1DmWy5zo7QQfiVLo8+taJFfk19U2ocvTYYRi1YVkT1Z/wV8uCQlaNm2XYsXJ23EGwTIljNApUriylf3Ohg+oLbbyD62NFtVbF2gz1hE+9fCorMkq1/ku+0rL1UU5dz+ubYd2Q== Received: from DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) by MW3PR12MB4458.namprd12.prod.outlook.com (2603:10b6:303:5d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Thu, 11 Apr 2024 12:32:06 +0000 Received: from DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222]) by DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222%5]) with mapi id 15.20.7409.053; Thu, 11 Apr 2024 12:32:05 +0000 Date: Thu, 11 Apr 2024 09:32:04 -0300 From: Jason Gunthorpe To: Alistair Popple Cc: linux-mm@kvack.org, david@fromorbit.com, dan.j.williams@intel.com, jhubbard@nvidia.com, rcampbell@nvidia.com, willy@infradead.org, linux-fsdevel@vger.kernel.org, jack@suse.cz, djwong@kernel.org, hch@lst.de, david@redhat.com, ruansy.fnst@fujitsu.com, nvdimm@lists.linux.dev, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, jglisse@redhat.com Subject: Re: [RFC 07/10] mm: Allow compound zone device pages Message-ID: <20240411123204.GS5383@nvidia.com> References: <9c21d7ed27117f6a2c2ef86fe9d2d88e4c8c8ad4.1712796818.git-series.apopple@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9c21d7ed27117f6a2c2ef86fe9d2d88e4c8c8ad4.1712796818.git-series.apopple@nvidia.com> X-ClientProxiedBy: BL1PR13CA0236.namprd13.prod.outlook.com (2603:10b6:208:2bf::31) To DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR12MB3849:EE_|MW3PR12MB4458:EE_ X-MS-Office365-Filtering-Correlation-Id: c4f1d80b-5c3e-4e40-33e8-08dc5a2365c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: biuA0jmGNpkuXdoAJU7iWL+z68RI7PV+r651mgjZOkOagwc/nesTjw4dnn6vqmMbIb//Ehy579O4fJ8Mop66lJzD58rGA6NTN3E+zYO4hZu1quxa75+NIKo0Qj4BnBHb1Dsn8yjh8PeVFUxVXy7oPE3G/6JBxfQ12HGRxVC0vL76KQdJtyMNMhBzAgAD+WhJOLck67v/bnR9EOsWblcR41L4YoKkI5R5it8juCXP4LYkj3YE/e+MAiTJ/yY3xC5xtS53Pzx4VwN+G0MvnI5c9X6zIsXta/cOaBYbhop4FOe6T2N0knBTUp/ItRKa2glNT0jtfCuaHAogEpT5anokItkRWsEJojSCfCJSdM0fbi5pv8Va4Tqraq7yaB/de3jbmGAaAi+Xptw5n7CgZuGhbtbpcaYrwmGKffzYiIaA6X4RRthJWaeCZmOMpGlwFVg3YVMzUvEWcbnL9Vt4KVzEV+HG7Rd2VfwR+0o0UkQct9BTLtdu7icxUyS7/AF3QzGDhEwR8XiXFF6091ogOfgZnLaNzjj+TljvcOrQxJ5nJUVy3o91vD2CN+OVRoxPqH/D5hd3P8T9cldlO5clJfprl8iTtZ0Zpj3UikF1GRZrS5vy6PXXUyLwQpZknj3n+mp2Z+WYU1h9gY078MMJqUU8YYGz/ReG/xsJI160l++H9/0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(7416005)(376005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dm+R2j1QUS4tnvpXRm+4lGFYZ0dZNIEHqONa2YQp6rmJWD/7MCgKmvSUE+BJ?= =?us-ascii?Q?ciSqWI269QvqRffxwCPLz5xoc30g0pw8e037Uyd5agcPffyl68VCqEecAjc2?= =?us-ascii?Q?OEFwzVtzjukXkKpuXmoW5Ps53vmfh8h8B2KrsPvLLPIkA0enQ5s1D9nSJfbq?= =?us-ascii?Q?hOB16GWtnD3k2z/VP6RNR5BuRphkhBeWNOcjBjUq7xE6bPB9gQcqWAQA3Cw0?= =?us-ascii?Q?quZ6Bmt98mMD2mCZgSvyHl2BO886dNPC00pbVn+iqOtLEljdp+IJmnJdtyd2?= =?us-ascii?Q?HugZVP7LKGCtO+B+HhDDoVIrncQQcyUx+7k5R0DJ9RpqjqRrv8MFJuL7oKl9?= =?us-ascii?Q?40+vjWZe6astkAixDmlQo3kXGKbQ5uJKdvg7RnT9qTVoGYKXplhMnkFSmY+p?= =?us-ascii?Q?hcHzHWFMmxh8bL4/buxM56r3WgBQPp7yPF9srXVA0P8owBVr0lw/EIyyxRKA?= =?us-ascii?Q?W8Z/5KESd+Zr95DUUuxdzIDBP8qlgC/ZUur9YImxWJPdN6ory89+OMoB29es?= =?us-ascii?Q?6HKjjtuQrW7vLTF8s0SH+hwiRK9dDEmhGRBZ/jjanAsJMZd7RZz0/9w03Z0q?= =?us-ascii?Q?P3/1IsXDN+wG7eYzihL5VssrUCoaosBmZvII/+oygsvFoOPKgqgPj5HSsAou?= =?us-ascii?Q?3yo1DGCe5pEvIuAva5JA3bP46ploGsIFuazCl4lce5mSpGyq2+HkXOlnjkKe?= =?us-ascii?Q?o2tAeOEVH3GFbYLss+Ch7oOo0gKkncNFvO1YRzx2n/hgZZXMeLlY2qUfSQ4j?= =?us-ascii?Q?M5gU4Om5j5u09lYrYSpeL6cDwUsB7oxgeVQUMVByeKOznIo8587TyzB72S8z?= =?us-ascii?Q?xa4IpwHHNwKZQkICRIs/+IZqLwU6BguVkYfzuBj8xHiHqpQBhVDo6RJPlFK2?= =?us-ascii?Q?gjO/soa1jvc2LKY34bdeD2CbEHYXKuvcOSlwEASCU2/zdoKdbe5k/QT831ND?= =?us-ascii?Q?61ditamRZDAKT/BRw+AEPIHEte2SnY2wiXmrWzgE9ZaJQiZK0tGipKwtrx4R?= =?us-ascii?Q?to+l7lsC9AmeK0qAlCP/9aYW8Dhp9Mm+C06YcHv35dSGxvtwUxwdI/6NKG8M?= =?us-ascii?Q?x7sbJxXVGwegWcXmZaciQTTNlCS4rnmCskkjBmdiyBXWTj9ugvdluZQepENy?= =?us-ascii?Q?6nQsaLqigTRCQJMXoXUhhLiXfOQaTNGp8PCyydiVHnR9+yNgbq9kV/jJz++f?= =?us-ascii?Q?vkBV8zwxE0b7pbjymQiprBWiTQbSa2SB4X42FEQJtwPXqi+vq5RQ1fdhmmwJ?= =?us-ascii?Q?6t5uYMEWqN4NkOz/381Qj6aKC85bBMHvFDltZgtJpUS+fWEDu/b0U/goaxrs?= =?us-ascii?Q?q1ZwxPiM0IaYIJWLFgCN0ISMLD1ovcqgkAx0X2kqdn9NyCLDmXNr7j8sCsyc?= =?us-ascii?Q?lat5RleGTMfHyGTKGYuTvVmE54lZH9hVwI3/PWAmWqSRZq4xAngFNJtzVhQf?= =?us-ascii?Q?tg1OGOLYhz5rLOtJkrYPeyc3mzNkEDX0GHt2yIIlJjNX1/Djs89MxZ7/pPI2?= =?us-ascii?Q?gQ6vAHijNWi3A4RFM7+GnTzYMnh98TfhuueAz2MhDZZ8H93AGUeOnGf64Nmt?= =?us-ascii?Q?iJNkeprt4a3lNMYC6eMpElvt1sFlkEADYQo9m+i2?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4f1d80b-5c3e-4e40-33e8-08dc5a2365c3 X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3849.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2024 12:32:05.8642 (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: dGXdyIfZ0Kf9WT3ktjOc0mJn80C8WSgAu/Cb0LY3lo4S9MuFJcVdm9izxdqA29J7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4458 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7C72E2002E X-Stat-Signature: 8jpocy6dtbufp9843ynzx5sqfbb9ompa X-HE-Tag: 1712838730-149425 X-HE-Meta: U2FsdGVkX1+EotyYZQLK3pM4NnIkg3vUySbFHkXGV18YiAEoU7Y47d1tmX081LjYsi0uwyNkSBnIWn8Vg6pp8kIqs2L9eJPkK7C5FjxtH+TEWmb3/cyZq/QJqUXKs9KAzJdajs9/9M3NoOrgLArhTqES/s3xNdK3KAEWDRRYbuQ7wMCKKdgPCp+eG5t05tTYdqiBUotPBPFRcXT8ccqVQn1eWiv/ovtEoQmhaNAmnCaT4QeY0YWthGh3CymLOAKQOWwPeydOqnldz5cX+xVn9nFtsCeFJHiRC7vidlLGeseQyztnQz6vg+hnnA00VzYqadroOoNcV7D8djD99MdpxezAcej2Y3oJwgRXjEj2cMNMTh03QJ4lHHfVlQ9GdRvXeZdOAEh5EN/nmrm9WB5Ar+Ga2ht44PpFWvdBBC+R2b741QHB11Qf6/9oN67LRFo2t9cBJilhjiZE8D7GYE5wJFsBzH50Z7bqOlKjqDKZE9hu1h/vod/uI+g1pr/HO7uZMiLgp3ErZ1f/s8EOwpFWaLU1AGhcJ7ZOpXVYNpoTi/vhgHEfajnU8ANzM50FntlNsxFX/JoC1ZahkhFFWM+8uNOcZdj7/PUlt78CC6NvdoLYItr3noQC8eLAVDtUahnH0PrSVBaqKNFUD4oVb0y5P75W79cFItECUkDrx9d6TdNiESVA9NQeMQ8Unl1vZtdATVH+eQaMSX068qFRelazIONb5WbEWvhNcbQGNHsWCZ31mqaYgJeAE1FmHty/aLsLsHMxo86odl0oh0ayxOxzL4sG/9otX/eNb9v89L1qkMF4ObUi+KS+62482Ud9bWQYoR0b0zFef/vM/3fOFWMoA5RHg7w9RFpqk9DCANnn3WlZ1/Ee2GOuzjq/nWnEYQE3SltQY67OT//yyBhMXEcWSxbefjyLZpog0HMg5vbX11OnIOvv+BYzHF6/UGA0pVlodi7hLcdi+uWSZC5nqR2 1kKPIiF4 i69QnmZ1J8k2wdusC46ZLL7P/y47YE7k752wmBza1gMZg4Gsy74GRVYBUfNouN/dn3bvggFZ/PDtKcMQfDQz8RTlm3C9/nn8C74XI4rINJ9DTnGBxMbDwIP2oasTTAVXZhs278e49JYLmt24W7C/ACCEY0CSgkSBu44hR+XOXCq9+Nz1PsP9Oco6Flo/DKtyjq9j3G6ArwbnucPSEdeHru2jpn/A/UP+lvEUMYwANjAmK5GM= 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: List-Subscribe: List-Unsubscribe: On Thu, Apr 11, 2024 at 10:57:28AM +1000, Alistair Popple wrote: > Zone device pages are used to represent various type of device memory > managed by device drivers. Currently compound zone device pages are > not supported. This is because MEMORY_DEVICE_FS_DAX pages are the only > user of higher order zone device pages and have their own page > reference counting. > > A future change will unify FS DAX reference counting with normal page > reference counting rules and remove the special FS DAX reference > counting. Supporting that requires compound zone device pages. > > Supporting compound zone device pages requires compound_head() to > distinguish between head and tail pages whilst still preserving the > special struct page fields that are specific to zone device pages. > > A tail page is distinguished by having bit zero being set in > page->compound_head, with the remaining bits pointing to the head > page. For zone device pages page->compound_head is shared with > page->pgmap. > > The page->pgmap field is common to all pages within a memory section. > Therefore pgmap is the same for both head and tail pages and we can > use the same scheme to distinguish tail pages. To obtain the pgmap for > a tail page a new accessor is introduced to fetch it from > compound_head. > > Signed-off-by: Alistair Popple > --- > drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +- > drivers/pci/p2pdma.c | 2 +- > include/linux/memremap.h | 12 +++++++++--- > include/linux/migrate.h | 2 +- > lib/test_hmm.c | 2 +- > mm/hmm.c | 2 +- > mm/memory.c | 2 +- > mm/memremap.c | 6 +++--- > mm/migrate_device.c | 4 ++-- > 9 files changed, 20 insertions(+), 14 deletions(-) Makes sense to me Reviewed-by: Jason Gunthorpe Jason