WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 5/6] pci: add config options for MSI-INTx translation

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 5/6] pci: add config options for MSI-INTx translation in HVM
From: Qing He <qing.he@xxxxxxxxx>
Date: Thu, 8 Jan 2009 17:06:48 +0800
Cc: Qing He <qing.he@xxxxxxxxx>
Delivery-date: Thu, 08 Jan 2009 01:07:37 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1231405609-23138-1-git-send-email-qing.he@xxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1231405609-23138-1-git-send-email-qing.he@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
pci: add config options for MSI-INTx translation in HVM

Add a config file option 'pci_msitranslate' to enable MSI-INTx translation
in HVM, and also a per-device option 'msitranslate' to allow device based
overriden

Signed-off-by: Qing He <qing.he@xxxxxxxxx>
---

diff -r 82b05ac013fc -r b0a4862c9018 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Thu Jan 08 02:09:19 2009 +0800
+++ b/tools/python/xen/xend/XendConfig.py       Thu Jan 08 02:13:31 2009 +0800
@@ -166,6 +166,7 @@
     'guest_os_type': str,
     'hap': int,
     'xen_extended_power_mgmt': int,
+    'pci_msitranslate': int,
 }
 
 # Xen API console 'other_config' keys.
diff -r 82b05ac013fc -r b0a4862c9018 tools/python/xen/xend/server/pciif.py
--- a/tools/python/xen/xend/server/pciif.py     Thu Jan 08 02:09:19 2009 +0800
+++ b/tools/python/xen/xend/server/pciif.py     Thu Jan 08 02:13:31 2009 +0800
@@ -95,6 +95,9 @@
 
         back['num_devs']=str(pcidevid)
         back['uuid'] = config.get('uuid','')
+        if 'pci_msitranslate' in self.vm.info['platform']:
+            
back['msitranslate']=str(self.vm.info['platform']['pci_msitranslate'])
+
         return (0, back, {})
 
 
diff -r 82b05ac013fc -r b0a4862c9018 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Thu Jan 08 02:09:19 2009 +0800
+++ b/tools/python/xen/xm/create.py     Thu Jan 08 02:13:31 2009 +0800
@@ -318,11 +318,14 @@
           backend driver domain to use for the disk.
           The option may be repeated to add more than one disk.""")
 
-gopts.var('pci', val='BUS:DEV.FUNC',
+gopts.var('pci', val='BUS:DEV.FUNC[,msitranslate=0|1]',
           fn=append_value, default=[],
           use="""Add a PCI device to a domain, using given params (in hex).
-         For example 'pci=c0:02.1'.
-         The option may be repeated to add more than one pci device.""")
+          For example 'pci=c0:02.1'.
+          If msitranslate is set, MSI-INTx translation is enabled if possible.
+          Guest that doesn't support MSI will get IO-APIC type IRQs
+          translated from physical MSI, HVM only. Default is 1.
+          The option may be repeated to add more than one pci device.""")
 
 gopts.var('vscsi', val='PDEV,VDEV[,DOM]',
           fn=append_value, default=[],
@@ -588,6 +591,11 @@
           fn=set_bool, default=None,
           use="""Do not inject spurious page faults into this guest""")
 
+gopts.var('pci_msitranslate', val='TRANSLATE',
+          fn=set_int, default=1,
+          use="""Global PCI MSI-INTx translation flag (0=disable;
+          1=enable.""")
+
 def err(msg):
     """Print an error to stderr and exit.
     """
@@ -672,6 +680,9 @@
         d = comma_sep_kv_to_dict(opts)
 
         def f(k):
+            if k not in ['msitranslate']:
+                err('Invalid pci option: ' + k)
+
             config_pci_opts.append([k, d[k]])
 
         config_pci_bdf = ['dev', ['domain', domain], ['bus', bus], \
@@ -878,7 +889,7 @@
              'sdl', 'display', 'xauthority', 'rtc_timeoffset', 'monitor',
              'acpi', 'apic', 'usb', 'usbdevice', 'keymap', 'pci', 'hpet',
              'guest_os_type', 'hap', 'opengl', 'cpuid', 'cpuid_check',
-             'viridian', 'xen_extended_power_mgmt' ]
+             'viridian', 'xen_extended_power_mgmt', 'pci_msitranslate' ]
 
     for a in args:
         if a in vals.__dict__ and vals.__dict__[a] is not None:
diff -r 82b05ac013fc -r b0a4862c9018 tools/python/xen/xm/xenapi_create.py
--- a/tools/python/xen/xm/xenapi_create.py      Thu Jan 08 02:09:19 2009 +0800
+++ b/tools/python/xen/xm/xenapi_create.py      Thu Jan 08 02:13:31 2009 +0800
@@ -1041,6 +1041,7 @@
             'vhpt',
             'guest_os_type',
             'hap',
+            'pci_msitranslate',
         ]
 
         platform_configs = []

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel