diff options
author | Dimitri Sivanich <sivanich@hpe.com> | 2024-04-24 15:16:29 +0800 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2024-04-26 11:57:36 +0200 |
commit | d74169ceb0d2e32438946a2f1f9fc8c803304bd6 (patch) | |
tree | 3c9e7d3d50d317c44291f01c5779f1ec0fab0b08 /drivers/iommu/amd/amd_iommu.h | |
parent | 9e7ee0f045395dc8aa55fbdc164c062484f4c88d (diff) | |
download | linux-d74169ceb0d2e32438946a2f1f9fc8c803304bd6.tar.gz linux-d74169ceb0d2e32438946a2f1f9fc8c803304bd6.tar.bz2 linux-d74169ceb0d2e32438946a2f1f9fc8c803304bd6.zip |
iommu/vt-d: Allocate DMAR fault interrupts locally
The Intel IOMMU code currently tries to allocate all DMAR fault interrupt
vectors on the boot cpu. On large systems with high DMAR counts this
results in vector exhaustion, and most of the vectors are not initially
allocated socket local.
Instead, have a cpu on each node do the vector allocation for the DMARs on
that node. The boot cpu still does the allocation for its node during its
boot sequence.
Signed-off-by: Dimitri Sivanich <sivanich@hpe.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/Zfydpp2Hm+as16TY@hpe.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/amd/amd_iommu.h')
-rw-r--r-- | drivers/iommu/amd/amd_iommu.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/iommu/amd/amd_iommu.h b/drivers/iommu/amd/amd_iommu.h index f482aab420f7..410c360e7e24 100644 --- a/drivers/iommu/amd/amd_iommu.h +++ b/drivers/iommu/amd/amd_iommu.h @@ -33,7 +33,7 @@ int amd_iommu_prepare(void); int amd_iommu_enable(void); void amd_iommu_disable(void); int amd_iommu_reenable(int mode); -int amd_iommu_enable_faulting(void); +int amd_iommu_enable_faulting(unsigned int cpu); extern int amd_iommu_guest_ir; extern enum io_pgtable_fmt amd_iommu_pgtable; extern int amd_iommu_gpt_level; |