As some of you noticed, last week I added support to libpmem for the recently-announced persistent memory support instructions on Intel platforms.
The new instructions are PCOMMIT, CLFLUSHOPT, and CLWB. You can read about them here:
Intel® Architecture Instruction Set Extensions Programming Reference - 319433-022.pdf
The libpmem man page I sent out in the previous message describes the API we've provided for convenient use of these instructions, along with non-temporal stores. I also wrote up a little walk-through of some examples using libpmem here:
http://pmem.io/nvml/libpmemAlthough we hope libpmem is a useful set of routines on top of raw persistent memory, our efforts at this point are really focused on building higher-level transactional libraries on top of libpmem.
Comments welcome, and libpmem itself isn't that long and has a nice big comment at the top explaining how it uses the new instructions -- code review comments on that are very welcome as well! You'll find the code here:
https://github.com/pmem/nvml/blob/master/src/pmem.cThanks,
-andy