Alex Williamson wrote: > On Mon, 2010-06-14 at 08:39 +0200, Markus Armbruster wrote: >> Alex Williamson <alex.williamson@xxxxxxxxxx> writes: >> >>> qdev_get_dev_path() is intended to be the canonical utility for creating >>> a string representing the qdev hierarchy of a device. The path consists >>> of bus and device names as well as identified properties of the immediate >>> parent bus and device. This results in strings like: >>> >>> "/main-system-bus/pci.0,addr=00.0/i440FX" >>> "/main-system-bus/pci.0,addr=01.0/PIIX3" >>> "/main-system-bus/pci.0,addr=02.0/cirrus-vga" >>> "/main-system-bus/pci.0/isa.0/mc146818rtc" >>> "/main-system-bus/pci.0/isa.0/isa-serial" >>> "/main-system-bus/pci.0/isa.0/i8042" >>> "/main-system-bus/pci.0/isa.0/isa-fdc" >>> "/main-system-bus/pci.0,addr=03.0/i82551,mac=52:54:00:12:34:56" >>> "/main-system-bus/pci.0,addr=04.0/virtio-net-pci,mac=52:54:00:12:34:57" >>> "/main-system-bus/pci.0,addr=05.0/e1000,mac=52:54:00:12:34:58" >>> "/main-system-bus/pci.0,addr=06.0/rtl8139,mac=52:54:00:12:34:59" >>> "/main-system-bus/pci.0,addr=07.0/pcnet,mac=52:54:00:12:34:5a" >>> "/main-system-bus/pci.0,addr=01.1/piix3-ide" >>> "/main-system-bus/pci.0,addr=01.3/PIIX4_PM" >>> "/main-system-bus/pci.0,addr=08.0/lsi53c895a" >>> "/main-system-bus/pci.0,addr=09.0/virtio-blk-pci" >>> >>> There are two primary targets for these strings. The first is vmsave, where >>> we currently use a device provided string plus instance number to track >>> SaveStateEntries. This fails when we introduce device hotplug, particularly >>> in a case were we have gaps in the instance numbers that cannot easily be >>> reproduced on a migration target. The second is for naming RAMBlocks. For >>> these, we would like a string that matches the vmstate string. >> Could you explain why you add "identified properties of the immediate >> parent bus and device"? They make the result ver much *not* a "dev >> path" in the qdev sense... > > In order to try to get a unique string. Without looking into device > properties, two e1000s would both be: > > /main-system-bus/pci.0/e1000 > /main-system-bus/pci.0/e1000 > > Which is no better than simply "e1000" and would require us to fall back > to instance ids again. The goal here is that anything that makes use of > passing a dev when registering a vmstate gets an instance id of zero. Will soon (re-)post a patch that adds per-bus instance numbers to deal with identically named devices. That's required as not all buses have canonical node IDs (e.g. ISA or the main system bus). Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html