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] Possible bug with pass-through hot-plug?

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);
 
 }


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