From: Quan Xu <quan.xu@intel.com>
To: xen-devel@lists.xen.org
Cc: dario.faggioli@citrix.com, Quan Xu <quan.xu@intel.com>
Subject: [PATCH v5 00/10] Check VT-d Device-TLB flush error
Date: Wed, 18 May 2016 16:08:21 +0800 [thread overview]
Message-ID: <1463558911-98187-1-git-send-email-quan.xu@intel.com> (raw)
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
next reply other threads:[~2016-05-18 8:08 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-18 8:08 Quan Xu [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1463558911-98187-1-git-send-email-quan.xu@intel.com \
--to=quan.xu@intel.com \
--cc=dario.faggioli@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).