From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Horman Subject: Re: Possible bug with pass-through hot-plug? Date: Thu, 8 Oct 2009 10:41:33 +1100 Message-ID: <20091007234132.GE2055@verge.net.au> References: <8686c3cd0910070200r7f3c59d9o8964ea432372a6b2@mail.gmail.com> <20091007093840.GB18775@verge.net.au> <8686c3cd0910070256p77f58aeat23aea646aaf82b86@mail.gmail.com> <20091007120246.GA5088@verge.net.au> <8686c3cd0910070828v30b1838by29c592bfb18f27c1@mail.gmail.com> <8686c3cd0910070841t2dd45aebx2f8a047477807e41@mail.gmail.com> <20091007225211.GD2055@verge.net.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20091007225211.GD2055@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: Tom Rotenberg Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Thu, Oct 08, 2009 at 09:52:11AM +1100, Simon Horman wrote: > On Wed, Oct 07, 2009 at 05:41:38PM +0200, Tom Rotenberg wrote: > > Just tried it, with xen-unstable changeset: 20249, and it also doesn't work. > > > > When i assigned the device regularly, it was assigned to the virtual > > BDF: 00:04.0, and the detachment worked fine, but when i caused it to > > be registered on the virtual BDF 00:1b.0 - the detachment didn't > > work... > > > > The change i made to the qemu code to make the device to be assigned > > on 00:1b.0, is: > > > > diff --git a/hw/pass-through.c b/hw/pass-through.c > > index 8d80755..2b79812 100644 > > --- a/hw/pass-through.c > > +++ b/hw/pass-through.c > > @@ -974,6 +974,7 @@ int insert_to_pci_devfn(char *bdf_slt) > > return -1; > > } > > > > + devfn = PCI_DEVFN(0x1b,0); > > return __insert_to_pci_devfn(bus, dev, func, devfn, opt); > > > > } > > > > > > Can u please check if it works on your system? > > Sure, will do. Hi Tom, I'm not having any luck reproducing this problem. Could you check which version of qemu-xen you have, mine is commit "allow logdirty commands while paused (unbreaks 60dbe1+8f09f4)" (743edef44f1d0da792aeb38a33bf468a4596f730) of http://xenbits.xensource.com/git-http/qemu-xen-unstable.git I am curious to know what the value of bdf_slt and devfn without your modification. Could you try the following? diff --git a/hw/pass-through.c b/hw/pass-through.c index a97368a..4a5c016 100644 --- a/hw/pass-through.c +++ b/hw/pass-through.c @@ -971,11 +971,15 @@ int insert_to_pci_devfn(char *bdf_slt) int seg, bus, dev, func, devfn; char *opt; + PT_LOG("bdf_slt=\"%s\"\n", bdf_slt); + if ( !parse_bdf(&bdf_slt, &seg, &bus, &dev, &func, &opt, &devfn) ) { return -1; } + PT_LOG("devfn=0x%02x -> slot=0x%02x, func=0x%x\n", + devfn, PCI_SLOT(devfn), PCI_FUNC(devfn)); return __insert_to_pci_devfn(bus, dev, func, devfn, opt); }