[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 
users.
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
overrides.

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.

Jan

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.

Suravee


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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