|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata
>>> On 14.01.11 at 00:40, "Kay, Allen M" <allen.m.kay@xxxxxxxxx> wrote:
>+static void snb_vtd_ops_preamble(struct iommu* iommu)
>+{
>+ struct intel_iommu *intel = iommu->intel;
>+ struct acpi_drhd_unit *drhd = intel ? intel->drhd : NULL;
>+ s_time_t start_time;
>+
>+ if ( !is_igd_drhd(drhd) || !is_snb_gfx )
>+ return;
>+
>+ if ( !map_igd_reg() )
>+ return;
>+
>+ *((volatile u32 *)(igd_reg_va + 0x54)) = 0x000FFFFF;
>+ *((volatile u32 *)(igd_reg_va + 0x700)) = 0;
>+
>+ start_time = NOW();
>+ while ( (*((volatile u32 *)(igd_reg_va + 0x2AC)) & 0xF) != 0 )
>+ {
>+ if ( NOW() > start_time + DMAR_OPERATION_TIMEOUT )
>+ {
>+ dprintk(XENLOG_INFO VTDPREFIX,
>+ "snb_vtd_ops_preamble: failed to disable idle
>handshake\n");
>+ break;
>+ }
>+ cpu_relax();
>+ }
>+
>+ *((volatile u32*)(igd_reg_va + 0x50)) = 0x10001;
>+}
>+
>+static void snb_vtd_ops_postamble(struct iommu* iommu)
>+{
>+ struct intel_iommu *intel = iommu->intel;
>+ struct acpi_drhd_unit *drhd = intel ? intel->drhd : NULL;
>+
>+ if ( !is_igd_drhd(drhd) || !is_snb_gfx )
>+ return;
>+
>+ if ( !map_igd_reg() )
>+ return;
>+
>+ *((volatile u32 *)(igd_reg_va + 0x54)) = 0xA;
>+ *((volatile u32 *)(igd_reg_va + 0x50)) = 0x10000;
>+}
Isn't there a risk that these MMIO writes interfere with the
operation of the actual driver running in a domain?
And even just in Xen itself, how do these writes get
synchronized? Callers of vtd_ops_preamble_quirk() don't
appear to be required to hold any particular lock.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Kay, Allen M
- [Xen-devel] Re: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation,
Jan Beulich <=
- [Xen-devel] RE: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Kay, Allen M
- [Xen-devel] RE: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Jan Beulich
- [Xen-devel] RE: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Kay, Allen M
- [Xen-devel] RE: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Jan Beulich
- [Xen-devel] RE: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Kay, Allen M
|
Previous by Date: |
[Xen-devel] RE: [PATCH] mem_sharing: fix race condition of nominate and unshare, MaoXiaoyun |
Next by Date: |
[Xen-devel] [xen-unstable test] 5021: tolerable FAIL - PUSHED, xen . org |
Previous by Thread: |
[Xen-devel] [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Kay, Allen M |
Next by Thread: |
[Xen-devel] RE: [PATCH][VTD][QUIRK] added quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation, Kay, Allen M |
Indexes: |
[Date]
[Thread]
[Top]
[All Lists] |
|
|
|
|