mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
73954d379e
Add a sysfs knob for dax devices to control the memmap_on_memory setting if the dax device were to be hotplugged as system memory. The default memmap_on_memory setting for dax devices originating via pmem or hmem is set to 'false' - i.e. no memmap_on_memory semantics, to preserve legacy behavior. For dax devices via CXL, the default is on. The sysfs control allows the administrator to override the above defaults if needed. Link: https://lkml.kernel.org/r/20240124-vv-dax_abi-v7-5-20d16cb8d23d@intel.com Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> Tested-by: Li Zhijian <lizhijian@fujitsu.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Huang, Ying <ying.huang@intel.com> Reviewed-by: Alison Schofield <alison.schofield@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Oscar Salvador <osalvador@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
154 lines
5.6 KiB
Plaintext
154 lines
5.6 KiB
Plaintext
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 <start>-<end>.
|
|
|
|
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.
|
|
|
|
What: /sys/bus/dax/devices/daxX.Y/memmap_on_memory
|
|
Date: January, 2024
|
|
KernelVersion: v6.8
|
|
Contact: nvdimm@lists.linux.dev
|
|
Description:
|
|
(RW) Control the memmap_on_memory setting if the dax device
|
|
were to be hotplugged as system memory. This determines whether
|
|
the 'altmap' for the hotplugged memory will be placed on the
|
|
device being hotplugged (memmap_on_memory=1) or if it will be
|
|
placed on regular memory (memmap_on_memory=0). This attribute
|
|
must be set before the device is handed over to the 'kmem'
|
|
driver (i.e. hotplugged into system-ram). Additionally, this
|
|
depends on CONFIG_MHP_MEMMAP_ON_MEMORY, and a globally enabled
|
|
memmap_on_memory parameter for memory_hotplug. This is
|
|
typically set on the kernel command line -
|
|
memory_hotplug.memmap_on_memory set to 'true' or 'force'."
|