[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 |