libpmem requirements

85 views
Skip to first unread message

Eran Borovik

unread,
Jan 24, 2016, 6:31:20 AM1/24/16
to pmem
Hi,
I would like to purchase new servers and devices that will work correctly with the libpmem library. What are the requirements I need from the hardware (motherboard, servers,  devices) in order to make sure libpmem will work. Specific examples of hardware models can help as well.

Thanks,
Eran

Andy Rudoff

unread,
Jan 24, 2016, 2:37:06 PM1/24/16
to pmem
Hi Eran,

Perhaps some of the vendors on this list will reply with specifics, but I'll give you the general answer.  Start by looking for NVDIMM products (just type "NVDIMM" into Google and look at the first couple pages of results to find a choice of vendors).  The byte-addressable NVDIMMs, used like memory, are often referred to as "NVDIMM-N" (note that there are other types of NVDIMMs that are not byte-addressable, basically SSDs mounted on a DIMM form factor, and those will not do anything interesting with the NVM Libraries).

Each vendor has information on what platforms they support, but it typically requires a platform with ADR (Asynchronous DIMM Refresh), which is a platform feature used to flush writes to the NVDIMM on power loss.  In the future, when platforms arrive that support the new PCOMMIT instruction, the NVM Library will detect it and use the instruction and the requirement for ADR becomes optional.  But until then, ADR or some equivalent "flush on power loss" mechanism is required in the platform.

Some NVDIMM vendors offer a custom BIOS which recognizes their NVDIMM, or some platform vendors may already have added that logic to their BIOS.  The updated BIOS will create an NFIT table which is used by the OS to recognize NVDIMMs installed in the system.  Since this is still not wide spread, many people are using the Linux "memmap" boot argument to identify the NVDIMM space to the OS, as described here: https://nvdimm.wiki.kernel.org/

Finally, to use the NVM Libraries, you'll want a recent Linux kernel that provides "DAX" for direct access (also described on the above wiki page).  Those changes are available today in the upstream kernel, but are still working their way into various UNIX distros.  Microsoft has announced that Windows support for direct access and the NVM Libraries is underway as well.

Hopefully that gives you some pointers to the information you're looking for...

-andy

Eran Borovik

unread,
Jan 25, 2016, 2:29:24 AM1/25/16
to pmem
Hi Andy,
Thanks, that helped a lot.

Regards,
Eran
Reply all
Reply to author
Forward
0 new messages