On Thu, 2010-03-11 at 10:11 +0800, Weidong Han wrote:
> Alex, you are right. IOAPICs can be included in any DRHDs. Pls try
> following patch, if no problem, I will submit it.
Thanks Weidong. This of course works, but I still get this output:
(XEN) IOAPIC: apic_id 8, version 32, address 0xfec00000, GSI 0-23
(XEN) IOAPIC: apic_id 0, version 32, address 0xfec08000, GSI 24-47
(XEN) IOAPIC: apic_id 10, version 32, address 0xfec10000, GSI 48-71
(XEN) Enabling APIC mode: Phys. Using 3 I/O APICs
(XEN) [VT-D]dmar.c:421: Non-existent device (84:13.0) is reported in this
(XEN) [VT-D]dmar.c:442: There are devices under device scope are not PCI
discoverable! if xen fails at VT-d enabling, pls try option
So now we've effectively relegated this code to printing things that
look like errors for both actual bad DMAR tables and 100% spec compliant
tables. At a minimum, I think these dprintks need to be reduce to info
or debug level since they're effectively just spewing out noise. Can't
we put a tag for the device type in the list of scope devices and skip
checking discoverable PCI devices for IOAPICs? Do we need to do the
same for HPETs? Thanks,
> diff -r cadf1bae9ee2 xen/drivers/passthrough/vtd/dmar.c
> --- a/xen/drivers/passthrough/vtd/dmar.c Thu Feb 25 18:26:45 2010 +0800
> +++ b/xen/drivers/passthrough/vtd/dmar.c Thu Mar 11 17:49:40 2010 +0800
> @@ -437,11 +437,9 @@ acpi_parse_one_drhd(struct acpi_dmar_ent
> dprintk(XENLOG_WARNING VTDPREFIX,
> - " The DRHD is invalid due to there are devices under "
> - "its scope are not PCI discoverable! Pls try option "
> - "iommu=force or iommu=workaround_bios_bug if you "
> - "really want VT-d\n");
> - ret = -EINVAL;
> + " There are devices under device scope are not PCI "
> + "discoverable! if xen fails at VT-d enabling, pls try "
> + "option iommu=workaround_bios_bug.\n");
Xen-devel mailing list