[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

 


Rackspace

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