Pmreorder basics

Pmreorder basics

Introduction It’s good practice to run persistent memory application under pmemcheck - a tool which is described here and here. In this post, we are going to learn about another tool for persistence correctness checking. As you might already know if you’ve read posts linked above, …

Read More
Pool conversion tool

Pool conversion tool

Introduction When we published the first PMDK stable release, we committed to maintaining stable on-media layout. This means that all future PMDK changes have to be backward compatible. Unfortunately, we weren’t successful in adhering to the strict requirements which would be needed to …

Read More
Extended memcpy in PMDK 1.5

Extended memcpy in PMDK 1.5

In PMDK 1.5 we added new APIs for bulk persistent memory modifications. In short, we did this to: give applications the ability to perform low-level performance optimizations clean up the naming scheme In order to understand what exactly and why we did that, let’s review the old API. In PMDK …

Read More
Pool features

Pool features

Introduction Since the very first release, PMDK pools had internal feature flags. They were mostly a hidden implementation detail. The more observant users might have noticed pool features listing in pmempool info output, but that’s about it. Release 1.5 introduced a set of new feature flags. …

Read More
Bad blocks

Bad blocks

Introduction Over time, storage devices can acquire uncorrectable media errors often called “bad blocks”. A bad block is a part of a storage media that is either inaccessible or unwritable due to a permanent physical damage. In case of memory mapped I/O, if a process tries to access …

Read More