151e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/align 251e7849cSVishal VermaDate: October, 2020 351e7849cSVishal VermaKernelVersion: v5.10 451e7849cSVishal VermaContact: nvdimm@lists.linux.dev 551e7849cSVishal VermaDescription: 651e7849cSVishal Verma (RW) Provides a way to specify an alignment for a dax device. 751e7849cSVishal Verma Values allowed are constrained by the physical address ranges 851e7849cSVishal Verma that back the dax device, and also by arch requirements. 951e7849cSVishal Verma 1051e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/mapping 1151e7849cSVishal VermaDate: October, 2020 1251e7849cSVishal VermaKernelVersion: v5.10 1351e7849cSVishal VermaContact: nvdimm@lists.linux.dev 1451e7849cSVishal VermaDescription: 1551e7849cSVishal Verma (WO) Provides a way to allocate a mapping range under a dax 1651e7849cSVishal Verma device. Specified in the format <start>-<end>. 1751e7849cSVishal Verma 1851e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/start 1951e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/end 2051e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/page_offset 2151e7849cSVishal VermaDate: October, 2020 2251e7849cSVishal VermaKernelVersion: v5.10 2351e7849cSVishal VermaContact: nvdimm@lists.linux.dev 2451e7849cSVishal VermaDescription: 2551e7849cSVishal Verma (RO) A dax device may have multiple constituent discontiguous 2651e7849cSVishal Verma address ranges. These are represented by the different 2751e7849cSVishal Verma 'mappingX' subdirectories. The 'start' attribute indicates the 2851e7849cSVishal Verma start physical address for the given range. The 'end' attribute 2951e7849cSVishal Verma indicates the end physical address for the given range. The 3051e7849cSVishal Verma 'page_offset' attribute indicates the offset of the current 3151e7849cSVishal Verma range in the dax device. 3251e7849cSVishal Verma 3351e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/resource 3451e7849cSVishal VermaDate: June, 2019 3551e7849cSVishal VermaKernelVersion: v5.3 3651e7849cSVishal VermaContact: nvdimm@lists.linux.dev 3751e7849cSVishal VermaDescription: 3851e7849cSVishal Verma (RO) The resource attribute indicates the starting physical 3951e7849cSVishal Verma address of a dax device. In case of a device with multiple 4051e7849cSVishal Verma constituent ranges, it indicates the starting address of the 4151e7849cSVishal Verma first range. 4251e7849cSVishal Verma 4351e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/size 4451e7849cSVishal VermaDate: October, 2020 4551e7849cSVishal VermaKernelVersion: v5.10 4651e7849cSVishal VermaContact: nvdimm@lists.linux.dev 4751e7849cSVishal VermaDescription: 4851e7849cSVishal Verma (RW) The size attribute indicates the total size of a dax 4951e7849cSVishal Verma device. For creating subdivided dax devices, or for resizing 5051e7849cSVishal Verma an existing device, the new size can be written to this as 5151e7849cSVishal Verma part of the reconfiguration process. 5251e7849cSVishal Verma 5351e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/numa_node 5451e7849cSVishal VermaDate: November, 2019 5551e7849cSVishal VermaKernelVersion: v5.5 5651e7849cSVishal VermaContact: nvdimm@lists.linux.dev 5751e7849cSVishal VermaDescription: 5851e7849cSVishal Verma (RO) If NUMA is enabled and the platform has affinitized the 5951e7849cSVishal Verma backing device for this dax device, emit the CPU node 6051e7849cSVishal Verma affinity for this device. 6151e7849cSVishal Verma 6251e7849cSVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/target_node 6351e7849cSVishal VermaDate: February, 2019 6451e7849cSVishal VermaKernelVersion: v5.1 6551e7849cSVishal VermaContact: nvdimm@lists.linux.dev 6651e7849cSVishal VermaDescription: 6751e7849cSVishal Verma (RO) The target-node attribute is the Linux numa-node that a 6851e7849cSVishal Verma device-dax instance may create when it is online. Prior to 6951e7849cSVishal Verma being online the device's 'numa_node' property reflects the 7051e7849cSVishal Verma closest online cpu node which is the typical expectation of a 7151e7849cSVishal Verma device 'numa_node'. Once it is online it becomes its own 7251e7849cSVishal Verma distinct numa node. 7351e7849cSVishal Verma 7451e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/available_size 7551e7849cSVishal VermaDate: October, 2020 7651e7849cSVishal VermaKernelVersion: v5.10 7751e7849cSVishal VermaContact: nvdimm@lists.linux.dev 7851e7849cSVishal VermaDescription: 7951e7849cSVishal Verma (RO) The available_size attribute tracks available dax region 8051e7849cSVishal Verma capacity. This only applies to volatile hmem devices, not pmem 8151e7849cSVishal Verma devices, since pmem devices are defined by nvdimm namespace 8251e7849cSVishal Verma boundaries. 8351e7849cSVishal Verma 8451e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/size 8551e7849cSVishal VermaDate: July, 2017 8651e7849cSVishal VermaKernelVersion: v5.1 8751e7849cSVishal VermaContact: nvdimm@lists.linux.dev 8851e7849cSVishal VermaDescription: 8951e7849cSVishal Verma (RO) The size attribute indicates the size of a given dax region 9051e7849cSVishal Verma in bytes. 9151e7849cSVishal Verma 9251e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/align 9351e7849cSVishal VermaDate: October, 2020 9451e7849cSVishal VermaKernelVersion: v5.10 9551e7849cSVishal VermaContact: nvdimm@lists.linux.dev 9651e7849cSVishal VermaDescription: 9751e7849cSVishal Verma (RO) The align attribute indicates alignment of the dax region. 9851e7849cSVishal Verma Changes on align may not always be valid, when say certain 9951e7849cSVishal Verma mappings were created with 2M and then we switch to 1G. This 10051e7849cSVishal Verma validates all ranges against the new value being attempted, post 10151e7849cSVishal Verma resizing. 10251e7849cSVishal Verma 10351e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/seed 10451e7849cSVishal VermaDate: October, 2020 10551e7849cSVishal VermaKernelVersion: v5.10 10651e7849cSVishal VermaContact: nvdimm@lists.linux.dev 10751e7849cSVishal VermaDescription: 10851e7849cSVishal Verma (RO) The seed device is a concept for dynamic dax regions to be 10951e7849cSVishal Verma able to split the region amongst multiple sub-instances. The 11051e7849cSVishal Verma seed device, similar to libnvdimm seed devices, is a device 11151e7849cSVishal Verma that starts with zero capacity allocated and unbound to a 11251e7849cSVishal Verma driver. 11351e7849cSVishal Verma 11451e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/create 11551e7849cSVishal VermaDate: October, 2020 11651e7849cSVishal VermaKernelVersion: v5.10 11751e7849cSVishal VermaContact: nvdimm@lists.linux.dev 11851e7849cSVishal VermaDescription: 11951e7849cSVishal Verma (RW) The create interface to the dax region provides a way to 12051e7849cSVishal Verma create a new unconfigured dax device under the given region, which 12151e7849cSVishal Verma can then be configured (with a size etc.) and then probed. 12251e7849cSVishal Verma 12351e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/delete 12451e7849cSVishal VermaDate: October, 2020 12551e7849cSVishal VermaKernelVersion: v5.10 12651e7849cSVishal VermaContact: nvdimm@lists.linux.dev 12751e7849cSVishal VermaDescription: 12851e7849cSVishal Verma (WO) The delete interface for a dax region provides for deletion 12951e7849cSVishal Verma of any 0-sized and idle dax devices. 13051e7849cSVishal Verma 13151e7849cSVishal VermaWhat: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/id 13251e7849cSVishal VermaDate: July, 2017 13351e7849cSVishal VermaKernelVersion: v5.1 13451e7849cSVishal VermaContact: nvdimm@lists.linux.dev 13551e7849cSVishal VermaDescription: 13651e7849cSVishal Verma (RO) The id attribute indicates the region id of a dax region. 137*73954d37SVishal Verma 138*73954d37SVishal VermaWhat: /sys/bus/dax/devices/daxX.Y/memmap_on_memory 139*73954d37SVishal VermaDate: January, 2024 140*73954d37SVishal VermaKernelVersion: v6.8 141*73954d37SVishal VermaContact: nvdimm@lists.linux.dev 142*73954d37SVishal VermaDescription: 143*73954d37SVishal Verma (RW) Control the memmap_on_memory setting if the dax device 144*73954d37SVishal Verma were to be hotplugged as system memory. This determines whether 145*73954d37SVishal Verma the 'altmap' for the hotplugged memory will be placed on the 146*73954d37SVishal Verma device being hotplugged (memmap_on_memory=1) or if it will be 147*73954d37SVishal Verma placed on regular memory (memmap_on_memory=0). This attribute 148*73954d37SVishal Verma must be set before the device is handed over to the 'kmem' 149*73954d37SVishal Verma driver (i.e. hotplugged into system-ram). Additionally, this 150*73954d37SVishal Verma depends on CONFIG_MHP_MEMMAP_ON_MEMORY, and a globally enabled 151*73954d37SVishal Verma memmap_on_memory parameter for memory_hotplug. This is 152*73954d37SVishal Verma typically set on the kernel command line - 153*73954d37SVishal Verma memory_hotplug.memmap_on_memory set to 'true' or 'force'." 154