[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] passthough: MSI-INTx translation documentation



# 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


 


Rackspace

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