# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1231414031 0
# Node ID 97f8d6453fdae1a865a3c875d7b712a494304fb0
# Parent 3a92e1a446d9cfe7524f75d959b21ca7eb042ef6
passthough: MSI-INTx translation documentation
Signed-off-by: Qing He <qing.he@xxxxxxxxx>
---
docs/misc/vtd.txt | 29 +++++++++++++++++++++++++++++
tools/examples/xmexample.hvm | 33 +++++++++++++++++++++++++++++++++
2 files changed, 62 insertions(+)
diff -r 3a92e1a446d9 -r 97f8d6453fda docs/misc/vtd.txt
--- a/docs/misc/vtd.txt Thu Jan 08 11:26:58 2009 +0000
+++ b/docs/misc/vtd.txt Thu Jan 08 11:27:11 2009 +0000
@@ -38,6 +38,30 @@ Add "msi=1" option in kernel line of hos
Add "msi=1" option in kernel line of host grub.
+MSI-INTx translation for passthrough devices in HVM
+---------------------------------------------------
+
+If the assigned device uses a physical IRQ that is shared by more than
+one device among multiple domains, there may be significant impact on
+device performance. Unfortunately, this is quite a common case if the
+IO-APIC (INTx) IRQ is used. MSI can avoid this issue, but was only
+available if the guest enables it.
+
+With MSI-INTx translation turned on, Xen enables device MSI if it's
+available, regardless of whether the guest uses INTx or MSI. If the
+guest uses INTx IRQ, Xen will inject a translated INTx IRQ to guest's
+virtual ioapic whenever an MSI message is received. This reduces the
+interrupt sharing of the system. If the guest OS enables MSI or MSI-X,
+the translation is automatically turned off.
+
+To enable or disable MSI-INTx translation globally, add "pci_msitranslate"
+in the config file:
+ pci_msitranslate = 1 (default is 1)
+
+To override for a specific device:
+ pci = [ '01:00.0,msitranslate=0', '03:00.0' ]
+
+
Caveat on Conventional PCI Device Passthrough
---------------------------------------------
@@ -79,6 +103,11 @@ 2 virtual PCI slots (6~7) are reserved i
3. Attach a PCI device to the guest by the physical BDF and desired virtual
slot(optional). Following command would insert the physical device into guest's
virtual slot 7
[root@vt-vtd ~]# xm pci-attach HVMDomainVtd 0:2:0.0 7
+
+ To specify options for the device, use -o or --options=. Following command
would disable MSI-INTx translation for the device
+
+ [root@vt-vtd ~]# xm pci-attach -o msitranslate=0 0:2:0.0 7
+
VTd hotplug usage model:
------------------------
diff -r 3a92e1a446d9 -r 97f8d6453fda tools/examples/xmexample.hvm
--- a/tools/examples/xmexample.hvm Thu Jan 08 11:26:58 2009 +0000
+++ b/tools/examples/xmexample.hvm Thu Jan 08 11:27:11 2009 +0000
@@ -288,6 +288,39 @@ serial='pty'
# 'x' -> we don't care (do not check)
# 's' -> the bit must be the same as on the host that started this VM
+#-----------------------------------------------------------------------------
+# Configure passthrough PCI{,-X,e} devices:
+#
+# pci=[ '[SSSS:]BB:DD.F[,option1[,option2[...]]]', ... ]
+#
+# [SSSS]:BB:DD.F "bus segment:bus:device.function"(1) of the device to
+# be assigned, bus segment is optional. All fields are
+# in hexadecimal and no field should be longer than that
+# as shown in the pattern. Successful assignment may need
+# certain hardware support and additional configurations
+# (e.g. VT-d, see docs/misc/vtd.txt for more details).
+#
+# (1) bus segment is sometimes also referred to as the PCI "domain",
+# not to be confused with Xen domain.
+#
+#
+# optionN per-device options in "key=val" format. Current
+# available options are:
+# - msitranslate=0|1
+# per-device overriden of pci_msitranslate, see below
+#
+#pci=[ '07:00.0', '07:00.1' ]
+
+# MSI-INTx translation for MSI capable devices:
+#
+# If it's set, Xen will enable MSI for the device that supports it even
+# if the guest don't use MSI. In the case, an IO-APIC type interrupt will
+# be injected to the guest every time a corresponding MSI message is
+# received.
+# If the guest enables MSI or MSI-X, the translation is automatically
+# turned off.
+#
+#pci_msitranslate=1
#-----------------------------------------------------------------------------
# Configure PVSCSI devices:
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|