From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35970) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rwsea-00026u-GQ for qemu-devel@nongnu.org; Mon, 13 Feb 2012 04:57:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RwseV-0003sZ-VM for qemu-devel@nongnu.org; Mon, 13 Feb 2012 04:57:00 -0500 Received: from mx1.redhat.com ([209.132.183.28]:64932) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RwseV-0003sA-Ig for qemu-devel@nongnu.org; Mon, 13 Feb 2012 04:56:55 -0500 Date: Mon, 13 Feb 2012 11:56:52 +0200 From: "Michael S. Tsirkin" Message-ID: <20120213095650.GA27226@redhat.com> References: <4F38DA12.30406@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4F38DA12.30406@cn.fujitsu.com> Subject: Re: [Qemu-devel] [PATCHv2-RFC 0/2] RFC: standard pci bridge device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wen Congyang Cc: Kevin Wolf , kvm@vger.kernel.org, qemu-devel@nongnu.org, Isaku Yamahata , Avi Kivity 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 device_del bla and it will crash on next malloc, to trigger malloc give another command, e.g. info pci > > > > New since v1: > > hotplug support > >