Persistent Memory Documentation
HomePMDKNDCTLBlog
  • Persistent Memory Documentation
  • Getting Started Guide
    • Introduction
    • PMDK Introduction
    • NDCTL Introduction
    • System Requirements
    • Creating Development Environments
      • Linux Environments
        • Using the memmap Kernel Option
        • Advanced Topics
          • Partitioning Namespaces
          • I/O Alignment Considerations
      • Windows Environments
      • Virtualization
        • Windows Server Hyper-V
        • Using QEMU Virtualization
        • VMware VSphere/ESXi
      • Cloud Environments
        • Microsoft Azure Cloud
        • Google Cloud Platform (GCP)
    • Installing NDCTL
    • Installing PMDK
      • PMDK Directory Structure
      • Installing PMDK using Linux Packages
      • Installing PMDK from Source on Linux
      • Installing PMDK on Windows
  • IPMCTL User Guide
  • NDCTL User Guide
Powered by GitBook
On this page
  1. Getting Started Guide

System Requirements

The following minimum system requirements are required to support either physical NVDIMMs or emulated NVDIMMs.

  • Linux Kernel Version 4.0 or later

    • Kernel Version 4.19 or later is recommended for production

  • 4GB of DDR Memory (Minimum), 16GB or more recommended for Emulated NVDIMMs.

The 4.15 Linux kernel introduced a new flag to mmap() called MAP_SYNC. If the mapping with MAP_SYNC is successful, PMDK knows that flushing from user space using instructions like CLWB is safe. Otherwise, it falls back to calling msync(). The msync() call can be slower for the PMDK-style transactions because they are fine-grained, flushing lots of little stores during a typical transaction. Calling into the kernel has an overhead, as does the code path that msync() takes.

Setting PMEM_IS_PMEM_FORCE=1 tells the PMDK libraries "even if mmap() with MAP_SYNC was unsuccessful, pretend it worked and do user space flushing anyway, avoiding calls to msync()". This environment variable is meant for testing, not for production use. Both FSDAX and DEVDAX use user space flushing when it is available.

  • Windows Server 2016 or later for NVDIMM support

  • Windows Server 2019 or later for Intel(R) Optane(TM) DC Persistent Memory Support

  • 4GB of DDR Memory (Minimum), 16GB or more recommended for Emulated NVDIMMs

PreviousNDCTL IntroductionNextCreating Development Environments

Last updated 6 years ago