[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Bug in usbdevices option handling when BusID=8



On Thu, Dec 12, 2013 at 05:29:09PM +0000, George Dunlap wrote:
> On 12/12/2013 05:01 PM, Anthony PERARD wrote:
> >On Mon, Aug 05, 2013 at 08:20:08PM +0100, Gordan Bobic wrote:
> >>On 08/05/2013 02:22 PM, George Dunlap wrote:
> >>>On Mon, Aug 5, 2013 at 8:29 AM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> 
> >>>wrote:
> >>>>On Sun, 2013-08-04 at 12:08 +0100, Gordan Bobic wrote:
> >>>>>At a glance, this looks like something buggy happens when BusID=8. It
> >>>>>sees that the device is host:008.002, but then goes and tries to open
> >>>>>/dev/bus/usb/000/002 instead of /dev/bus/usb/008/002.
> >>>>Smells like a bitmask gone wrong somewhere, or something like that.
> >>>>
> >>>>xl/libxl doesn't really do much with the string which you passed in so
> >>>>it should be going straight to qemu unmodified. You ought to be able to
> >>>>see this in the logs I think.
> >>>Or using ps -ax -- what does that show the command-line to be?
> >>It looks like a qemu-traditional (qemu-dm) issue:
> >>
> >># grep usb /var/log/xen/qemu-dm-edi.log
> >>husb: open device 0.2
> >>/dev/bus/usb/000/002: No such file or directory
> >>
> >># ps auxw | grep qemu
> >>root      8364  4.4  0.0 239132  8880 ?        SLsl 20:16   0:07
> >>/usr/lib/xen/bin/qemu-dm -d 1 -domain-name edi -vnc 127.0.0.1:0 -vncunused
> >>-k en-gb -serial pty -videoram 8 -std-vga -boot c -usb -usbdevice
> >>host:008.002 -acpi -vcpus 8 -vcpu_avail 0xff -net
> >>nic,vlan=0,macaddr=00:16:3e:4e:c5:0c,model=e1000 -net
> >>tap,vlan=0,ifname=vif1.0-emu,bridge=br0,script=no,downscript=no -M xenfv
> >I've just look into this bug. The problem is the way the convertion of
> >the string is done. And it is just a:
> >strtoul(devname, NULL, 0);
> >
> >Here, strtoul while try to guess the base of the string, and a string
> >that begin by zero while be interpreted to be base 8, or octal. The
> >character '8' those not belong to this base, so the conversion stop
> >before '8' and the value return is 0.
> >
> >We could force the base to be 10, but that mean that anyone who whould
> >have something like "host:0x4.0x2" while have a configuration that those
> >not work anymore.
> >
> >In your case, you can have:
> >usbdevice="host:8.2" which will fix the issue.
> 
> What does qemu-xen do?

QEMU does exactly the same.

> I'm not sure "host:0x04.0x2" is a supported format.

I'm not actually sure which format is supported. Here is a list of
format I could find.
- man qemu
host:bus.addr

That the only place I find this format. Most webpage I could find use
host:vendor_id:product_id format. Even xen documentation use it (before
to send the user to man qemu):

- man xl.cfg
Host devices can also be passed through in this way, by specifying
host:USBID, where USBID is of the form xxxx:yyyy.  The USBID can
typically be found by using lsusb or usb-devices.

> You can see that "00x"
> is used in Linux in /dev; it's also used in lsusb, for instance, and I think
> a number of the other tools.  I think it would make much more sense to match
> the format of these other tools, than to allow people to specify it in hex
> (using "0x") and have people trip over issues like this.

Yes, I see the point.

Well, with whatever supported format I could come up with, I suppose we
can handle something like host:009.003 as 9.3 with no issue on
qemu-traditional. I don't know if we can do the same for QEMU.

-- 
Anthony PERARD

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.