On the way towards a "cxl create-region" command add support for a unit test of the raw sysfs interfaces used for region provisioning. This includes support for listing endpoint decoders filtered by their associated memdev, listing decoders in id order by default, and managing DPA allocations. Those capabilities plus some other miscellaneous cleanups are validated in a new 'cxl-create-region.sh' test.
All of the sysfs ABI leveraged in these updates is provided by this pending series of updates: https://lore.kernel.org/linux-cxl/165603869943.551046.3498980330327696732.stgit@dwillia2-xfh/ To date that review has not identified any ABI changes so there is a reasonable chance that this cxl-cli series will not need to be respun to address a kernel-side change. That said, the kernel changes need to complete review and enter linux-next before these proposed patches can be committed to the ndctl project. In the meantime that kernel review can be helped along by having test/cxl-region-create.sh as an example of how the ABI is used. --- Dan Williams (11): cxl/list: Reformat option list cxl/list: Emit endpoint decoders filtered by memdev cxl/list: Hide 0s in disabled decoder listings cxl/list: Add DPA span to endpoint decoder listings cxl/lib: Maintain decoders in id order cxl/memdev: Fix json for multi-device partitioning cxl/list: Emit 'mode' for endpoint decoder objects cxl/set-partition: Accept 'ram' as an alias for 'volatile' cxl/memdev: Add {reserve,free}-dpa commands cxl/test: Update CXL memory parameters cxl/test: Checkout region setup/teardown .clang-format | 1 Documentation/cxl/cxl-set-partition.txt | 2 Documentation/cxl/lib/libcxl.txt | 13 + cxl/builtin.h | 2 cxl/cxl.c | 2 cxl/filter.c | 12 + cxl/filter.h | 2 cxl/json.c | 38 +++- cxl/lib/libcxl.c | 167 +++++++++++++++++ cxl/lib/libcxl.sym | 11 + cxl/lib/private.h | 3 cxl/libcxl.h | 34 +++ cxl/list.c | 9 - cxl/memdev.c | 304 ++++++++++++++++++++++++++++++- test/cxl-region-create.sh | 122 ++++++++++++ test/cxl-topology.sh | 32 ++- test/meson.build | 2 util/list.h | 61 ++++++ 18 files changed, 784 insertions(+), 33 deletions(-) create mode 100644 test/cxl-region-create.sh base-commit: bbb2cb56f08d95ecf2c7c047a33cc3dd64eb7fde
