From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Dave Jiang <dave.jiang@intel.com>
Cc: <linux-cxl@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
<dan.j.williams@intel.com>, <ira.weiny@intel.com>,
<vishal.l.verma@intel.com>, <alison.schofield@intel.com>,
<dave@stgolabs.net>, <rafael@kernel.org>,
<gregkh@linuxfoundation.org>
Subject: Re: [PATCH v6 0/12] cxl: Add support to report region access coordinates to numa nodes
Date: Wed, 6 Mar 2024 14:55:01 +0000 [thread overview]
Message-ID: <20240306145501.0000730f@Huawei.com> (raw)
In-Reply-To: <20240220231402.3156281-1-dave.jiang@intel.com>
On Tue, 20 Feb 2024 16:12:29 -0700
Dave Jiang <dave.jiang@intel.com> wrote:
> Hi Rafael,
> Please review patches 1-4,10,11 and ack if they look ok to you. Thank you!
>
> Hi Greg,
> Please review patch 2 and 11 and ack the numa node bits if they look ok to you. Thank you!
Whilst currently a bit light weight, I poked this along with the QEMU Generic Port emulation
on the gitlab.com/jic23/qemu cxl-2024-03-05 and some pathological cases from host side,
It works so
Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> v6:
> - Enhance macros used to reduce code for cxl access coordinates sysfs attrs (Jonathan)
> - Various minor updates and fixes, see per commit details. (Jonathan)
> - Added review tags from Jonathan.
>
> v5:
> - Fix various 0-day issues
> - Remove EXPORT_SYMBOL for cxl_coords_combine() (Dan)
> - Rebased against fixes series for qos_class [1].
>
> v4:
> - Introduce access class 0 and 1 for CXL access coordinates.
> - See individual patches for detailed change log if applicable.
>
> v3:
> - Make attributes not visible if no data. (Jonathan)
> - Fix documentation verbiage. (Jonathan)
> - Check against read bandwidth instead of write bandwidth due to future RO devices. (Jonathan)
> - Export node_set_perf_attrs() to all namespaces. (Jonathan)
> - Remove setting of coordinate access level 1. (Jonathan)
>
> v2:
> - Move calculation function to core/cdat.c due to QTG series changes
> - Make cxlr->coord static (Dan)
> - Move calculation to cxl_region_attach to be under cxl_dpa_rwsem (Dan)
> - Normalize perf latency numbers to nanoseconds (Brice)
> - Update documentation with units and initiator details (Brice, Dan)
> - Fix notifier return values (Dan)
> - Use devm_add_action_or_reset() to unregister memory notifier (Dan)
>
> This series adds support for computing the performance data of a CXL region
> and also updates the performance data to the NUMA node. This series depends
> on the CXL QOS class series that's pending 6.8 pull request.
>
> CXL memory devices already attached before boot are enumerated by the BIOS.
> The SRAT and HMAT tables are properly setup to including memory regions
> enumerated from those CXL memory devices. For regions not programmed or a
> hot-plugged CXL memory device, the BIOS does not have the relevant
> information and the performance data has to be caluclated by the driver
> post region assembly.
>
> According to numaperf documentation [2] there are 2 access classes defined
> for performance between an initiator node and a memory target node. Access
> class "0" describes attributes between a memory target and the highest
> performing initator local to the target. In this case the initiator can be
> a CPU or an I/O initiator such as a GPU or NIC. Access class "1" describes
> attributes between a memory target and the nearest CPU node. Both access
> classes are calculated for the CXL memory target and updated for NUMA nodes
> through HMAT_REPORTING code or directly depending on if the NUMA node is
> described by the ACPI SRAT table.
>
> Recall from qos_class series (v6.8) that the performance data for the ranges
> of a CXL memory device is computed and cached. A CXL memory region can be
> backed by one or more devices. Thus the performance data would be the
> aggregated bandwidth of all devices that back a region and the worst
> latency out of all devices backing the region.
>
> See kernel git branch [3] for convenience.
>
> [1]: https://lore.kernel.org/linux-cxl/20240206190431.1810289-1-dave.jiang@intel.com/T/#t
> [2]: https://www.kernel.org/doc/Documentation/admin-guide/mm/numaperf.rst
> [3]: https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/log/?h=cxl-hmem-report
>
prev parent reply other threads:[~2024-03-06 14:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-20 23:12 [PATCH v6 0/12] cxl: Add support to report region access coordinates to numa nodes Dave Jiang
2024-02-20 23:12 ` [PATCH v6 01/12] ACPI: HMAT: Remove register of memory node for generic target Dave Jiang
2024-02-20 23:12 ` [PATCH v6 02/12] base/node / ACPI: Enumerate node access class for 'struct access_coordinate' Dave Jiang
2024-03-07 21:02 ` Greg KH
2024-02-20 23:12 ` [PATCH v6 03/12] ACPI: HMAT: Introduce 2 levels of generic port access class Dave Jiang
2024-02-27 17:23 ` Jonathan Cameron
2024-02-20 23:12 ` [PATCH v6 04/12] ACPI: HMAT / cxl: Add retrieval of generic port coordinates for both access classes Dave Jiang
2024-02-20 23:12 ` [PATCH v6 05/12] cxl: Split out combine_coordinates() for common shared usage Dave Jiang
2024-02-27 17:25 ` Jonathan Cameron
2024-02-20 23:12 ` [PATCH v6 06/12] cxl: Split out host bridge access coordinates Dave Jiang
2024-02-20 23:12 ` [PATCH v6 07/12] cxl: Move QoS class to be calculated from the nearest CPU Dave Jiang
2024-02-20 23:12 ` [PATCH v6 08/12] cxl: Set cxlmd->endpoint before adding port device Dave Jiang
2024-02-20 23:12 ` [PATCH v6 09/12] cxl/region: Calculate performance data for a region Dave Jiang
2024-02-20 23:12 ` [PATCH v6 10/12] cxl/region: Add sysfs attribute for locality attributes of CXL regions Dave Jiang
2024-03-06 14:48 ` Jonathan Cameron
2024-02-20 23:12 ` [PATCH v6 11/12] cxl/region: Add memory hotplug notifier for cxl region Dave Jiang
2024-03-06 14:53 ` Jonathan Cameron
2024-03-07 23:51 ` Dave Jiang
2024-03-08 0:01 ` Dan Williams
2024-02-20 23:12 ` [PATCH v6 12/12] cxl/region: Deal with numa nodes not enumarated by SRAT Dave Jiang
2024-03-06 14:55 ` Jonathan Cameron [this message]
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=20240306145501.0000730f@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=gregkh@linuxfoundation.org \
--cc=ira.weiny@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=rafael@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