All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/10] Check VT-d Device-TLB flush error
@ 2016-05-18  8:08 Quan Xu
  2016-05-18  8:08 ` [PATCH v5 01/10] vt-d: fix the IOMMU flush issue Quan Xu
                   ` (10 more replies)
  0 siblings, 11 replies; 50+ messages in thread
From: Quan Xu @ 2016-05-18  8:08 UTC (permalink / raw)
  To: xen-devel; +Cc: dario.faggioli, Quan Xu

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@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2016-05-26 16:20 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-18  8:08 [PATCH v5 00/10] Check VT-d Device-TLB flush error Quan Xu
2016-05-18  8:08 ` [PATCH v5 01/10] vt-d: fix the IOMMU flush issue Quan Xu
2016-05-23 13:30   ` Jan Beulich
2016-05-23 15:22     ` Xu, Quan
2016-05-23 15:43       ` Jan Beulich
2016-05-25  8:04         ` Xu, Quan
2016-05-25  8:29           ` Jan Beulich
2016-05-25  8:53             ` Xu, Quan
2016-05-26 10:37             ` Xu, Quan
2016-05-26 14:37               ` Xu, Quan
2016-05-26 15:56               ` Jan Beulich
2016-05-26 16:20                 ` Xu, Quan
2016-05-26  6:20     ` Xu, Quan
2016-05-18  8:08 ` [PATCH v5 02/10] IOMMU: handle IOMMU mapping and unmapping failures Quan Xu
2016-05-23 13:40   ` Jan Beulich
2016-05-24  9:09     ` Xu, Quan
2016-05-18  8:08 ` [PATCH v5 03/10] IOMMU/MMU: enhance the call trees of IOMMU unmapping and mapping Quan Xu
2016-05-23 14:19   ` Jan Beulich
2016-05-25 15:34     ` Xu, Quan
2016-05-25 16:01       ` Jan Beulich
2016-05-26  1:42         ` Xu, Quan
2016-05-26 15:49           ` Jan Beulich
2016-05-18  8:08 ` [PATCH v5 04/10] IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU unmapping Quan Xu
2016-05-18  8:08 ` [PATCH v5 05/10] IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU mapping Quan Xu
2016-05-23 15:53   ` Jan Beulich
2016-05-24  9:01     ` Xu, Quan
2016-05-24  9:09       ` Jan Beulich
2016-05-24  9:14         ` Xu, Quan
2016-05-18  8:08 ` [PATCH v5 06/10] IOMMU/MMU: propagate IOMMU Device-TLB flush error up to iommu_iotlb_flush{, _all} (top level ones) Quan Xu
2016-05-23 16:05   ` Jan Beulich
2016-05-24  1:16     ` Xu, Quan
2016-05-24  7:01       ` Jan Beulich
2016-05-24  7:08         ` Tian, Kevin
2016-05-24  8:11           ` Xu, Quan
2016-05-24  8:34             ` Jan Beulich
2016-05-24  8:44               ` Xu, Quan
2016-05-18  8:08 ` [PATCH v5 07/10] IOMMU: propagate IOMMU Device-TLB flush error up to iommu_iotlb_flush{, _all} (leaf ones) Quan Xu
2016-05-24  3:42   ` Xu, Quan
2016-05-24  7:52     ` Jan Beulich
2016-05-18  8:08 ` [PATCH v5 08/10] vt-d/ept: propagate IOMMU Device-TLB flush error up to EPT update Quan Xu
2016-05-24  7:58   ` Jan Beulich
2016-05-18  8:08 ` [PATCH v5 09/10] IOMMU: propagate IOMMU Device-TLB flush error up to IOMMU suspending Quan Xu
2016-05-24  8:21   ` Jan Beulich
2016-05-25  6:41     ` Xu, Quan
2016-05-25  8:06       ` Jan Beulich
2016-05-25 15:13         ` Xu, Quan
2016-05-18  8:08 ` [PATCH v5 10/10] vt-d: propagate error up to ME phantom function mapping and unmapping Quan Xu
2016-05-24  8:28   ` Jan Beulich
2016-05-18 10:20 ` [PATCH v5 00/10] Check VT-d Device-TLB flush error Jan Beulich
2016-05-18 12:13   ` Xu, Quan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.