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 5F9A1CD1284 for ; Thu, 11 Apr 2024 12:29:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CBB756B0089; Thu, 11 Apr 2024 08:29:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C68966B008A; Thu, 11 Apr 2024 08:29:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B09826B008C; Thu, 11 Apr 2024 08:29:41 -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 934036B0089 for ; Thu, 11 Apr 2024 08:29:41 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5E964C0A1E for ; Thu, 11 Apr 2024 12:29:41 +0000 (UTC) X-FDA: 81997182162.10.4DF0E2A Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2068.outbound.protection.outlook.com [40.107.94.68]) by imf15.hostedemail.com (Postfix) with ESMTP id 942AAA001D for ; Thu, 11 Apr 2024 12:29:38 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=lhQarAhU; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf15.hostedemail.com: domain of jgg@nvidia.com designates 40.107.94.68 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=1712838578; 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=72fVWKxpL5DknHhtJL6NQajf5ZgJO71nN6LfO8fJy9M=; b=qnt+4rHHiQo+BPFv9jzSxtlS1I6IK+aiytcF02F/hXlTo3tsznpJgucIp5QHYz2b1M1BMn /WLpiMMRvkbQrs/3NOyLmAyQYqxNersZqGWkjxHZB0MoVP0ja5PIhOfP73pVl1O5ChLHGp HftOhxPlQfANBVuPDS1m8GQHHDqNHlI= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=lhQarAhU; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf15.hostedemail.com: domain of jgg@nvidia.com designates 40.107.94.68 as permitted sender) smtp.mailfrom=jgg@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1712838578; a=rsa-sha256; cv=pass; b=AFTT5V2zmS+uzV4E/dok4MSE8JO+Sc+SnIHHDvR28MJRsnai2y/wFPoNUauzdJquXKrzuL v4oTyhLALPRblgxHFTxae2hlCssD5K9rKAdUTzYZDFdINkm/y85o4WUQJv+96xMR1yCmEo QFyVRBP+jeCPSuBEypSJ94V6APejgyU= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JtlaR22BfyLVKEP8jwnnFy2l+reqjgOmcL3OGEq8R1+PX+nCF+uqpVv3zq6P6coUpaWWwMtyz0FgFCblRcf+1DRcHw5t5sCfZweUmJdaCTEXsXd6u52dBZ4jW8fmeWwbrP2Dz4B+CMkeCOdgqCCUwhofmtoFE5C+GTk5V2+6AQzuL5aX0S/7HIs1cAz8pyA5McHRfTuYSGeWONwa/RCjbcqDXRdQYfTnG+FXjXpFOKT3ABnQ58RaTp9+oZ40cg+daX8gsBefm+Nj/u0UGKCUu95DAXmF0I/LRyl0DhWSqDK9l2RU4dplrfrZcctD0S4tLt7IF+Q95Pz5hY62ed4/3g== 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=72fVWKxpL5DknHhtJL6NQajf5ZgJO71nN6LfO8fJy9M=; b=fhxWABkZEEDY9soeeAKlU1ETKHzGvThIAfPKFr1VwLt9hQ2Z2dEcxU5TF8Y4sLE9J8pnesQTqS/WeTeuOZL6ytJQ7FDBD7ULR4dg4a5wj7MQ/CwhS7h0/N7DKYym2zkSeyv7hHxGRN2JNh1H0ISDGrBKmuOvl8CK80ENmwMzA67/1SL7zqYk6gCzcIglwcFhqk1kIrrUgM60Y3iD+fvoXGc57JP4q7ZissNLEZ6qEUZ8OOlW5DW74sOjF4Jg3s4m1JAwMjhwXIXLSHPgaMyTCgRSFjCuIQ38FiXMDchnHF2HMvx7sSHacdjuvfwVYxgrY41yWrcpOwOHubjSXfYh/w== 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=72fVWKxpL5DknHhtJL6NQajf5ZgJO71nN6LfO8fJy9M=; b=lhQarAhU9tvCU+wJ2B9E2uhDjv15kMFIKPC3TvVxzigQtueskaNic5k8IPG0niZfBaHttR61F3GkhfGy2uh0b7uv+0UCmp27tocs++D/yrh3sLBm+kNRT1Q8pUKjxGXVfNnu+2vNZfTneD7GkEdS87JGSp4Dpvh+6orGtOz8gsCaBtdHBpIj3vjITVvYvStFrd+PCLpA6ixrYyD2x8jraSOrWxWfzyYGHcHjEvrrTB35RoSQMQ1dawVi9DrhTZ40UbjKANaZPe4yMY7jHmIlMGbu24/K0eWXDJ4wex7lA0q5PZwDb3aJrkgKfVVvdI9SnPF1w4jYdtAn7CDeR2+v7A== Received: from DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) by PH0PR12MB8773.namprd12.prod.outlook.com (2603:10b6:510:28d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Thu, 11 Apr 2024 12:29:28 +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:29:28 +0000 Date: Thu, 11 Apr 2024 09:29:27 -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 03/10] pci/p2pdma: Don't initialise page refcount to one Message-ID: <20240411122927.GR5383@nvidia.com> References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BLAPR03CA0166.namprd03.prod.outlook.com (2603:10b6:208:32f::18) To DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR12MB3849:EE_|PH0PR12MB8773:EE_ X-MS-Office365-Filtering-Correlation-Id: 44b01c31-d922-44fa-6aee-08dc5a2307d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3+MU1hkBVm8G0ROMao0EKCfWg8dYnQm644g84xXcs1hmTuPEPr7HTqONDJ/Vi+NouJ6jlvKkp6tdomLRBK0zeoOVIUCXTpfmm4aTKr2J0jKZgQu5Z9ZE8TxEsvsKL615z5dIDOITfKeU4R0Ae/QBz+OCbsN+ZZZISJ07zX2tXHflDaRsW5DLsVrQlDL7CBzRuZyxeEglKrCh377FE+42NbwAmOdLLSX1NqFHdGM9SmgGMPP5o3sgAyKTNR7TdbD8niauCQJNF141MxX9v2rxdNVHbc26GGBwTOgoQfc2MJbkzktVeNa1hIWhTX6h6c+Ze5yrBrYhFdTNHCFdBQ2wJI8ecbweFrDTrvagfP1lnTNF7JJHQ7Rre7yJhThMziDtuz24GW7IX5ZERNYpf+vHCdyJ0SnT4MZBfGWsugaAdDdWfkHhKe8z/U09qM9fol172ghAfNLh8p2QFY1yeH0qbC+egFKHcoY3PhgWOwjXY7umU3tCZnOA/uzzbmqHSEnxiEhjdUkzLUxbTsHCf/CzHudyus0fDoT8KactPsbbddQ0JheYaBcT26rSTRuNh7CWUA2SvnjAkcoIjqYl/OlzIy8YlaLHNFD51+qDzp84ByhRikoQKyfmIgNVwlv+R6yy3hNKgQ5nBfRhby8Md5/xoiNfbHN0CDBM5KYFUxgPuIg= 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)(376005)(1800799015)(366007)(7416005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ngsN4LmrmMB7JCMGJWV7UoYXqhTZm8ZbP78IeTs30Vrq+o70QvdW8IHISWuA?= =?us-ascii?Q?q75++o187vy5fGu3fgRLe0eiLbJGWQMsWsLBUO+noo2mBUXnKJSo4U7Ksupc?= =?us-ascii?Q?6nro58Vk+B5w+LSKiEhWWYvnfI/b5fjrUpu8AesncAaouvBGIPpSroh57Rpy?= =?us-ascii?Q?PCA9NLKwA5m6TZ4Rtv1LCaX84BBDcAhdMMU1iip+YTZU3FCFWMu0zqlQOhEG?= =?us-ascii?Q?kpVfyMTnMpQFRVyw5oUmGKL1jx+w/86ll9AJoc9bKOOjYZvZmusC1436y59C?= =?us-ascii?Q?orDyd8tIAcuKnnotgrA6jAAN/PQlWW7SqDHczdrE3zpDmghYKLHJ6f6HJ0NI?= =?us-ascii?Q?06KjS3pWe66Bxo3eJNXHZ07AHg34Ld5d9y3aF5P9ZWL1lVDsFgteiqztg0+8?= =?us-ascii?Q?oqaod1si7VqEguQQMHFe8/6ls9hKXqVY0iJ9zy/w81OXZH4QSM8ZeayNGutu?= =?us-ascii?Q?W35vK3YaWBqv99p8J/o7BQ+DB806/7HVjjBEAFxEH5SrpYhWZKFOR14xQ8hU?= =?us-ascii?Q?f966vMRHf2kNFH8AY5iXyamW5hj55wHCyN3hjj2DuSOOBNjNQx3xrgLWnzG5?= =?us-ascii?Q?kcoyYloK/7dT0pNibSCLJisIvfZ0YqbZfDMV3mhoen1MAjv54QctzufIcwCV?= =?us-ascii?Q?RHMU+CuuAPRMv+hWhmyHiEtX9lY+6BGrX2MN6oYb8RMTMseNj3MEHUHXg0zS?= =?us-ascii?Q?fsJflme7l+S+M9ZhZ1J1o/TmqLlR9qpeT7HXsL/77eDOM9UXYp1ZqjK0JQGv?= =?us-ascii?Q?yojrCcvTPXemoo9AH2g0NI31pLDR6peurvroJ9v2LvQq/aDVLZlTsc64dNoO?= =?us-ascii?Q?+7Kpc/yIGjqjPHjTe5Sl6VxXCdNCuhUqEIlApXeMlkSn1te6m5a5hDxNkcY/?= =?us-ascii?Q?Irs5T8eX0dulto8KeRDzjnp2fMR/EceuQdi1DfUmhqfpCeYMnDV2py4gT7wb?= =?us-ascii?Q?rYQ/ymhdzABsBKcsBZX59daHA1Me2/mbQO1j0t3Qi9klGTdVHnohvsJUZqSd?= =?us-ascii?Q?4VNQxu0GN8rYm06SzZ/Ktmr3j63iUAaMV7w36jMfqTTldGYd0LrgpnO0KR6R?= =?us-ascii?Q?Hwijr93Kfmf/ETewKTorPdb/yuVBki/M7gsVz4wfUSIScQwzXBkVFfDFZDaC?= =?us-ascii?Q?i0+GGNFg6eAILPy8ChIJQYViDZTXQoNb6QqVZyl1eBSeVfpSlyqApTPHTH0r?= =?us-ascii?Q?WkwqBQ5QvWIwoeG/CP+MUg/m6ZwfqosNveC+nXAsl731Jmsr08L+7pluOj5q?= =?us-ascii?Q?n6GVRoDv1uqhpO2GgPGIaZVOPsLoix0f6Z3qFLP51gM5u/DVvFBJa2HmTaQ4?= =?us-ascii?Q?K6w3RXEKL/FEXXBXCtn9EXoJ59fkL0CilXw/3rMeDVWMulstrrb7EiTP28HY?= =?us-ascii?Q?hggghhKI8hitis7ITZMxENaErvUQaqMhyPWthpC1KONjgF9KVGFFk2L1QoX5?= =?us-ascii?Q?xy52smduGleznFcmB6GveZu574QYOrv55BCujhuTcKAXKW0cWFDl2Bk0Dhde?= =?us-ascii?Q?LsqMprTa44HXQCznFUbVi46K3gd1qgpHD4LACcpuh/Q0Af27D3C2N7VL+aX2?= =?us-ascii?Q?OUvX//0q8FCGs0Z+INOzDNCsstMIrzfelV6h0Tfn?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44b01c31-d922-44fa-6aee-08dc5a2307d7 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:29:28.2740 (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: zltAxAxARGcmFQQEFIc0HPTF1bMjhuHnsgnkaJCbF0y2Sysl9oKqM2KSJqpqYPCR X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8773 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 942AAA001D X-Stat-Signature: 9ohy1s7ccoiqf1usxnyt9z765dosagur X-Rspam-User: X-HE-Tag: 1712838578-931401 X-HE-Meta: U2FsdGVkX1/RjEMvooXy69DNnFdj+wKhqmI6KrM/KBLxkMHzVchZMY2h/in4tcCxEtHWFkuCylIhAPcuQ+1SJlOJmHujknTolyMBBPh4FOXIRSpR4aJKVmA0YCfTiN4g9QuyIJHdPbTjUMYViUlnWyU9pkMZJEIDQF2qiXO1lXrzIqO8wIYrPSw0PJKPe9gCFlQw7Zob1BlULsszLU9WwUI5vq40zftTLRH/b0u9Fupoc/2/27AwbZ0vre6z3oZkpsqdsMNUl0fdazBjcutMjUVJw092BuzCbheHjy/h3mRQcIerCsKT016m/6PI+SmltQ+uik0Mqusawfrx10ETJyayd7svVZs6awi9dKXG/WIEQAaOxKHyM2N6CH6WK18K8e9s1/J4JZSRo8hTx+te3Sf43vA10TW4ug1mF8OvaZhhwXMX4Np6nwTIV74OAqqn1VSlVhwU871lchp9XFugPiehq/qFSE4yX8jHc+FSMsAd8YIVFJAIpDBOl/cDWe4CJ7NSD9/2fOXJRQjHn+sboXJDpFCZgoshRfQEZXWThzHgOQtJQ/ddldUZN2f8cDBFl8VqhdZVjRPfoSoPl11S8WQATZs+smDHYYGq3CAWHvohG/NXdtF5dpmhpSgEFIjsXkkLQdK4kCgXq36Sc2rnzW9rMTrgVxbits//B8VHiK157C60rPTCyHKsjpqzT74scpz0JQ7qc0iK0u+iqPTsQN+wkfPDPZzZIFC+cP062yji+lNTR/U8OX0zmitj6D50oYCKeN/qb77rvX6vwNaaOwE2Q6tpTtbXhBiB9BA2sE30Ii3zDE1qHySn6GOYfsfCukQ9mqoSlDPThoTGVgG3RhrWdW21cWhGN/b9OA1BEZxrmpRlEYduTXtieCOhBTBhFZT5pjtOcaKcJZ7BwhKxL3enn9mrb999mEUwcH447W+R7DGIhCTvmm3TpRAkJP/IIUs1e9TBxluMTYAK4Ui GHQQyDlM iQEFD4hkR9smZbdUSVTRTdeJyf2sk99WOj5bU8BvWMEevqbzMoEeELi/0oVnxT+DEWTnFsTrrMar9nY5XxVuT+ctVgDALl1kmNpIMHxLJqb4rjS6CS97jx/rbNGhGuCeEvWjteLHFEn6JZOqn0+tfLJyDSsF2zQr+1AUFzPzvWmL7IGNrTW0Ji+ugtfxw/0qPIAlLUKOJlImiZ/2vhydxxZKsgFpGU0UPus0TAJvguHG9a6M= 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:24AM +1000, Alistair Popple wrote: > The reference counts for ZONE_DEVICE private pages should be > initialised by the driver when the page is actually allocated by the > driver allocator, not when they are first created. This is currently > the case for MEMORY_DEVICE_PRIVATE and MEMORY_DEVICE_COHERENT pages > but not MEMORY_DEVICE_PCI_P2PDMA pages so fix that up. > > Signed-off-by: Alistair Popple > --- > drivers/pci/p2pdma.c | 2 ++ > mm/memremap.c | 8 ++++---- > mm/mm_init.c | 4 +++- > 3 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c > index fa7370f..ab7ef18 100644 > --- a/drivers/pci/p2pdma.c > +++ b/drivers/pci/p2pdma.c > @@ -128,6 +128,8 @@ static int p2pmem_alloc_mmap(struct file *filp, struct kobject *kobj, > goto out; > } > > + get_page(virt_to_page(kaddr)); > + Should this be set_page_count(page, 1) If the refcount is already known to be 0 ? > @@ -508,15 +508,15 @@ void free_zone_device_page(struct page *page) > page->mapping = NULL; > page->pgmap->ops->page_free(page); > > - if (page->pgmap->type != MEMORY_DEVICE_PRIVATE && > - page->pgmap->type != MEMORY_DEVICE_COHERENT) > + if (page->pgmap->type == MEMORY_DEVICE_PRIVATE || > + page->pgmap->type == MEMORY_DEVICE_COHERENT) > + put_dev_pagemap(page->pgmap); Not related, but we should really be getting rid of this devmap refcount traffic too, IMHO.. If an implementation wants this then it should hook the page free/alloc callbacks and do this, not put it in the core code. Jason