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

Re: [Xen-devel] [rfc 2/2 v2] xend: Use AUTO_PHP_SLOT_STR=0xff rather tha

To: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [rfc 2/2 v2] xend: Use AUTO_PHP_SLOT_STR=0xff rather than0x0 for auto slot allocation
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Mon, 16 Mar 2009 11:03:12 +1100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Sun, 15 Mar 2009 17:03:42 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20090313214943.GA3656@xxxxxxxxxxxx>
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: <20090313070734.348651099@xxxxxxxxxxxx> <20090313071336.753119578@xxxxxxxxxxxx> <A5C9A3BA3FDD92kanno.masaki@xxxxxxxxxxxxxx> <20090313214943.GA3656@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
Rather than use "0x0" to signify that the hotplug slot should
be automatically selected by qemu-dm, define AUTO_PHP_SLOT_STR.

At the same time, change the magic value form 0x0 to 0xff,
in line with changes made to qemu-dm to allow any unused PCI
device to be used for hotplug.

Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>

--- 

 tools/python/xen/xend/XendConstants.py  |    3 +++
 tools/python/xen/xend/XendDomainInfo.py |    4 ++--
 tools/python/xen/xend/server/pciif.py   |    3 ++-
 tools/python/xen/xm/main.py             |    2 +-
 4 files changed, 8 insertions(+), 4 deletions(-)

* Fri, 13 Mar 2009 18:07:36 +1100
  Initial public release

* Mon, 16 Mar 2009 10:59:53 +1100
  Put constancs in python/xen/xend/XendConstants.py instead
  of tools/python/xen/util/xsconstants.py which is for security constants.

  As suggested by Masaki Kanno along with other possible locations:
  tools/python/xen/util/pci.py
  tools/python/xen/xend/server/DevConstants.py

  XendConstants.py seemed most appropriate to me.

Index: xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/XendDomainInfo.py        
2009-03-16 10:08:40.000000000 +1100
+++ xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py     2009-03-16 
10:35:59.000000000 +1100
@@ -793,7 +793,7 @@ class XendDomainInfo:
                 existing_dev_uuid = sxp.child_value(existing_dev_info, 'uuid')
                 existing_pci_conf = self.info['devices'][existing_dev_uuid][1]
                 existing_pci_devs = existing_pci_conf['devs']
-                vslt = '0x0'
+                vslt = AUTO_PHP_SLOT_STR
                 for x in existing_pci_devs:
                     if ( int(x['domain'], 16) == int(dev['domain'], 16) and
                          int(x['bus'], 16) == int(dev['bus'], 16) and
@@ -801,7 +801,7 @@ class XendDomainInfo:
                          int(x['func'], 16) == int(dev['func'], 16) ):
                         vslt = x['vslt']
                         break
-                if vslt == '0x0':
+                if vslt == AUTO_PHP_SLOT_STR:
                     raise VmError("Device %04x:%02x:%02x.%01x is not connected"
                                   % (int(dev['domain'],16), int(dev['bus'],16),
                                      int(dev['slot'],16), int(dev['func'],16)))
Index: xen-unstable.hg/tools/python/xen/xend/server/pciif.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/server/pciif.py  2009-03-16 
10:08:40.000000000 +1100
+++ xen-unstable.hg/tools/python/xen/xend/server/pciif.py       2009-03-16 
10:23:21.000000000 +1100
@@ -24,6 +24,7 @@ from xen.xend import sxp
 from xen.xend import arch
 from xen.xend.XendError import VmError
 from xen.xend.XendLogging import log
+from xen.xend.XendConstants import *
 
 from xen.xend.server.DevController import DevController
 from xen.xend.server.DevConstants import xenbusState
@@ -218,7 +219,7 @@ class PciController(DevController):
                     try:
                         dev_dict['vslt'] = slot_list[i]
                     except IndexError:
-                        dev_dict['vslt'] = '0x0'
+                        dev_dict['vslt'] = AUTO_PHP_SLOT_STR
 
                 pci_devs.append(dev_dict)
 
Index: xen-unstable.hg/tools/python/xen/xm/main.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xm/main.py    2009-03-16 
10:08:40.000000000 +1100
+++ xen-unstable.hg/tools/python/xen/xm/main.py 2009-03-16 10:51:59.000000000 
+1100
@@ -2456,7 +2456,7 @@ def parse_pci_configuration(args, state,
     if len(args) == 3:
         vslt = args[2]
     else:
-        vslt = '0x0' #chose a free virtual PCI slot
+        vslt = AUTO_PHP_SLOT_STR
     pci=['pci']
     pci_match = re.match(r"((?P<domain>[0-9a-fA-F]{1,4})[:,])?" + \
             r"(?P<bus>[0-9a-fA-F]{1,2})[:,]" + \
Index: xen-unstable.hg/tools/python/xen/xend/XendConstants.py
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/xend/XendConstants.py 2009-03-16 
10:52:21.000000000 +1100
+++ xen-unstable.hg/tools/python/xen/xend/XendConstants.py      2009-03-16 
10:53:03.000000000 +1100
@@ -135,3 +135,6 @@ VTPM_DELETE_SCRIPT = '/etc/xen/scripts/v
 
 XS_VMROOT = "/vm/"
 
+NR_PCI_DEV = 32
+AUTO_PHP_SLOT = NR_PCI_DEV
+AUTO_PHP_SLOT_STR = "%02x" % NR_PCI_DEV

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