Microsoft Contributing "Ramdax" Driver for Upcoming Linux 6.19 Kernel

2 hours ago 1

LINUX KERNEL

A new driver planned to be sent to the mainline Linux kernel for the upcoming Linux 6.19 merge window is yet another new contribution from Microsoft.

Linux engineer Mike Rapoport at Microsoft has been working on "RAMDAX" as a driver to allow creating persistent memory interfaces on RAM carveouts. These persistent memory interfaces are exposed as NVDIMM DIMM devices.

Microsoft RAMDAX

The RAMDAX driver is described with its Kconfig help text as:

"Allows creation of DAX devices on RAM carveouts.

Memory ranges that are manually specified by the 'memmap=nn[KMG]!ss[KMG]' kernel command line or defined by dummy pmem-region device tree nodes would be managed by this driver as DIMM devices with support for dynamic layout of namespaces. The driver steals 128K in the end of the memmap range for the namespace management. This allows supporting up to 509 namespaces (see 'ndctl create-namespace --help'). The driver should be force bound to e820_pmem or pmem-region platform devices using 'driver_override' device attribute."

Mike Rapoport further elaborates with the patch message for this new RAMDAX driver:

"There are use cases, for example virtual machine hosts, that create "persistent" memory regions using memmap= option on x86 or dummy pmem-region device tree nodes on DT based systems.

Both these options are inflexible because they create static regions and the layout of the "persistent" memory cannot be adjusted without reboot and sometimes they even require firmware update.

Add a ramdax driver that allows creation of DIMM devices on top of E820_TYPE_PRAM regions and devicetree pmem-region nodes.

The DIMMs support label space management on the "device" and provide a flexible way to access RAM using fsdax and devdax."

This RAMDAX driver from Microsoft has been queued up within nvdimm.git's libnvdimm-for-next Git branch. With it making it to the "for-next" branch this week, it should be upstreamed as part of the Linux 6.19 merge window in early December.

Read Entire Article