Changes since v1 [1]: - Clarify the changelog as to why emitting pmem_size on non-pmem capable device is confusing, and clean up the man page to remove stale example of "{pmem,ram}_size: 0" (Alison) - Update the man page for cxl create-region to make it clear that the tool maybe able to select the possible memdevs, but it may not still require a manual specification of the ordering until the tool can do that automatically. (Alison) - Support specification of the region order in either individual args, a comma separated list, or space separated list. (Vishal) - Fixup count of the target list in the presence of list args. (Vishal) - Fixup test/cxl-topology.sh to use consistent 'math' context for comparisons (Vishal) - Include some more documentation fixups and list enhancements
[1]: http://lore.kernel.org/r/166777840496.1238089.5601286140872803173.st...@dwillia2-xfh.jf.intel.com --- The v6.1 kernel picks up new cxl_test infrastructure for a switch attached to a single-port host-bridge. While extending the region creation and topology tests for that change, some additional updates were identified. The main one is the ability to elide the "ways" "memdevs" arguments to 'cxl create-region'. Those parameters are now derived by the result of a topology walk under the given root decoder. I.e.: cxl create-region -d decoder3.4 ...will internally perform a: cxl list -M -d decoder3.4 ...operation and use those memdevs as region targets. This also updates 'create-region' size detection to be maximum free extent in the decoder, or the available capacity in the target memdevs, whichever is smaller. Some miscellaneous fixes and updates are included as well. --- Dan Williams (18): ndctl/test: Move firmware-update.sh to the 'destructive' set ndctl/test: Add kernel backtrace detection to some dax tests ndctl/clang-format: Move minimum version to 6 ndctl/clang-format: Fix space after for_each macros cxl/list: Always attempt to collect child objects cxl/list: Add a 'firmware_node' alias cxl/list: Add parent_dport attribute to port listings cxl/list: Skip emitting pmem_size when it is zero cxl/filter: Return json-c topology cxl/list: Record cxl objects in json objects cxl/region: Make ways an integer argument cxl/region: Make granularity an integer argument cxl/region: Use cxl_filter_walk() to gather create-region targets cxl/region: Trim region size by max available extent cxl/Documentation: Fix whitespace typos in create-region man page cxl/region: Autoselect memdevs for create-region cxl/test: Extend cxl-topology.sh for a single root-port host-bridge cxl/test: Test single-port host-bridge region creation .clang-format | 38 +-- Documentation/cxl/cxl-create-region.txt | 12 + Documentation/cxl/cxl-list.txt | 5 cxl/filter.c | 36 +-- cxl/filter.h | 22 ++ cxl/json.c | 57 ++++ cxl/lib/libcxl.c | 69 +++++ cxl/lib/libcxl.sym | 7 + cxl/lib/private.h | 4 cxl/libcxl.h | 3 cxl/list.c | 7 - cxl/region.c | 406 ++++++++++++++++++++----------- test/common | 10 + test/cxl-create-region.sh | 28 ++ test/cxl-region-sysfs.sh | 4 test/cxl-topology.sh | 53 ++-- test/dax.sh | 2 test/daxdev-errors.sh | 2 test/meson.build | 2 test/multi-dax.sh | 2 util/util.h | 9 + 21 files changed, 537 insertions(+), 241 deletions(-) base-commit: 1d4dbf6ff6eb988864d154792aaa098a2b11a244