]> xenbits.xensource.com Git - xen.git/commit
VT-d: Don't assume register-based invalidation is always supported
authorChao Gao <chao.gao@intel.com>
Fri, 4 Jun 2021 12:53:25 +0000 (14:53 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 4 Jun 2021 12:53:25 +0000 (14:53 +0200)
commitc2f78b49050335f9a0871263e622d7a10fdccbc4
tree4d0d0562391c199d326d82a801a70c61215c8710
parenta351751d88973da710a3a902a7ced2ede9df78b0
VT-d: Don't assume register-based invalidation is always supported

According to Intel VT-d SPEC rev3.3 Section 6.5, Register-based Invalidation
isn't supported by Intel VT-d version 6 and beyond.

This hardware change impacts following two scenarios: admin can disable
queued invalidation via 'qinval' cmdline and use register-based interface;
VT-d switches to register-based invalidation when queued invalidation needs
to be disabled, for example, during disabling x2apic or during system
suspension or after enabling queued invalidation fails.

To deal with this hardware change, if register-based invalidation isn't
supported, queued invalidation cannot be disabled through Xen cmdline; and
if queued invalidation has to be disabled temporarily in some scenarios,
VT-d won't switch to register-based interface but use some dummy functions
to catch errors in case there is any invalidation request issued when queued
invalidation is disabled.

Signed-off-by: Chao Gao <chao.gao@intel.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
master commit: 6773b1a7584a75a486e9774541ad5bd84c9aa5ee
master date: 2021-04-26 10:16:50 +0200
docs/misc/xen-command-line.pandoc
xen/drivers/passthrough/vtd/iommu.c
xen/drivers/passthrough/vtd/iommu.h
xen/drivers/passthrough/vtd/qinval.c