From patchwork Wed Jan 24 20:03:48 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: 191746 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1226556dyi; Wed, 24 Jan 2024 12:05:44 -0800 (PST) X-Google-Smtp-Source: AGHT+IEgtHSg51XOlR/xddITGnlkN1UbYa/ObDrZc8epFEeIAlgf7VNDfFiEU92YvFWPA9SY4Njj X-Received: by 2002:ac2:4188:0:b0:510:c58:e7d1 with SMTP id z8-20020ac24188000000b005100c58e7d1mr727343lfh.208.1706126744508; Wed, 24 Jan 2024 12:05:44 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706126744; cv=pass; d=google.com; s=arc-20160816; b=bjYoOrR7h98e+pMNNa+83p3R4/qcvItFNH2oSOJ2oPouo7IN/kyp1awZoFSZIiyCAo jE17LwgrC6awCO4o/6Ekyieczn/bboKH2HKG+J4UTYKgcH6pMit/CpHvfAFor9EJ1qkd sYc6Se2xBRiToFpyKufFhJQmo4zOPFEUkLERZoKDqBiraM8uSUFirNUqfLi0vOq6rXaA AtQ0XiKiitr7txM4mQwx9fxI4Q0A+WnfqwthQX1yNzJbtlzezLDCdfmJSij8jtlsNTPZ YLeyc82cRvLBUtHVHhksmXiNUm3sI357svs//+hCGMQOxc2q8n5lCEu24VONhEXZy1fJ DARA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=XUmZz8pgbOQyFoQipuzs/q5/a1ezSTUJLIhuIbBITmw=; fh=+BeaWZRadguR9y+9h7pbJ5UtmwqKwJoFWKh1eOMbEo0=; b=OF90QLrt7+fyTZMVuRghp8wROpEuacvt2bKzLrSumYabxTjdVE6tFk40LDZNQi0Jte 6tyCb4+2gdPVSOqhY6t9U3vi4Hk45GAcy4TNMgSDfBDBEdYYC66xn7hf8H1WqHPeC0YK 4j+EWoIWWuiS3i1uESNBSTBTq0ZFF/3mXL1q5lkLl5SfzvopqBPGktPmTYjDEtB6C1rc w0JnH1zRPaaLkrLy5s0NNHSUfc2SZGpyYi/Gikm3Qnv+JynomGUFhRdo1KpDy8LHsUZW 299QPz9ANuPLT/nSpJDYeEevd86tlPw/AlEMUZkReA54ZV6S95hCG7tLCLxEyiqsM3pS NTOQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MJkM7GP6; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-37627-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37627-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id l11-20020a1709060e0b00b00a30e8b392c4si195130eji.104.2024.01.24.12.05.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 12:05:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37627-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MJkM7GP6; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-37627-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37627-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id C7BA71F25278 for ; Wed, 24 Jan 2024 20:05:43 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8B9951350EA; Wed, 24 Jan 2024 20:04:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="MJkM7GP6" Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A544133428; Wed, 24 Jan 2024 20:04:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706126667; cv=none; b=Dmo/ZpGL7uRz9XZJV2GKiLBXDOyZ8bpyAZZcqqgXNntNl/W7VN87X/FG6UDvg5P8OinHB0auP5M/wWrFZXKSDpj70brdzyiFPBaAbrP9PJUafIdzDFtUWuv3ph9LaF7r6a3pvX4LKiQJeexsI7ltOH59Tm8UDSemWC4GDZEgoTI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706126667; c=relaxed/simple; bh=pbx8GN6oF7bpvrPHhUbumLfrIjuzdnl/0AJX9PTq6Qc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rYV+lrMEngZ/PJJRE8VFN9IQJP+x9IAlMunnMLsXBaUiQv5CM/mB3880SZk5wqok1lv+VtKcyl2Xz3pWZR5GBIrtzaaVDWnOQygp45XwnTM2F7D/75O6IoVLaIkbAjXPiYWqIclIr67VmKhi7vheoIz4uYFTDt1q8XExfUC4MqY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=MJkM7GP6; arc=none smtp.client-ip=198.175.65.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706126665; x=1737662665; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=pbx8GN6oF7bpvrPHhUbumLfrIjuzdnl/0AJX9PTq6Qc=; b=MJkM7GP6ofo0vuI5UOFie09sf5ecwHE6gd2RQRAMct/WzoSzvtBrYU8H uknLbOAXm2fAX+qMN1jRkGE9goVwm8jj4a18giOe0eEU+nbjPOhqmeFCG HiWWoz44wiFcugfd7XcqdMIosCLS0Af+u4vrcAiRMBTb9rJ6pr7YyzIa4 C9zO6BLlX2KYp/Rmn76pQATnD+UtSSPG9cGRf9SEyK9iTH3+wrqiEZIcC zF+nf3m5EhLmDOJD9Kcr7bs4mLht1WBhBtVywaRp1zLS4mBKOwTLS0waD k3KeL7Qy3pBHVOjo9KPQyXX+8UYeKcDo9Yne6pis+cSxUPguJe6IeIngH A==; X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="1836109" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="1836109" 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:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="1117735135" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="1117735135" 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:22 -0800 From: Vishal Verma Date: Wed, 24 Jan 2024 12:03:48 -0800 Subject: [PATCH v7 3/5] Documentatiion/ABI: Add ABI documentation for sys-bus-dax Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240124-vv-dax_abi-v7-3-20d16cb8d23d@intel.com> References: <20240124-vv-dax_abi-v7-0-20d16cb8d23d@intel.com> In-Reply-To: <20240124-vv-dax_abi-v7-0-20d16cb8d23d@intel.com> 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 X-Mailer: b4 0.13-dev-a684c X-Developer-Signature: v=1; a=openpgp-sha256; l=5934; i=vishal.l.verma@intel.com; h=from:subject:message-id; bh=pbx8GN6oF7bpvrPHhUbumLfrIjuzdnl/0AJX9PTq6Qc=; b=owGbwMvMwCXGf25diOft7jLG02pJDKkbc505nke437328TqL7m7B7XeMf4c4z14x5ZK/0LvjS 1xWGTi97ChlYRDjYpAVU2T5u+cj4zG57fk8gQmOMHNYmUCGMHBxCsBEvtQxMmzIv34xu9h1/lQW WXGViZ17Pltryjld/3Ve88XRDX2x874y/LM8U6QgKhpdXrq7oI+tdtmOgq1avXd62RekHvr6/FK NPw8A X-Developer-Key: i=vishal.l.verma@intel.com; a=openpgp; fpr=F8682BE134C67A12332A2ED07AFA61BEA3B84DFF X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789003556992084370 X-GMAIL-MSGID: 1789003556992084370 Add the missing sysfs ABI documentation for the device DAX subsystem. Various ABI attributes under this have been present since v5.1, and more have been added over time. In preparation for adding a new attribute, add this file with the historical details. Cc: Dan Williams Signed-off-by: Vishal Verma --- Documentation/ABI/testing/sysfs-bus-dax | 136 ++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-dax b/Documentation/ABI/testing/sysfs-bus-dax new file mode 100644 index 000000000000..6359f7bc9bf4 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-dax @@ -0,0 +1,136 @@ +What: /sys/bus/dax/devices/daxX.Y/align +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RW) Provides a way to specify an alignment for a dax device. + Values allowed are constrained by the physical address ranges + that back the dax device, and also by arch requirements. + +What: /sys/bus/dax/devices/daxX.Y/mapping +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (WO) Provides a way to allocate a mapping range under a dax + device. Specified in the format -. + +What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/start +What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/end +What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/page_offset +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RO) A dax device may have multiple constituent discontiguous + address ranges. These are represented by the different + 'mappingX' subdirectories. The 'start' attribute indicates the + start physical address for the given range. The 'end' attribute + indicates the end physical address for the given range. The + 'page_offset' attribute indicates the offset of the current + range in the dax device. + +What: /sys/bus/dax/devices/daxX.Y/resource +Date: June, 2019 +KernelVersion: v5.3 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The resource attribute indicates the starting physical + address of a dax device. In case of a device with multiple + constituent ranges, it indicates the starting address of the + first range. + +What: /sys/bus/dax/devices/daxX.Y/size +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RW) The size attribute indicates the total size of a dax + device. For creating subdivided dax devices, or for resizing + an existing device, the new size can be written to this as + part of the reconfiguration process. + +What: /sys/bus/dax/devices/daxX.Y/numa_node +Date: November, 2019 +KernelVersion: v5.5 +Contact: nvdimm@lists.linux.dev +Description: + (RO) If NUMA is enabled and the platform has affinitized the + backing device for this dax device, emit the CPU node + affinity for this device. + +What: /sys/bus/dax/devices/daxX.Y/target_node +Date: February, 2019 +KernelVersion: v5.1 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The target-node attribute is the Linux numa-node that a + device-dax instance may create when it is online. Prior to + being online the device's 'numa_node' property reflects the + closest online cpu node which is the typical expectation of a + device 'numa_node'. Once it is online it becomes its own + distinct numa node. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/available_size +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The available_size attribute tracks available dax region + capacity. This only applies to volatile hmem devices, not pmem + devices, since pmem devices are defined by nvdimm namespace + boundaries. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/size +Date: July, 2017 +KernelVersion: v5.1 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The size attribute indicates the size of a given dax region + in bytes. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/align +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The align attribute indicates alignment of the dax region. + Changes on align may not always be valid, when say certain + mappings were created with 2M and then we switch to 1G. This + validates all ranges against the new value being attempted, post + resizing. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/seed +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The seed device is a concept for dynamic dax regions to be + able to split the region amongst multiple sub-instances. The + seed device, similar to libnvdimm seed devices, is a device + that starts with zero capacity allocated and unbound to a + driver. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/create +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (RW) The create interface to the dax region provides a way to + create a new unconfigured dax device under the given region, which + can then be configured (with a size etc.) and then probed. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/delete +Date: October, 2020 +KernelVersion: v5.10 +Contact: nvdimm@lists.linux.dev +Description: + (WO) The delete interface for a dax region provides for deletion + of any 0-sized and idle dax devices. + +What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/id +Date: July, 2017 +KernelVersion: v5.1 +Contact: nvdimm@lists.linux.dev +Description: + (RO) The id attribute indicates the region id of a dax region.