From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
To: Lukas Wunner <lukas@wunner.de>,
Bjorn Helgaas <helgaas@kernel.org>,
Logan Gunthorpe <logang@deltatee.com>,
Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Cc: linux-pci@vger.kernel.org, qat-linux@intel.com,
Damir Chanyshev <conflict342@gmail.com>,
Simon Richter <sjr@debian.org>,
Tomasz Ossowski <tomasz.ossowski@intel.com>
Subject: Re: [PATCH v2] PCI/P2PDMA: Add Intel QAT, DSA, IAA devices to whitelist
Date: Thu, 04 Jun 2026 16:32:46 -0700 [thread overview]
Message-ID: <87qzmlq3tt.fsf@intel.com> (raw)
In-Reply-To: <6aac4922b5fe7070b11874427a9285e42ddd05a4.1780585518.git.lukas@wunner.de>
Hi Lukas,
Lukas Wunner <lukas@wunner.de> writes:
> The first device on a PCI root bus determines whether the host bridge is
> whitelisted for P2PDMA. All Intel Xeon chips since Ice Lake (ICX, 2021)
> expose a device with ID 0x09a2 as first device. It is loosely associated
> with the IOMMU. All these Xeon chips support P2PDMA, so since the
> addition of the device with commit feaea1fe8b36 ("PCI/P2PDMA: Add Intel
> 3rd Gen Intel Xeon Scalable Processors to whitelist"), P2PDMA has been
> allowed on all new Xeons without the need to amend the whitelist:
>
> Xeons with Performance Cores:
> Sapphire Rapids (SPR, 2023)
> Emerald Rapids (EMR, 2023)
> Granite Rapids (GNR, 2024)
> Diamond Rapids (DMR, 2026)
>
> Xeons with Efficiency Cores:
> Sierra Forest (SRF, 2024)
> Clearwater Forest (CWF, 2026)
>
> However these Xeons also expose accelerators as first device on a root bus
> of its own:
>
> QuickAssist Technology (QAT, crypto & compression accelerator)
> Data Streaming Accelerator (DSA, dma engine)
> In-Memory Analytics Accelerator (IAA, dma engine)
Minor: I think it's more correct to call IAA a compression accelerator
instead of a dma engine.
For the changes:
Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
>
> Whitelist them for P2PDMA as well. Move their Device ID macros from the
> accelerator drivers to <linux/pci_ids.h> for reuse by P2PDMA code.
>
> Unfortunately the Device IDs vary across Xeon generations as additional
> features were added to the accelerators. This currently necessitates an
> amendment for each new Xeon chip.
>
> For future chips, this need shall be avoided by an ongoing effort to
> extend ACPI HMAT with PCIe P2PDMA characteristics (latency, bandwidth,
> ordering constraints). The PCI core will be able look up in this
> BIOS-provided ACPI table whether P2PDMA is supported, instead of relying
> on a whitelist that needs to be amended continuously.
>
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> Cc: stable@vger.kernel.org
> ---
> Changes v1 -> v2:
> * Drop code comments associating QAT generation with CPUs because a
> QAT generation can go to different CPUs or plug-in cards (Giovanni)
>
> Link to v1:
> https://lore.kernel.org/r/4ea5265495876beb5fb5e6d479b2782f882bcbb3.1780570508.git.lukas@wunner.de/
>
> drivers/crypto/intel/qat/qat_common/adf_accel_devices.h | 5 -----
> drivers/dma/idxd/registers.h | 3 ---
> drivers/pci/p2pdma.c | 10 ++++++++++
> include/linux/pci_ids.h | 8 ++++++++
> 4 files changed, 18 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h b/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h
> index 03a4e96..cbd1d1e 100644
> --- a/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h
> +++ b/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h
> @@ -28,15 +28,10 @@
> #define ADF_4XXX_DEVICE_NAME "4xxx"
> #define ADF_420XX_DEVICE_NAME "420xx"
> #define ADF_6XXX_DEVICE_NAME "6xxx"
> -#define PCI_DEVICE_ID_INTEL_QAT_4XXX 0x4940
> #define PCI_DEVICE_ID_INTEL_QAT_4XXXIOV 0x4941
> -#define PCI_DEVICE_ID_INTEL_QAT_401XX 0x4942
> #define PCI_DEVICE_ID_INTEL_QAT_401XXIOV 0x4943
> -#define PCI_DEVICE_ID_INTEL_QAT_402XX 0x4944
> #define PCI_DEVICE_ID_INTEL_QAT_402XXIOV 0x4945
> -#define PCI_DEVICE_ID_INTEL_QAT_420XX 0x4946
> #define PCI_DEVICE_ID_INTEL_QAT_420XXIOV 0x4947
> -#define PCI_DEVICE_ID_INTEL_QAT_6XXX 0x4948
> #define PCI_DEVICE_ID_INTEL_QAT_6XXX_IOV 0x4949
>
> #define ADF_DEVICE_FUSECTL_OFFSET 0x40
> diff --git a/drivers/dma/idxd/registers.h b/drivers/dma/idxd/registers.h
> index f954113..1dce26d 100644
> --- a/drivers/dma/idxd/registers.h
> +++ b/drivers/dma/idxd/registers.h
> @@ -10,9 +10,6 @@
> #endif
>
> /* PCI Config */
> -#define PCI_DEVICE_ID_INTEL_DSA_GNRD 0x11fb
> -#define PCI_DEVICE_ID_INTEL_DSA_DMR 0x1212
> -#define PCI_DEVICE_ID_INTEL_IAA_DMR 0x1216
> #define PCI_DEVICE_ID_INTEL_IAA_PTL 0xb02d
> #define PCI_DEVICE_ID_INTEL_IAA_WCL 0xfd2d
>
> diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
> index 7c89854..206e3fe 100644
> --- a/drivers/pci/p2pdma.c
> +++ b/drivers/pci/p2pdma.c
> @@ -548,6 +548,16 @@ static bool cpu_supports_p2pdma(void)
> {PCI_VENDOR_ID_INTEL, 0x2033, 0},
> {PCI_VENDOR_ID_INTEL, 0x2020, 0},
> {PCI_VENDOR_ID_INTEL, 0x09a2, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DSA_SPR0, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IAX_SPR0, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DSA_GNRD, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DSA_DMR, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IAA_DMR, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QAT_4XXX, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QAT_401XX, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QAT_402XX, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QAT_420XX, 0},
> + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QAT_6XXX, 0},
> /* Google SoCs. */
> {PCI_VENDOR_ID_GOOGLE, PCI_ANY_ID, 0},
> {}
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 24cb42f..1c9d40e 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -2732,6 +2732,9 @@
> #define PCI_DEVICE_ID_INTEL_82815_MC 0x1130
> #define PCI_DEVICE_ID_INTEL_82815_CGC 0x1132
> #define PCI_DEVICE_ID_INTEL_SST_TNG 0x119a
> +#define PCI_DEVICE_ID_INTEL_DSA_GNRD 0x11fb
> +#define PCI_DEVICE_ID_INTEL_DSA_DMR 0x1212
> +#define PCI_DEVICE_ID_INTEL_IAA_DMR 0x1216
> #define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221
> #define PCI_DEVICE_ID_INTEL_82437 0x122d
> #define PCI_DEVICE_ID_INTEL_82371FB_0 0x122e
> @@ -3052,6 +3055,11 @@
> #define PCI_DEVICE_ID_INTEL_5400_FBD1 0x4036
> #define PCI_DEVICE_ID_INTEL_HDA_TGL_H 0x43c8
> #define PCI_DEVICE_ID_INTEL_HDA_DG1 0x490d
> +#define PCI_DEVICE_ID_INTEL_QAT_4XXX 0x4940
> +#define PCI_DEVICE_ID_INTEL_QAT_401XX 0x4942
> +#define PCI_DEVICE_ID_INTEL_QAT_402XX 0x4944
> +#define PCI_DEVICE_ID_INTEL_QAT_420XX 0x4946
> +#define PCI_DEVICE_ID_INTEL_QAT_6XXX 0x4948
> #define PCI_DEVICE_ID_INTEL_HDA_EHL_0 0x4b55
> #define PCI_DEVICE_ID_INTEL_HDA_EHL_3 0x4b58
> #define PCI_DEVICE_ID_INTEL_HDA_WCL 0x4d28
> --
> 2.51.0
>
--
Vinicius
prev parent reply other threads:[~2026-06-04 23:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-04 15:12 [PATCH v2] PCI/P2PDMA: Add Intel QAT, DSA, IAA devices to whitelist Lukas Wunner
2026-06-04 21:17 ` Giovanni Cabiddu
2026-06-04 23:32 ` Vinicius Costa Gomes [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=87qzmlq3tt.fsf@intel.com \
--to=vinicius.gomes@intel.com \
--cc=conflict342@gmail.com \
--cc=giovanni.cabiddu@intel.com \
--cc=helgaas@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=lukas@wunner.de \
--cc=qat-linux@intel.com \
--cc=sjr@debian.org \
--cc=tomasz.ossowski@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