On Mon, Feb 13, 2012 at 05:38:26PM +0800, Wen Congyang wrote: > At 02/13/2012 05:15 PM, Michael S. Tsirkin Wrote: > > Here's a new version of the patch. It works for me. > > Deep nesting of bridges is supported. > > You need a small BIOS patch to support the OSHP method > > if you want hotplug to work. I will post this separately. > > We'd need a full ACPI driver to make hotplug work for guests > > without an SHPC driver (e.g. windows XP). > > Management support will also be needed. > > > > One small wrinkle is that the pci_addr property > > wants data in a format bus:device.function which is > > broken as guests can change bus numbers. > > For testing I used the 'addr' property which > > encodes slot*8+function#. We probably want to > > extend pci_addr in some way (e.g. :device.function ? > > Thoughts?). > > What about using id+device(slot)+function to set the address? That's exactly what this patch does: addr encodes slot+function. I was asking about a friendlier format for this. > > > > The SHPC controller supports up to 31 devices > > (out of 32 slots) so slot 0 doesn't support hotplug. > > Non hot-pluggable devices behind the bridge > > don't work currectly (we'll try to unplug them) > > so don't do this. > > For now I just blocked adding devices in slot 0, > > in the future it might be possible to add > > a non-hotpluggable device there. > > > > Example: > > > > qemu-system-x86_64 -enable-kvm -m 1G > > -drive file=/home/mst/rhel6.qcow2 > > -netdev > > tap,id=foo,ifname=msttap0,script=/home/mst/ifup,downscript=no,vhost=on > > -device pci-bridge,id=bog > > -device virtio-net-pci,netdev=foo,bus=bog,addr=8 > > > > > > Hot-unplug currently causes qemu to crash, this > > happens without this patch too, so I'm not worried :) > > How to trigger this bug without this patch? > > Thanks > Wen Congyang start with qemu-system-x86_64 -enable-kvm -m 1G -drive file=/home/mst/rhel6.qcow2 -netdev tap,id=foo,ifname=msttap0,script=/home/mst/ifup,downscript=no,vhost=on next do: device_add virtio-net-pci,netdev=foo,id=bla <wait a bit for guest to notice the device> device_del bla <wait for device to go away> and it will crash on next malloc, to trigger malloc give another command, e.g. info pci > > > > New since v1: > > hotplug support > > -- 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