All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/5] Introduce canonical device hierarchy string
@ 2010-06-14  5:51 ` Alex Williamson
  0 siblings, 0 replies; 160+ messages in thread
From: Alex Williamson @ 2010-06-14  5:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: kvm, avi, anthony, paul, kraxel, chrisw, alex.williamson

This is a follow-up to my ramblock overhaul RFC series.  In trying to
come up with a useful name to give to a ramblock, we seemed to be leaning
towards something that represents the existing qdev hierarchy rather
than creating an arbitrary new namespace.  I had some pointers that I
should use the savevm name/instance in the interim, but that has a number
of issues (private to savevm, typically setup too late, inconsistent).

So, I decided to look at what should the savevm string be, with hopes that
if we could figure that out, we can then stuff the resulting string into
both the savevm list and the ramblocks.  This is a stab at doing that.

My premise with this attempt is that we walk the hierarchy and use the
names to create the base of the path.  As we get to the device,
particularly to the parent bus of the device, we need to start looking at
properties to ensure uniqueness.  However, we don't want to use all the
properties or else any properties added or removed from a device will cause
migration failures.  For now, the only properties I've tagged as path
properties are PCI bus addresses and MAC addresses.  It turns out the MAC
isn't needed in most cases since they're typically PCI based, but I left
it in in case someone figures out how to make multiple instances of
ne2k_isa work (or non-PCI based NICs on other archs).  In any case, these
seem like they should be stable properties for a device.

I've compiled all the archs, but I've only actually run x86_64-system.
For a well populated VM, here's what got used as id strings in the
savevm_handlers list:

"timer"
"slirp"
"slirp"
"slirp"
"slirp"
"slirp"
"block"
"ram"
"cpu_common"
"cpu"
"apic"
"fw_cfg"
"i8259"
"i8259"
"ioapic"
"PCIBUS"
"/main-system-bus/pci.0,addr=00.0/i440FX/I440FX"
"/main-system-bus/pci.0,addr=01.0/PIIX3/PIIX3"
"/main-system-bus/pci.0,addr=02.0/cirrus-vga/cirrus_vga"
"/main-system-bus/pci.0/isa.0/mc146818rtc/mc146818rtc"
"i8254"
"hpet"
"/main-system-bus/pci.0/isa.0/isa-serial/serial"
"ps2kbd"
"ps2mouse"
"/main-system-bus/pci.0/isa.0/i8042/pckbd"
"vmmouse"
"dma"
"dma"
"/main-system-bus/pci.0/isa.0/isa-fdc/fdc"
"/main-system-bus/pci.0,addr=03.0/i82551,mac=52:54:00:12:34:56/eeprom"
"/main-system-bus/pci.0,addr=03.0/i82551,mac=52:54:00:12:34:56/i82551"
"/main-system-bus/pci.0,addr=04.0/virtio-net-pci,mac=52:54:00:12:34:57/virtio-net"
"/main-system-bus/pci.0,addr=05.0/e1000,mac=52:54:00:12:34:58/e1000"
"/main-system-bus/pci.0,addr=06.0/rtl8139,mac=52:54:00:12:34:59/rtl8139"
"/main-system-bus/pci.0,addr=07.0/pcnet,mac=52:54:00:12:34:5a/pcnet"
"/main-system-bus/pci.0,addr=01.1/piix3-ide/ide"
"i2c_bus"
"/main-system-bus/pci.0,addr=01.3/PIIX4_PM/piix4_pm"
"/main-system-bus/pci.0,addr=08.0/lsi53c895a/lsiscsi"
"/main-system-bus/pci.0,addr=09.0/virtio-blk-pci/virtio-blk"

Let me know what you think.  Thanks,

Alex

---

Alex Williamson (5):
      virtio-net: Incorporate a DeviceState pointer and let savevm track instances
      eepro100: Add a dev field to eeprom new/free functions
      savevm: Make use of the new DeviceState param
      savevm: Add DeviceState param
      qdev: Create qdev_get_dev_path()


 audio/audio.c          |    2 -
 block-migration.c      |    2 -
 exec.c                 |    4 +-
 hw/adb.c               |    4 +-
 hw/ads7846.c           |    2 -
 hw/apic.c              |    2 -
 hw/arm_gic.c           |    2 -
 hw/arm_timer.c         |    4 +-
 hw/armv7m_nvic.c       |    2 -
 hw/cirrus_vga.c        |    2 -
 hw/cuda.c              |    2 -
 hw/dma.c               |    4 +-
 hw/eepro100.c          |    8 ++--
 hw/eeprom93xx.c        |    8 ++--
 hw/eeprom93xx.h        |    4 +-
 hw/fw_cfg.c            |    2 -
 hw/g364fb.c            |    2 -
 hw/grackle_pci.c       |    4 +-
 hw/gt64xxx.c           |    3 +
 hw/heathrow_pic.c      |    2 -
 hw/hpet.c              |    2 -
 hw/hw.h                |   18 +++++---
 hw/i2c.c               |    2 -
 hw/i8254.c             |    2 -
 hw/i8259.c             |    2 -
 hw/ide/cmd646.c        |    2 -
 hw/ide/isa.c           |    2 -
 hw/ide/macio.c         |    2 -
 hw/ide/microdrive.c    |    2 -
 hw/ide/mmio.c          |    2 -
 hw/ide/piix.c          |    2 -
 hw/ioapic.c            |    2 -
 hw/m48t59.c            |    2 -
 hw/mac_dbdma.c         |    2 -
 hw/mac_nvram.c         |    2 -
 hw/max111x.c           |    3 +
 hw/mipsnet.c           |    4 +-
 hw/mst_fpga.c          |    2 -
 hw/nand.c              |    2 -
 hw/openpic.c           |    5 +-
 hw/pci.c               |    2 -
 hw/pckbd.c             |    2 -
 hw/piix4.c             |    2 -
 hw/pl011.c             |    2 -
 hw/pl022.c             |    2 -
 hw/pl061.c             |    2 -
 hw/ppc4xx_pci.c        |    4 +-
 hw/ppce500_pci.c       |    4 +-
 hw/ps2.c               |    4 +-
 hw/pxa2xx.c            |   24 +++++------
 hw/pxa2xx_dma.c        |    2 -
 hw/pxa2xx_gpio.c       |    2 -
 hw/pxa2xx_keypad.c     |    2 -
 hw/pxa2xx_lcd.c        |    2 -
 hw/pxa2xx_mmci.c       |    2 -
 hw/pxa2xx_pic.c        |    2 -
 hw/pxa2xx_timer.c      |    2 -
 hw/qdev-properties.c   |    2 +
 hw/qdev.c              |   61 +++++++++++++++++++++++++++-
 hw/qdev.h              |    5 ++
 hw/rc4030.c            |    2 -
 hw/serial.c            |    4 +-
 hw/spitz.c             |    9 ++--
 hw/ssd0323.c           |    3 +
 hw/ssi-sd.c            |    2 -
 hw/stellaris.c         |   11 +++--
 hw/stellaris_enet.c    |    4 +-
 hw/stellaris_input.c   |    2 -
 hw/syborg_fb.c         |    2 -
 hw/syborg_interrupt.c  |    2 -
 hw/syborg_keyboard.c   |    2 -
 hw/syborg_pointer.c    |    2 -
 hw/syborg_rtc.c        |    3 +
 hw/syborg_serial.c     |    2 -
 hw/syborg_timer.c      |    2 -
 hw/tsc2005.c           |    2 -
 hw/tsc210x.c           |    4 +-
 hw/unin_pci.c          |    6 ++-
 hw/vga-isa-mm.c        |    2 -
 hw/vga-isa.c           |    2 -
 hw/virtio-balloon.c    |    3 +
 hw/virtio-blk.c        |    2 -
 hw/virtio-net.c        |    7 ++-
 hw/virtio-serial-bus.c |    2 -
 hw/vmmouse.c           |    2 -
 hw/vmware_vga.c        |    2 -
 hw/zaurus.c            |    2 -
 qemu-timer.c           |    2 -
 savevm.c               |  106 +++++++++++++++++++++++++++++++++++++++++-------
 slirp/slirp.c          |    5 +-
 vl.c                   |    2 -
 91 files changed, 307 insertions(+), 153 deletions(-)

-- 

^ permalink raw reply	[flat|nested] 160+ messages in thread

end of thread, other threads:[~2010-06-22 14:27 UTC | newest]

Thread overview: 160+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-14  5:51 [RFC PATCH 0/5] Introduce canonical device hierarchy string Alex Williamson
2010-06-14  5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14  5:51 ` [RFC PATCH 1/5] qdev: Create qdev_get_dev_path() Alex Williamson
2010-06-14  5:51   ` [Qemu-devel] " Alex Williamson
2010-06-14  6:39   ` Markus Armbruster
2010-06-14  6:39     ` Markus Armbruster
2010-06-14 12:52     ` Alex Williamson
2010-06-14 12:52       ` Alex Williamson
2010-06-14 13:00       ` Jan Kiszka
2010-06-14 13:00         ` Jan Kiszka
2010-06-14 13:09       ` Paul Brook
2010-06-14 13:09         ` Paul Brook
2010-06-14 15:29         ` Alex Williamson
2010-06-14 15:29           ` Alex Williamson
2010-06-14 15:42           ` Paul Brook
2010-06-14 15:42             ` Paul Brook
2010-06-14 16:00           ` Jan Kiszka
2010-06-14 16:00             ` Jan Kiszka
2010-06-14 16:38             ` Alex Williamson
2010-06-14 16:38               ` Alex Williamson
2010-06-14 16:49               ` Jan Kiszka
2010-06-14 16:49                 ` Jan Kiszka
2010-06-14 18:35                 ` Alex Williamson
2010-06-14 18:35                   ` Alex Williamson
2010-06-14 21:43                   ` Paul Brook
2010-06-14 21:43                     ` Paul Brook
2010-06-14 22:11                     ` Alex Williamson
2010-06-14 22:11                       ` Alex Williamson
2010-06-14 22:46                       ` Paul Brook
2010-06-14 22:46                         ` Paul Brook
2010-06-15  1:14                         ` Alex Williamson
2010-06-15  1:14                           ` Alex Williamson
2010-06-15 11:24                           ` Paul Brook
2010-06-15 11:24                             ` Paul Brook
2010-06-15  8:47         ` Markus Armbruster
2010-06-15  8:47           ` Markus Armbruster
2010-06-15  9:34           ` Jan Kiszka
2010-06-15  9:34             ` Jan Kiszka
2010-06-15 11:28             ` Paul Brook
2010-06-15 11:28               ` Paul Brook
2010-06-15 11:45               ` Jan Kiszka
2010-06-15 11:45                 ` Jan Kiszka
2010-06-15 12:04                 ` Paul Brook
2010-06-15 12:04                   ` Paul Brook
2010-06-15 12:16                   ` Jan Kiszka
2010-06-15 12:16                     ` Jan Kiszka
2010-06-15 12:39                     ` Paul Brook
2010-06-15 12:39                       ` Paul Brook
2010-06-15 13:00                       ` Jan Kiszka
2010-06-15 13:00                         ` Jan Kiszka
2010-06-15 13:14                         ` Paul Brook
2010-06-15 13:14                           ` Paul Brook
2010-06-15 13:16                 ` Markus Armbruster
2010-06-15 13:16                   ` Markus Armbruster
2010-06-15 13:32                   ` Jan Kiszka
2010-06-15 13:32                     ` Jan Kiszka
2010-06-15 20:53               ` Alex Williamson
2010-06-15 20:53                 ` Alex Williamson
2010-06-15 21:55                 ` Paul Brook
2010-06-15 21:55                   ` Paul Brook
2010-06-15 22:33                   ` Alex Williamson
2010-06-15 22:33                     ` Alex Williamson
2010-06-15 23:01                     ` Paul Brook
2010-06-15 23:01                       ` Paul Brook
2010-06-15 23:10                       ` Alex Williamson
2010-06-15 23:10                         ` Alex Williamson
2010-06-16  0:25                       ` Chris Wright
2010-06-16  0:25                         ` Chris Wright
2010-06-16  0:30                         ` Paul Brook
2010-06-16  0:30                           ` Paul Brook
2010-06-16  0:35                           ` Chris Wright
2010-06-16  0:35                             ` Chris Wright
2010-06-16  1:30                             ` Paul Brook
2010-06-16  1:30                               ` Paul Brook
2010-06-16  2:55                               ` Alex Williamson
2010-06-16  2:55                                 ` Alex Williamson
2010-06-16  8:23                 ` Markus Armbruster
2010-06-16  8:23                   ` Markus Armbruster
2010-06-17 22:25                   ` Alex Williamson
2010-06-17 22:25                     ` Alex Williamson
2010-06-18  9:16                     ` Jan Kiszka
2010-06-18  9:16                       ` Jan Kiszka
2010-06-18 15:01                       ` Alex Williamson
2010-06-18 15:01                         ` Alex Williamson
2010-06-18 15:22                         ` Jan Kiszka
2010-06-18 15:22                           ` Jan Kiszka
2010-06-18 14:03                     ` Markus Armbruster
2010-06-18 14:03                       ` Markus Armbruster
2010-06-18 14:14                       ` Jan Kiszka
2010-06-18 14:14                         ` Jan Kiszka
2010-06-18 15:21                       ` Alex Williamson
2010-06-18 15:21                         ` Alex Williamson
2010-06-15 11:42             ` Markus Armbruster
2010-06-15 11:42               ` Markus Armbruster
2010-06-15 11:59               ` Jan Kiszka
2010-06-15 11:59                 ` Jan Kiszka
2010-06-15 13:07                 ` Markus Armbruster
2010-06-15 13:07                   ` Markus Armbruster
2010-06-15 13:19                   ` Paul Brook
2010-06-15 13:19                     ` Paul Brook
2010-06-15 13:32                     ` Paul Brook
2010-06-15 13:32                       ` Paul Brook
2010-06-15 15:08                   ` Jan Kiszka
2010-06-15 15:08                     ` Jan Kiszka
2010-06-16 13:02                     ` Markus Armbruster
2010-06-16 13:02                       ` Markus Armbruster
2010-06-14  5:51 ` [RFC PATCH 2/5] savevm: Add DeviceState param Alex Williamson
2010-06-14  5:51   ` [Qemu-devel] " Alex Williamson
2010-06-14  5:51 ` [RFC PATCH 3/5] savevm: Make use of the new " Alex Williamson
2010-06-14  5:51   ` [Qemu-devel] " Alex Williamson
2010-06-14  5:51 ` [RFC PATCH 4/5] eepro100: Add a dev field to eeprom new/free functions Alex Williamson
2010-06-14  5:51   ` [Qemu-devel] " Alex Williamson
2010-06-14  5:51 ` [RFC PATCH 5/5] virtio-net: Incorporate a DeviceState pointer and let savevm track instances Alex Williamson
2010-06-14  5:51   ` [Qemu-devel] " Alex Williamson
2010-06-14  7:02 ` [RFC PATCH 0/5] Introduce canonical device hierarchy string Gerd Hoffmann
2010-06-14  7:02   ` [Qemu-devel] " Gerd Hoffmann
2010-06-14 19:56   ` Alex Williamson
2010-06-14 19:56     ` [Qemu-devel] " Alex Williamson
2010-06-15  8:53     ` Markus Armbruster
2010-06-15  8:53       ` Markus Armbruster
2010-06-15 18:01       ` Alex Williamson
2010-06-15 18:01         ` Alex Williamson
2010-06-16  8:34         ` Markus Armbruster
2010-06-16  8:36           ` Markus Armbruster
2010-06-15  9:12     ` Gerd Hoffmann
2010-06-15  9:12       ` [Qemu-devel] " Gerd Hoffmann
2010-06-15 18:03       ` Alex Williamson
2010-06-15 18:03         ` [Qemu-devel] " Alex Williamson
2010-06-16  9:46 ` RFC qdev path semantics (was: [Qemu-devel] [RFC PATCH 0/5] Introduce canonical device hierarchy string) Markus Armbruster
2010-06-16  9:46   ` Markus Armbruster
2010-06-16 10:40   ` Paul Brook
2010-06-16 10:40     ` Paul Brook
2010-06-16 11:37   ` RFC qdev path semantics Jan Kiszka
2010-06-16 11:37     ` [Qemu-devel] " Jan Kiszka
2010-06-16 11:45     ` Paul Brook
2010-06-16 11:45       ` [Qemu-devel] " Paul Brook
2010-06-16 12:01       ` Jan Kiszka
2010-06-16 12:01         ` [Qemu-devel] " Jan Kiszka
2010-06-16 12:21         ` Paul Brook
2010-06-16 12:21           ` Paul Brook
2010-06-16 13:50           ` Jan Kiszka
2010-06-16 13:50             ` Jan Kiszka
2010-06-16 13:05   ` Markus Armbruster
2010-06-16 13:05     ` [Qemu-devel] " Markus Armbruster
2010-06-16 13:23     ` Paul Brook
2010-06-16 13:23       ` [Qemu-devel] " Paul Brook
2010-06-16 14:31       ` Markus Armbruster
2010-06-16 14:31         ` Markus Armbruster
2010-06-17 21:43   ` Alex Williamson
2010-06-17 21:43     ` [Qemu-devel] " Alex Williamson
2010-06-17 22:01     ` Paul Brook
2010-06-17 22:01       ` [Qemu-devel] " Paul Brook
2010-06-17 22:34       ` Alex Williamson
2010-06-17 22:34         ` [Qemu-devel] " Alex Williamson
2010-06-18  7:52     ` Gerd Hoffmann
2010-06-18  7:52       ` [Qemu-devel] " Gerd Hoffmann
2010-06-18 14:58   ` Markus Armbruster
2010-06-18 14:58     ` [Qemu-devel] " Markus Armbruster
2010-06-22 14:27   ` Anthony Liguori
2010-06-22 14:27     ` [Qemu-devel] " Anthony Liguori

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.