From patchwork Wed Jan 24 20:03:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Verma, Vishal L" X-Patchwork-Id: 13529614 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 4AC8DC46CD2 for ; Wed, 24 Jan 2024 20:04:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B86376B007E; Wed, 24 Jan 2024 15:04:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B36776B0080; Wed, 24 Jan 2024 15:04:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9B0D76B0081; Wed, 24 Jan 2024 15:04:26 -0500 (EST) 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 891196B007E for ; Wed, 24 Jan 2024 15:04:26 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 262481603C0 for ; Wed, 24 Jan 2024 20:04:26 +0000 (UTC) X-FDA: 81715281732.06.44DC5C0 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) by imf27.hostedemail.com (Postfix) with ESMTP id B15AD40012 for ; Wed, 24 Jan 2024 20:04:22 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=HxEaRh1J; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf27.hostedemail.com: domain of vishal.l.verma@intel.com designates 198.175.65.15 as permitted sender) smtp.mailfrom=vishal.l.verma@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706126663; 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: references:dkim-signature; bh=DlJYMjuJoSWybFJ+9jVC+6/2En39t06hUYhpwUSpbSw=; b=buBsr4jH4HLL/0RbZSmv1o9WsVLbtrVi+/d0i9a+muuSbqdZLBnCZ2GH3wbOi6Sitk42d5 U6abet24KRC7zgEjsFMd62DVzycuu63Cl00cFwefpPvGGmBlRLrMdoKAdVJz6Xy6npdUT4 Aa/dukk1kUVXLCVruLhArPSJ8MexKrk= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=HxEaRh1J; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf27.hostedemail.com: domain of vishal.l.verma@intel.com designates 198.175.65.15 as permitted sender) smtp.mailfrom=vishal.l.verma@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706126663; a=rsa-sha256; cv=none; b=nni3qkniDhqRAfVk6LGAJnQ35//FuqXXvLPmGQhjegw0UkvspqROlfTd9fQIQ3F62fiEbi /HCW3jybVv6uoRTVeci5w60kCGFpOqW7VnSJnO8d4BN1u4QZAFFHPldz8nmIzjgfjAuaBO Cad8AA9ld32OL354+9f9Qnrx9/B9LMg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706126663; x=1737662663; h=from:subject:date:message-id:mime-version: content-transfer-encoding:to:cc; bh=KBoevL7pFQqn9JaE6qf9oRs9atS556fSspZ1qrOgK+8=; b=HxEaRh1JsSwOYuaqbLleYCadPvWfBH5G/JV3QpyN4OMjUii3BvBqsfjS opemdXKlWA/mzy4Xh9ODECCTvnB04HZgE/+z4OcWX9fTuB5Rx/tEzbRTe KzcnFD6PXq0dj22Xr2otYByAyDBaU94kUs+0fevl0S8zLTpW0RTnAndP7 QGdpH9zfEZTELWqGAEriFrXKnYEMdyUmiQTwI3E1Jmy82xODLUw0cHqBl ksIcLFZFj9iTm3quijS6mWN3EsTe3Mp1g4j3o5tmmbLJurzIh+UP/Ln5I A8+h5fFFbkorCFhqgnBCUKCz9/HC49P9nQywlLzicgxqzjZDGHQJy8vAk w==; X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="1836085" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="1836085" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jan 2024 12:04:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="1117735099" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="1117735099" Received: from vverma7-mobl3.amr.corp.intel.com (HELO [10.0.0.223]) ([10.251.14.61]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jan 2024 12:04:19 -0800 From: Vishal Verma Subject: [PATCH v7 0/5] Add DAX ABI for memmap_on_memory Date: Wed, 24 Jan 2024 12:03:45 -0800 Message-Id: <20240124-vv-dax_abi-v7-0-20d16cb8d23d@intel.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIACJtsWUC/3XPzUrEMBSG4VsZsjZyzsm/K+9DRPLrBLSVdggjQ +/ddNy0hSGrL/C8JDc256nmmb2cbmzKrc51HPowTycWz374zLymvhkBCQRSvDWe/PXDh8rReEI XpQajWQc/Uy71eo+9vfd9rvNlnH7v7Ybr7X+GQG8zDTlwaWQO1mYCjK91uOSv5zh+szXT6DGlT ovsh4TQCeyRig1F3FHRqY9Fx4ghZVeOVG4p7ajsFIVCo2yB6OhI1ZbKHVWdimICgHYagjxS/Zj q9cHJASTtrBS7vy7L8gcFHVbTywEAAA== To: Dan Williams , Vishal Verma , Dave Jiang , Andrew Morton , Oscar Salvador Cc: linux-kernel@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, David Hildenbrand , Dave Hansen , Huang Ying , Greg Kroah-Hartman , Matthew Wilcox , linux-mm@kvack.org, Michal Hocko , Li Zhijian , Jonathan Cameron X-Mailer: b4 0.13-dev-a684c X-Developer-Signature: v=1; a=openpgp-sha256; l=4046; i=vishal.l.verma@intel.com; h=from:subject:message-id; bh=KBoevL7pFQqn9JaE6qf9oRs9atS556fSspZ1qrOgK+8=; b=owGbwMvMwCXGf25diOft7jLG02pJDKkbc21ebFWes/V/Bl/qjS/z3yko7fbKuMXazp1muWJR4 nHPSc84O0pZGMS4GGTFFFn+7vnIeExuez5PYIIjzBxWJpAhDFycAjARYW6G/0Xhkqwzgj1FclT0 j+Zvm/lhm1VFx6YJHl7P65eypS+X1GP4Z7s1USX54Ppf7juasqw/M1+RieQ4v5Oj3JrvzJutKb8 nMwIA X-Developer-Key: i=vishal.l.verma@intel.com; a=openpgp; fpr=F8682BE134C67A12332A2ED07AFA61BEA3B84DFF X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B15AD40012 X-Stat-Signature: xck6rz88juhbx1ksysco65b1s14qoxpk X-HE-Tag: 1706126662-991806 X-HE-Meta: U2FsdGVkX19vUO+5mnT7WxtHGdjeBSMbFzzOGtIZNhelmnd1T9LXjneJKBdwHWdUpGBbOg1lUqQjmNY4Cs1t6dj3NP+ZvzxK6GsonYJFIWr21gwTr6Py76AerRVu9h50iXlNclfikb+UWktklemc9Jn5UINcIJdpa0Z8UGFNrw+IM6HoKcjYwPrsH/bOUx7TUBA67h8W44gwy08lgsEDbN6NGsBf/fzzTPM3akmPGA6Im6wsjlWz5k/tNEA2Cgf+Q1hjs+Aj+FW+im0tCq0b0Z7OTULANpku9prgFG0UatbxFSNcD75c2Zj6N7oYQdeWQ8aJCBdffOsjvDu/+LXo9ef/SEvgwM2bdlYOF+lTsyExTgaGG7bLB5J6UOUMqT37jhXQ2N8NJGOlb+K9h2A2HMAiWbbQePPiSuo7pb1zqqg19fmprmTuZejuik8JBx6Es3dA1kyHF4C3hfAtYQyyDempGlh5/xrk20OwYrMMW6wmEa2ZAk++8mc00bhNsUZ5ze3xeSmBVp3U4pbyJUWb6F5sZi8kwlgK8DUDeu0x/GlVVRVHwgz8xkHinqGfZQhYHHRt5L3ACitP5YgDVCbEvliu7Bc4OzH673wE9LKHfvBmg9tnMPnmD6L/Dj23tP7ydmNCaB29aA/LPE0RrPWsOarxvblhj0YY2dt3ZP9SKaGqKz7yuzwIg/rEfyp572Zwg/JrkGzZI8e5+4CZTO1VlAgINIdw7Xw2Pmk0WLZuWydLqBW6U0ijWuhBKoW8nUMj+wJzFTF5JhfGQV9TkN8QsGxwACOStZ2WSwNAT+L9fxOdL4MV4kuxIQM9WyubxnYGd62vhTBR9hw7WdwGSIY/xI8DsW5LEXqikQrEAT4SYZqoWDxy1J4yCUG8cpw9nTYWemh2r7ANJ/yJrcgQqrW72r77Hqj+t2mjnk1jdhjlYM3q88pCiMGHy1A/ZdkYXM5hlC3NV072DUfjdtNHvRC yhTFJNED 8JBFakFQwqn/1R0AK+JIttTCTqWBtiOCAQGGHJ2yuqhKXje1jQMyM5OCV2/ETKZfxw6CAHlMU9kIchfZuBtx9JEtbixckb4H2Jsf9JTgqdIYR6KdiIkiAdgbSVZmP0F2fJ4qcMGnkjNtRByrw7uaxNoA349GaZpRPdKVA0nIIjS/9nPMIeJ252UBBltMrBJVmqxox7Lgc1BQek5xIeogfyCdjHZ+e8jmHqq8UZLF+BORwPIq3ZvhnpZb4EYDEgTJ3NkeE8ZjziQqRuI01oMNoNfaeK74YDlmXI5FL9VF5GdgLscUuvGhA4jIRTv3hq4/gasNXOVFnhOt+vZSlfj/Kjq6tm2JeAFnp4WIBOq01hiHWkedYxmw3GxenAAY504P3UEkCHAar6J/Dv6hrCRzRfAoXVv9LXu1RD5RFj7YthHdlX9oDY54HJCtj71yzjUlULFvgDjh45HNywaNfQCyNTxjLuUqxd6jdATEwb/eOidp0C4C3AIUBGsyRWoDZ2ER4Jk9KsmXnMk6mXY/EKLzz4tTmVhkfl5cG0eVP 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: This series adds sysfs ABI to control memmap_on_memory behavior for DAX devices. Patch 1 replaces incorrect device_lock() usage with a local rwsem - this was identified during review. Patch 2 is also a preparatory patch that replaces sprintf() for sysfs operations with sysfs_emit() Patch 3 adds the missing documentation for the sysfs ABI for DAX regions and Dax devices. Patch 4 exports mhp_supports_memmap_on_memory(). Patch 5 adds the new ABI for toggling memmap_on_memory semantics for dax devices. --- Changes in v7: - Rebase to v6.8-rc1 - Remove an unnecessary 'size' variable. (Matthew) - Replace device lock (ab)use in dax/bus.c with local rwsems (Greg) - Replace sprintf() usage with sysfs_emit() (Greg) - Link to v6: https://lore.kernel.org/r/20231214-vv-dax_abi-v6-0-ad900d698438@intel.com Changes in v6: - Use sysfs_emit() in memmap_on_memory_show() (Greg) - Change the ABI documentation date for memmap_on_memory to January 2024 as that's likely when the 6.8 merge window will fall (Greg) - Fix dev->driver check (Ying) - Link to v5: https://lore.kernel.org/r/20231214-vv-dax_abi-v5-0-3f7b006960b4@intel.com Changes in v5: - Export and check mhp_supports_memmap_on_memory() in the DAX sysfs ABI (David) - Obtain dax_drv under the device lock (Ying) - Check dax_drv for NULL before dereferencing it (Ying) - Clean up some repetition in sysfs-bus-dax documentation entries (Jonathan) - A few additional cleanups enabled by guard(device) (Jonathan) - Drop the DEFINE_GUARD() part of patch 2, add dependency on Dan's patch above so it can be backported / applied separately (Jonathan, Dan) - Link to v4: https://lore.kernel.org/r/20231212-vv-dax_abi-v4-0-1351758f0c92@intel.com Changes in v4: - Hold the device lock when checking if the dax_dev is bound to kmem (Ying, Dan) - Remove dax region checks (and locks) as they were unnecessary. - Introduce guard(device) for device lock/unlock (Dan) - Convert the rest of drivers/dax/bus.c to guard(device) - Link to v3: https://lore.kernel.org/r/20231211-vv-dax_abi-v3-0-acf6cc1bde9f@intel.com Changes in v3: - Fix typo in ABI docs (Zhijian Li) - Add kernel config and module parameter dependencies to the ABI docs entry (David Hildenbrand) - Ensure kmem isn't active when setting the sysfs attribute (Ying Huang) - Simplify returning from memmap_on_memory_store() - Link to v2: https://lore.kernel.org/r/20231206-vv-dax_abi-v2-0-f4f4f2336d08@intel.com Changes in v2: - Fix CC lists, patch 1/2 didn't get sent correctly in v1 - Link to v1: https://lore.kernel.org/r/20231206-vv-dax_abi-v1-0-474eb88e201c@intel.com Cc: Cc: Cc: Cc: David Hildenbrand Cc: Dave Hansen Cc: Huang Ying Cc: Greg Kroah-Hartman Cc: Matthew Wilcox Cc: To: Dan Williams To: Vishal Verma To: Dave Jiang To: Andrew Morton To: Oscar Salvador --- Vishal Verma (5): dax/bus.c: replace driver-core lock usage by a local rwsem dax/bus.c: replace several sprintf() with sysfs_emit() Documentatiion/ABI: Add ABI documentation for sys-bus-dax mm/memory_hotplug: export mhp_supports_memmap_on_memory() dax: add a sysfs knob to control memmap_on_memory behavior include/linux/memory_hotplug.h | 6 + drivers/dax/bus.c | 295 +++++++++++++++++++++++--------- mm/memory_hotplug.c | 17 +- Documentation/ABI/testing/sysfs-bus-dax | 153 +++++++++++++++++ 4 files changed, 381 insertions(+), 90 deletions(-) --- base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d change-id: 20231025-vv-dax_abi-17a219c46076 Best regards,