Messages in this thread | | | Date | Tue, 14 Jun 2022 09:36:16 +0800 | Subject | Re: [PATCH v2] iommu/vt-d: Make DMAR_UNITS_SUPPORTED a config setting | From | Baolu Lu <> |
| |
On 2022/6/14 04:57, Jerry Snitselaar wrote: > On Thu, May 12, 2022 at 10:13:09AM -0500, Steve Wahl wrote: >> To support up to 64 sockets with 10 DMAR units each (640), make the >> value of DMAR_UNITS_SUPPORTED adjustable by a config variable, >> CONFIG_DMAR_UNITS_SUPPORTED, and make it's default 1024 when MAXSMP is >> set. >> >> If the available hardware exceeds DMAR_UNITS_SUPPORTED (previously set >> to MAX_IO_APICS, or 128), it causes these messages: "DMAR: Failed to >> allocate seq_id", "DMAR: Parse DMAR table failure.", and "x2apic: IRQ >> remapping doesn't support X2APIC mode x2apic disabled"; and the system >> fails to boot properly. >> >> Signed-off-by: Steve Wahl <steve.wahl@hpe.com> >> --- >> >> Note that we could not find a reason for connecting >> DMAR_UNITS_SUPPORTED to MAX_IO_APICS as was done previously. Perhaps >> it seemed like the two would continue to match on earlier processors. >> There doesn't appear to be kernel code that assumes that the value of >> one is related to the other. >> >> v2: Make this value a config option, rather than a fixed constant. The default >> values should match previous configuration except in the MAXSMP case. Keeping the >> value at a power of two was requested by Kevin Tian. >> >> drivers/iommu/intel/Kconfig | 6 ++++++ >> include/linux/dmar.h | 6 +----- >> 2 files changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/iommu/intel/Kconfig b/drivers/iommu/intel/Kconfig >> index 247d0f2d5fdf..fdbda77ac21e 100644 >> --- a/drivers/iommu/intel/Kconfig >> +++ b/drivers/iommu/intel/Kconfig >> @@ -9,6 +9,12 @@ config DMAR_PERF >> config DMAR_DEBUG >> bool >> >> +config DMAR_UNITS_SUPPORTED >> + int "Number of DMA Remapping Units supported" > > Also, should there be a "depends on (X86 || IA64)" here?
Do you have any compilation errors or warnings?
Best regards, baolu
> >> + default 1024 if MAXSMP >> + default 128 if X86_64 >> + default 64 >> + >> config INTEL_IOMMU >> bool "Support for Intel IOMMU using DMA Remapping Devices" >> depends on PCI_MSI && ACPI && (X86 || IA64) >> diff --git a/include/linux/dmar.h b/include/linux/dmar.h >> index 45e903d84733..0c03c1845c23 100644 >> --- a/include/linux/dmar.h >> +++ b/include/linux/dmar.h >> @@ -18,11 +18,7 @@ >> >> struct acpi_dmar_header; >> >> -#ifdef CONFIG_X86 >> -# define DMAR_UNITS_SUPPORTED MAX_IO_APICS >> -#else >> -# define DMAR_UNITS_SUPPORTED 64 >> -#endif >> +#define DMAR_UNITS_SUPPORTED CONFIG_DMAR_UNITS_SUPPORTED >> >> /* DMAR Flags */ >> #define DMAR_INTR_REMAP 0x1 >> -- >> 2.26.2 >> >
| |