mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>,
	Saket Dumbre <saket.dumbre@intel.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Logan Gunthorpe <logang@deltatee.com>
Cc: linux-acpi@vger.kernel.org, acpica-devel@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	Lukas Wunner <lukas@wunner.de>,
	"Natu, Mahesh" <mahesh.natu@intel.com>
Subject: [PATCH RFC 1/7] ACPICA: Define PCIe P2P latency and bandwidth information
Date: Wed, 12 Aug 2026 22:47:38 +0300	[thread overview]
Message-ID: <20260812-hmat-p2p-v1-1-75ac41380585@nvidia.com> (raw)
In-Reply-To: <20260812-hmat-p2p-v1-0-75ac41380585@nvidia.com>

From: Leon Romanovsky <leonro@nvidia.com>

PCIe topology alone cannot tell an operating system whether traffic may
cross host bridges, what ordering rules it needs, or how expensive the path
is. Encoding this knowledge in chipset lists duplicates platform policy and
cannot survive a virtualized topology.

Define HMAT Type 3 as a firmware contract for directional Generic Port P2P
paths, including separate ordered and Unordered I/O applicability. This
gives platform software a standard way to distinguish unsupported,
conditional, and usable paths. The definition follows a proposed ACPI ECN.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 include/acpi/actbl1.h | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h
index d824838cb7af..0fc766a8e90f 100644
--- a/include/acpi/actbl1.h
+++ b/include/acpi/actbl1.h
@@ -2003,7 +2003,8 @@ enum acpi_hmat_type {
 	ACPI_HMAT_TYPE_PROXIMITY = 0,	/* Memory proximity domain attributes */
 	ACPI_HMAT_TYPE_LOCALITY = 1,	/* System locality latency and bandwidth information */
 	ACPI_HMAT_TYPE_CACHE = 2,	/* Memory side cache information */
-	ACPI_HMAT_TYPE_RESERVED = 3	/* 3 and greater are reserved */
+	ACPI_HMAT_TYPE_P2P_LATENCY = 3,	/* PCIe P2P latency and bandwidth information */
+	ACPI_HMAT_TYPE_RESERVED = 4	/* 4 and greater are reserved */
 };
 
 struct acpi_hmat_structure {
@@ -2108,6 +2109,30 @@ struct acpi_hmat_cache {
 #define ACPI_HMAT_CP_WB     (1)
 #define ACPI_HMAT_CP_WT     (2)
 
+/* 3: PCIe P2P Latency and Bandwidth Information */
+
+struct acpi_hmat_p2p_latency {
+	struct acpi_hmat_structure header;
+	u8 flags;
+	u8 data_type;
+	u16 reserved1;
+	u32 number_of_initiator_Pds;
+	u32 number_of_target_Pds;
+	u32 reserved2;
+	u64 entry_base_unit;
+};
+
+/* Masks for Flags field above */
+
+#define ACPI_HMAT_P2P_NON_UIO   (1)	/* Bit 0: Entries apply to non-UIO traffic */
+#define ACPI_HMAT_P2P_UIO       (1<<1)	/* Bit 1: Entries apply to UIO traffic */
+
+/*
+ * The data_type field reuses the ACPI_HMAT_ACCESS/READ/WRITE_LATENCY and
+ * ACPI_HMAT_ACCESS/READ/WRITE_BANDWIDTH values defined for the System
+ * Locality Latency and Bandwidth Information Structure above.
+ */
+
 /*******************************************************************************
  *
  * HPET - High Precision Event Timer table

-- 
2.55.0


  reply	other threads:[~2026-08-12 19:48 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-12 19:47 [PATCH RFC 0/7] PCI/HMAT: Describe P2PDMA reachability and performance Leon Romanovsky
2026-08-12 19:47 ` Leon Romanovsky [this message]
2026-08-13 10:13   ` [PATCH RFC 1/7] ACPICA: Define PCIe P2P latency and bandwidth information Rafael J. Wysocki (Intel)
2026-08-13 11:01     ` Leon Romanovsky
2026-08-12 19:47 ` [PATCH RFC 2/7] ACPI: HMAT: Make PCIe P2P paths available to consumers Leon Romanovsky
2026-08-12 19:47 ` [PATCH RFC 3/7] PCI/P2PDMA: Authorize HMAT-described cross-host-bridge P2P Leon Romanovsky
2026-08-12 19:47 ` [PATCH RFC 4/7] PCI/P2PDMA: Prefer providers with better HMAT performance Leon Romanovsky
2026-08-14  3:50   ` Logan Gunthorpe
2026-08-16 12:38     ` Leon Romanovsky
2026-08-17 16:09       ` Logan Gunthorpe
2026-08-17 18:27         ` Leon Romanovsky
2026-08-12 19:47 ` [PATCH RFC 5/7] ACPI: HMAT: Add KUnit tests for PCIe P2P matrix semantics Leon Romanovsky
2026-08-12 19:47 ` [PATCH RFC 6/7] PCI/P2PDMA: Add KUnit tests for HMAT policy boundaries Leon Romanovsky
2026-08-12 19:47 ` [PATCH RFC 7/7] PCI/P2PDMA: Add KUnit tests for HMAT provider ranking Leon Romanovsky
2026-08-24 20:15 ` [PATCH RFC 0/7] PCI/HMAT: Describe P2PDMA reachability and performance Alison Schofield
2026-08-24 20:24   ` Natu, Mahesh
2026-08-26 14:08   ` Leon Romanovsky

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=20260812-hmat-p2p-v1-1-75ac41380585@nvidia.com \
    --to=leon@kernel.org \
    --cc=acpica-devel@lists.linux.dev \
    --cc=bhelgaas@google.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=logang@deltatee.com \
    --cc=lukas@wunner.de \
    --cc=mahesh.natu@intel.com \
    --cc=rafael@kernel.org \
    --cc=saket.dumbre@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

all inboxes | Powered by JetHome®