From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhai, Edwin" Subject: Re: Bug in pci-detach (Was: Re: Re: VT-d HowTo Update) Date: Wed, 22 Apr 2009 11:37:30 +0800 Message-ID: <49EE90FA.8000700@intel.com> References: <20090422014446.GA30419@verge.net.au> <20090422025000.GA7916@verge.net.au> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20090422025000.GA7916@verge.net.au> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Simon Horman Cc: "Han, Weidong" , "xen-devel@lists.xensource.com" , Christian Tramnitz , Keir Fraser , "Cui, Dexuan" List-Id: xen-devel@lists.xenproject.org Simon Horman wrote: > Hi, > > I've poked a little further into this and the problem is partly > a missunderstanding on my part. > > In the case where a function is specified in the hvm.conf in > the form BUS:DEV:FUNC (e.g. 00:1d.0), then there is a check inside > xm that prevents the function from subsequently being hot-unplugged. > The check is that the vslot number is set to auto-select. And presumably > the idea was that statically assigned devices couldn't be hot-unplugged, > which to be honest was my initial assumption of how things work. > All assigned device should not has a "auto-select" vslot after being assigned to guest, so I'm curious which lead this "auto-select". Static assigned device also support hotplug, because qemu will select then return the vslot to xend. > If, however, the function in the hvm.conf is of the form BUS:DEV:FUNC@VSLOT > (e.g. 00:1d.00@1e) which I added recently, then the check is bypassed, > because vslot is set to 1e not auto. This is how I was doing my tests. I > assumed this was the behaviour for all cases, and documented it as such. > > This leaves us with 3 choices: > > 1. Leave the inconsistency, which seems like a bad idea. > 2. Add a check to make sure both forms can't be hot-unplugged > This is more work than; > 3. Remove the check and allow statically assigned devies to be removed. > This seems like a good option, and if there is consensus I can > fix this up into a propper patch. > > diff -r 6ba4e34d21d3 tools/python/xen/xend/XendDomainInfo.py > --- a/tools/python/xen/xend/XendDomainInfo.py Tue Apr 21 16:31:26 2009 +0100 > +++ b/tools/python/xen/xend/XendDomainInfo.py Wed Apr 22 12:42:58 2009 +1000 > @@ -1092,9 +1092,6 @@ > if devnum >= pci_len: > raise VmError("Device @ vslot 0x%x doesn't exist." % (vslot)) > > - if vslot == AUTO_PHP_SLOT: > - raise VmError("Device @ vslot 0x%x doesn't support hotplug." % (vslot)) > - > # Check the co-assignment. > # To pci-detach a device D from domN, we should ensure: for each DD in the > # list of D's co-assignment devices, DD is not assigned (to domN). > > -- best rgds, edwin