|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v5 00/10] Check VT-d Device-TLB flush error
This patch set is a prereq patch set for Patch:'VT-d Device-TLB flush issue'.
While IOMMU Device-TLB flush timed out, xen calls panic() at present. However
the existing panic()
is going to be eliminated, so we must propagate the IOMMU Device-TLB flush
error up to the call trees.
This patch set is also based on the discussion of 'abstract model of IOMMU
unmaping/mapping failures'
--Changes in v5:
patch 1:
* add the missing blank line.
* add comments.
* if iommu_flush_context_device failed, continue to flush IOMMU IOTLB on a
best effort basis.
* __defer__ to:
- rename __intel_iommu_iotlb_flush to iommu_flush_iotlb
- rename intel_iommu_iotlb_flush to iommu_flush_iotlb_pages
- rename intel_iommu_iotlb_flush_all to iommu_flush_iotlb_all
- add __must_check annotation
in patch 7 / 8,
otherwise, this will disrupt the order due to __must_check annotation.
patch 2:
* enhance the logging.
* state why no spamming can occur in commit message.
patch 3:
* keep the "rc == 0" untouched.
* add __must_check annotation.
* restricting the scope of "ret" to the innermost block.
* in ept_set_entry(), in the case of iommu_map_page(), just use rc directly
and not
bother using ret at all.
patch 4:
* add __must_check annotation.
patch 5:
* add __must_check annotation.
patch 6:
* switch the two sides of the && for "if ( rc >= 0 && unlikely(ret) )".
* remove redundant __must_check.
patch 7:
* rename __intel_iommu_iotlb_flush to iommu_flush_iotlb.
* rename intel_iommu_iotlb_flush to iommu_flush_iotlb_pages.
* rename intel_iommu_iotlb_flush_all to iommu_flush_iotlb_all.
* add __must_check annotation.
patch 8:
* change ret to rc.
patch 9:
* change 'enum dev_power_type' to 'enum dev_power_saved'.
* change 'TYPE_*' to 'SAVED_*'
* drop '*_UNKNOWN' in enum.
* change 'should' to 'cannot' for comment.
* reorder in device_power_up().
* enhance logging message.
patch 10:
* if an earlier error occurred ( rc != 0 ), no use in calling me_wifi_quirk().
Quan Xu (10):
vt-d: fix the IOMMU flush issue
IOMMU: handle IOMMU mapping and unmapping failures
IOMMU/MMU: enhance the call trees of IOMMU unmapping and mapping
IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU unmapping.
IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU mapping.
IOMMU/MMU: propagate IOMMU Device-TLB flush error up to
iommu_iotlb_flush{,_all} (top level ones).
IOMMU: propagate IOMMU Device-TLB flush error up to
iommu_iotlb_flush{,_all} (leaf ones).
vt-d/ept: propagate IOMMU Device-TLB flush error up to EPT update.
IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU suspending
vt-d: propagate error up to ME phantom function mapping and unmapping
xen/arch/arm/p2m.c | 5 +-
xen/arch/x86/acpi/power.c | 72 +++++++---
xen/arch/x86/mm.c | 18 ++-
xen/arch/x86/mm/p2m-ept.c | 39 +++--
xen/arch/x86/mm/p2m-pt.c | 28 +++-
xen/arch/x86/mm/p2m.c | 34 ++++-
xen/common/memory.c | 20 ++-
xen/drivers/passthrough/amd/iommu_init.c | 9 +-
xen/drivers/passthrough/amd/pci_amd_iommu.c | 19 ++-
xen/drivers/passthrough/arm/smmu.c | 19 +--
xen/drivers/passthrough/iommu.c | 66 +++++++--
xen/drivers/passthrough/vtd/extern.h | 3 +-
xen/drivers/passthrough/vtd/iommu.c | 199 ++++++++++++++++++--------
xen/drivers/passthrough/vtd/quirks.c | 28 ++--
xen/drivers/passthrough/x86/iommu.c | 5 +-
xen/include/asm-x86/hvm/svm/amd-iommu-proto.h | 4 +-
xen/include/asm-x86/iommu.h | 3 +-
xen/include/asm-x86/p2m.h | 12 +-
xen/include/xen/iommu.h | 22 +--
19 files changed, 441 insertions(+), 164 deletions(-)
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |