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? > > 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 > > New since v1: > hotplug support >