[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V4 3/7] libxl: add pvusb API [and 1 more messages]
George Dunlap writes ("Re: [Xen-devel] [PATCH V4 3/7] libxl: add pvusb API [and 1 more messages]"): > On 06/16/2015 02:37 PM, Ian Jackson wrote: > > George Dunlap writes ("Re: [Xen-devel] [PATCH V4 3/7] libxl: add pvusb > > API"> >> /sys/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.3/. This > > contains > >> the pci bus address, but it also contains the bus number, which we've > >> just said may be unstable across reboots. > > > > You mean the 2 in `usb2' ? I think that bus number is the bus number > > within the controller, not globally. > > On the contrary: > [...] Oh dear. > In other words, the global bus enumeration leaks its way into the device > path; which means at very least the sysfs device path is potentially > unstable across reboots even if you include the pci controller it's on. How unhelpful. > > Yes. The whole point of paths like this is that they are stable if > > the physical topology doesn't change. So on my netbook > > > > /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 > > > > always refers to the 1st MBR partition on logical device 0 on the USB > > storage device plugged into the USB port physically on the front left > > of the computer. > > That would be great if it were true, but I'm not convinced that the > above path doesn't include a globally-enumerated bus number, which might > change across reboots if it's enumerated in a different order. > > It may be that the format above is *not* based on the sysfs path of the > device; that the '0' immediately after the USB means "the first (and > perhaps only) controller at this PCI address". In which case, yes, > having a string like this might be a unique identifier for a particular > port that would be stable across reboots. That needs some investigation. That does seem to be the case: zealot:~> ls -al /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 lrwxrwxrwx 1 root root 10 Jun 16 16:45 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdc1 zealot:~> ls -al /sys/class/block/sdc lrwxrwxrwx 1 root root 0 Jun 16 16:45 /sys/class/block/sdc -> ../../devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host19/target19:0:0/19:0:0:0/block/sdc/ zealot:~> Observe that the sysfs path contains not only `usb1' (which isn't stable) but also `host19' which is also not stable. If I unplug and replug: zealot:~> ls -al /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 lrwxrwxrwx 1 root root 10 Jun 16 16:49 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdc1 zealot:~> ls -al /sys/class/block/sdc lrwxrwxrwx 1 root root 0 Jun 16 16:50 /sys/class/block/sdc -> ../../devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host20/target20:0:0/20:0:0:0/block/sdc/ zealot:~> Looking at the output of udevadm monitor --property for sdc1 (on another plug): DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host22/target22:0:0/22:0:0:0/block/sdc/sdc1 ID_PATH=pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0 ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_1_0-scsi-0_0_0_0 I don't know where that ID_PATH comes from. I can't seem to find anything relevant in my /sys/devices/pci0000:00/0000:00:1d.7 > > I think the hardware path to the controller, at least, should be > > treated as an opaque OS-specific string. It might have a different > > format on BSD. > > If we can make an actual path that's stable across reboots, that would > certainly be a good thing. But if it's not stable across reboots, it > has no advantage over the bus-port[.port.port] interface. Yes. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |