ndctl: release v50

This release incorporates the capabilities of the 4.5 kernel, and adds
the below features and fixes:

New apis:
    ndctl_bus_get_ctx
    ndctl_namespace_get_pfn
    ndctl_namespace_get_mode
    ndctl_namespace_get_numa_node
    ndctl_region_get_pfn_seed
    ndctl_pfn_get_first
    ndctl_pfn_get_next
    ndctl_pfn_get_id
    ndctl_pfn_get_namespace
    ndctl_pfn_get_uuid
    ndctl_pfn_set_uuid
    ndctl_pfn_get_location
    ndctl_pfn_set_location
    ndctl_pfn_get_align
    ndctl_pfn_set_align
    ndctl_pfn_set_namespace
    ndctl_pfn_get_bus
    ndctl_pfn_get_ctx
    ndctl_pfn_get_devname
    ndctl_pfn_get_block_device
    ndctl_pfn_is_valid
    ndctl_pfn_is_enabled
    ndctl_pfn_get_region
    ndctl_pfn_enable
    ndctl_pfn_delete
    ndctl_pfn_is_configured

New utility commands:
    list
    help (man pages)
    create-namespace

Api fixes:
    ndctl_{namespace|btt}_foreach crash fix
    ndctl_namespace_delete no longer errors on "io" namespaces
    miscellaneous static analysis fixes

Utility command fixes:
    {en|dis}able-{namespace|region} return code
ndctl: release v50

This release incorporates the capabilities of the v4.5 kernel, and adds
the below features and fixes:

New apis:
    ndctl_bus_get_ctx
    ndctl_namespace_get_pfn
    ndctl_namespace_get_mode
    ndctl_namespace_get_numa_node
    ndctl_region_get_pfn_seed
    ndctl_pfn_get_first
    ndctl_pfn_get_next
    ndctl_pfn_get_id
    ndctl_pfn_get_namespace
    ndctl_pfn_get_uuid
    ndctl_pfn_set_uuid
    ndctl_pfn_get_location
    ndctl_pfn_set_location
    ndctl_pfn_get_align
    ndctl_pfn_set_align
    ndctl_pfn_set_namespace
    ndctl_pfn_get_bus
    ndctl_pfn_get_ctx
    ndctl_pfn_get_devname
    ndctl_pfn_get_block_device
    ndctl_pfn_is_valid
    ndctl_pfn_is_enabled
    ndctl_pfn_get_region
    ndctl_pfn_enable
    ndctl_pfn_delete
    ndctl_pfn_is_configured

New utility commands:
    list
    help (man pages)
    create-namespace

Api fixes:
    ndctl_{namespace|btt}_foreach crash fix
    ndctl_namespace_delete no longer errors on "io" namespaces
    miscellaneous static analysis fixes

Utility command fixes:
    {en|dis}able-{namespace|region} return code

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
12 files changed
tree: 6b538f34f1b322adc4d9677a121135cd6e280fc6
  1. ccan/
  2. contrib/
  3. Documentation/
  4. lib/
  5. licenses/
  6. m4/
  7. test/
  8. util/
  9. .gitignore
  10. autogen.sh
  11. builtin-bat.c
  12. builtin-create-nfit.c
  13. builtin-help.c
  14. builtin-list.c
  15. builtin-test.c
  16. builtin-xable-region.c
  17. builtin-xaction-namespace.c
  18. builtin-zero-labels.c
  19. builtin.h
  20. configure.ac
  21. COPYING
  22. git-version-gen
  23. Makefile.am
  24. ndctl.c
  25. ndctl.h
  26. nfit.h
  27. README.md
  28. test.h
README.md

ndctl

Utility library for managing the libnvdimm (non-volatile memory device) sub-system in the Linux kernel

Build

./autogen.sh
./configure --enable-local
make
make check
sudo make install

Documentation

See the latest documentation for the NVDIMM kernel sub-system here:

https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git/tree/Documentation/nvdimm/nvdimm.txt?h=libnvdimm-for-next

Unit Tests

The unit tests run by make check require the nfit_test.ko module to be loaded. To build and install nfit_test.ko:

  1. Obtain the kernel source. For example,
    git clone -b libnvdimm-for-next git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git

  2. Configure the kernel to make some memory available to CMA (contiguous memory allocator). This will be used to emulate DAX.
    CONFIG_DMA_CMA=y
    CONFIG_CMA_SIZE_MBYTES=200
    or
    cma=200M on the kernel command line.

  3. Compile all components of the libnvdimm sub-system as modules:
    CONFIG_LIBNVDIMM=m
    CONFIG_BLK_DEV_PMEM=m
    CONFIG_ND_BLK=m
    CONFIG_ND_BTT=m

  4. Build and install the unit test enabled libnvdimm modules in the following order. The unit test modules need to be in place prior to the depmod that runs during the final modules_install
    make -C tools/testing/nvdimm/
    sudo make -C tools/testing/nvdimm/ install
    sudo make modules_install

  5. Now run make check in the ndctl source directory, or ndctl test, if ndctl was built with --enable-test.