From: Dan Williams <dan.j.williams@intel.com>
To: linux-cxl@vger.kernel.org
Cc: Vishal Verma <vishal.l.verma@intel.com>,
Ben Widawsky <ben.widawsky@intel.com>
Subject: [ndctl PATCH 00/37] cxl: Full topology enumeration
Date: Sun, 23 Jan 2022 16:51:49 -0800 [thread overview]
Message-ID: <164298550885.3021641.11210386002804544864.stgit@dwillia2-desk3.amr.corp.intel.com> (raw)
In coordination with kernel enabling to enumerate switch ports and
validate the CXL.mem capability through the topology and in endpoints
[1], enhance the 'cxl list' command accordingly. The 'cxl list' command
gains the ability to enumerate buses (CXL root ports), ports (Switch
ports), endpoints (kernel port objects associated with the HDM Decoder
Capability in endpoints), decoders, and downstream ports. Similar to
'ndctl list', 'cxl list' supports the ability to cross filter the
listing by different object types. This allows 'cxl list' to answer
questions like, "which memdevs can decode a given root level CXL decoder
range?" ("cxl list -M -d $decoder_id"), "what are the set of decoders
that a memdev can contribute?" ("cxl list -D -m $memdev_id").
In addition to that functionality new commands for disabling/enabling
ports and memdevs are added.
See the 'cxl list' man page for more details. See the libcxl man page
for a description of APIs added to support the new commands.
[1]: https://lore.kernel.org/r/164298411792.3018233.7493009997525360044.stgit@dwillia2-desk3.amr.corp.intel.com
---
Dan Williams (37):
test: Add 'suite' identifiers to tests
ndctl: Rename util_filter to ndctl_filter
build: Add tags
json: Add support for json_object_new_uint64()
cxl/json: Cleanup object leak false positive
cxl/list: Support multiple memdev device name filter arguments
cxl/list: Support comma separated lists
cxl/list: Introduce cxl_filter_walk()
cxl/list: Emit device serial numbers
cxl/list: Add filter by serial support
cxl/lib: Rename nvdimm bridge to pmem
cxl/list: Cleanup options definitions
Documentation: Enhance libcxl memdev API documentation
cxl/list: Add bus objects
util/json: Warn on stderr about empty list results
util/sysfs: Uplevel modalias lookup helper to util/
cxl/list: Add port enumeration
cxl/list: Add --debug option
cxl/list: Add endpoints
cxl/list: Add 'host' entries for port-like objects
cxl/list: Add 'host' entries for memdevs
cxl/list: Move enabled memdevs underneath their endpoint
cxl/list: Filter memdev by ancestry
cxl/memdev: Use a local logger for debug
cxl/memdev: Cleanup memdev filter
cxl/memdev: Add serial support for memdev-related commands
cxl/list: Add 'numa_node' to memdev listings
util: Implement common bind/unbind helpers
cxl/memdev: Enable / disable support
cxl/list: Add decoder support
cxl/list: Extend decoder objects with target information
cxl/list: Use 'physical_node' for root port attachment detection
cxl/list: Reuse the --target option for ports
cxl/list: Support filtering memdevs by decoders
cxl/list: Support filtering memdevs by ports
cxl/port: Add {disable,enable}-port command
cxl/list: Filter dports and targets by memdevs
.clang-format | 7
Documentation/copyright.txt | 2
Documentation/cxl/cxl-disable-memdev.txt | 37 +
Documentation/cxl/cxl-disable-port.txt | 46 +
Documentation/cxl/cxl-enable-memdev.txt | 34 +
Documentation/cxl/cxl-enable-port.txt | 43 +
Documentation/cxl/cxl-list.txt | 248 ++++++
Documentation/cxl/lib/libcxl.txt | 448 ++++++++++-
Documentation/cxl/memdev-option.txt | 5
Documentation/cxl/meson.build | 8
config.h.meson | 3
cxl/builtin.h | 4
cxl/cxl.c | 4
cxl/filter.c | 1068 +++++++++++++++++++++++++
cxl/filter.h | 50 +
cxl/json.c | 283 +++++++
cxl/json.h | 19
cxl/lib/libcxl.c | 1267 +++++++++++++++++++++++++++++-
cxl/lib/libcxl.sym | 83 ++
cxl/lib/private.h | 85 ++
cxl/libcxl.h | 133 +++
cxl/list.c | 167 ++--
cxl/memdev.c | 153 +++-
cxl/meson.build | 2
cxl/port.c | 253 ++++++
daxctl/json.c | 2
meson.build | 25 +
ndctl/dimm.c | 2
ndctl/filter.c | 4
ndctl/filter.h | 21
ndctl/json.c | 10
ndctl/lib/libndctl.c | 136 ---
ndctl/list.c | 14
ndctl/monitor.c | 12
test/list-smart-dimm.c | 12
test/meson.build | 73 +-
util/json.c | 9
util/json.h | 14
util/sysfs.c | 103 ++
util/sysfs.h | 16
40 files changed, 4503 insertions(+), 402 deletions(-)
create mode 100644 Documentation/cxl/cxl-disable-memdev.txt
create mode 100644 Documentation/cxl/cxl-disable-port.txt
create mode 100644 Documentation/cxl/cxl-enable-memdev.txt
create mode 100644 Documentation/cxl/cxl-enable-port.txt
create mode 100644 cxl/port.c
base-commit: e1b4076b742f2e7aab8e9c9612a9b5c247d0d8e9
next reply other threads:[~2022-01-24 0:51 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-24 0:51 Dan Williams [this message]
2022-01-24 0:51 ` [ndctl PATCH 01/37] test: Add 'suite' identifiers to tests Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 02/37] ndctl: Rename util_filter to ndctl_filter Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 03/37] build: Add tags Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 04/37] json: Add support for json_object_new_uint64() Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 05/37] cxl/json: Cleanup object leak false positive Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 06/37] cxl/list: Support multiple memdev device name filter arguments Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 07/37] cxl/list: Support comma separated lists Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 08/37] cxl/list: Introduce cxl_filter_walk() Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 09/37] cxl/list: Emit device serial numbers Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 10/37] cxl/list: Add filter by serial support Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 11/37] cxl/lib: Rename nvdimm bridge to pmem Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 12/37] cxl/list: Cleanup options definitions Dan Williams
2022-01-24 0:52 ` [ndctl PATCH 13/37] Documentation: Enhance libcxl memdev API documentation Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 14/37] cxl/list: Add bus objects Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 15/37] util/json: Warn on stderr about empty list results Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 16/37] util/sysfs: Uplevel modalias lookup helper to util/ Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 17/37] cxl/list: Add port enumeration Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 18/37] cxl/list: Add --debug option Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 19/37] cxl/list: Add endpoints Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 20/37] cxl/list: Add 'host' entries for port-like objects Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 21/37] cxl/list: Add 'host' entries for memdevs Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 22/37] cxl/list: Move enabled memdevs underneath their endpoint Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 23/37] cxl/list: Filter memdev by ancestry Dan Williams
2022-01-24 0:53 ` [ndctl PATCH 24/37] cxl/memdev: Use a local logger for debug Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 25/37] cxl/memdev: Cleanup memdev filter Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 26/37] cxl/memdev: Add serial support for memdev-related commands Dan Williams
2022-02-10 1:10 ` Alison Schofield
2022-02-10 1:55 ` Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 27/37] cxl/list: Add 'numa_node' to memdev listings Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 28/37] util: Implement common bind/unbind helpers Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 29/37] cxl/memdev: Enable / disable support Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 30/37] cxl/list: Add decoder support Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 31/37] cxl/list: Extend decoder objects with target information Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 32/37] cxl/list: Use 'physical_node' for root port attachment detection Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 33/37] cxl/list: Reuse the --target option for ports Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 34/37] cxl/list: Support filtering memdevs by decoders Dan Williams
2022-01-24 0:54 ` [ndctl PATCH 35/37] cxl/list: Support filtering memdevs by ports Dan Williams
2022-01-24 0:55 ` [ndctl PATCH 36/37] cxl/port: Add {disable,enable}-port command Dan Williams
2022-01-24 0:55 ` [ndctl PATCH 37/37] cxl/list: Filter dports and targets by memdevs Dan Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=164298550885.3021641.11210386002804544864.stgit@dwillia2-desk3.amr.corp.intel.com \
--to=dan.j.williams@intel.com \
--cc=ben.widawsky@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=vishal.l.verma@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).