[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 6/6] passthough: MSI-INTx translation documentation
passthough: MSI-INTx translation documentation Signed-off-by: Qing He <qing.he@xxxxxxxxx> --- diff -r c4ef5731a992 -r 80fcb0b96801 docs/misc/vtd.txt --- a/docs/misc/vtd.txt Wed Jan 07 07:39:55 2009 +0800 +++ b/docs/misc/vtd.txt Wed Jan 07 20:35:11 2009 +0800 @@ -38,6 +38,30 @@ 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 @@ 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 c4ef5731a992 -r 80fcb0b96801 tools/examples/xmexample.hvm --- a/tools/examples/xmexample.hvm Wed Jan 07 07:39:55 2009 +0800 +++ b/tools/examples/xmexample.hvm Wed Jan 07 20:35:11 2009 +0800 @@ -288,6 +288,39 @@ # '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-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |