[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH V2] x86/AMD-Vi: Add additional check for invalid special->handle

On 8/29/2013 2:17 AM, Jan Beulich wrote:
On 28.08.13 at 19:34, <suravee.suthikulpanit@xxxxxxx> wrote:
From: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>

This patch add an additional logic to check for the often case when the
special->handle is not initialized due to firmware bugs.
but the special->usedid is correct. If users overide this using the
command line option ivrs_ioapic, then it should use the value instead.
This patch is supposed to follow the patches:
[Xen-devel] [PATCH RFC 2/2] AMD IOMMU: allow command line overrides for
broken IVRS tables

Changes in V2:
        - Fix logic to match the special->used_id with the value provided by 
As said in a previous reply - I'm convinced we can't fix things both
ways with just a single command line option: We need to know
which value to use as anchor (I'd generally think that ought to be
the value inside the square backets) and which value to use as

And since my earlier patch was inspired by the Linux one - I don't
think Linux allows fixing up things the way you try to here either.


Actually, on Linux, the it would try matching the handle (i.e. the value in the square bracket). If it is specified via command line, it will override the value in the IVRS. In case the entry contains the handle value which is not list as IOAPIC in the ACPI APIC table, we should be able to invalidate the entry. This same rule should also apply when users specify invalid handle value. Also, I never see the case where the special->used_id is incorrect. The other case I am seeing is when the IVRS special entry is missing for IOAPIC, which this should already be handled in your original patch.

I have also verified that this works on Linux. For example, on my system, there are 2 IOAPICs with APIC ID 8 and 9 according to the ACPI APIC table. However, in IVRS, the value in both special entries are 0xff. When I give the boot options "ivrs_ioapic[8]=00:14.0 ivrs_ioapic[9]=00:0.1", this allows IOMMU to initialize correctly.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.