From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59756) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c9VQA-000606-Dg for qemu-devel@nongnu.org; Wed, 23 Nov 2016 06:08:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c9VQ5-0007tU-BZ for qemu-devel@nongnu.org; Wed, 23 Nov 2016 06:08:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39736) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c9VQ5-0007t6-2j for qemu-devel@nongnu.org; Wed, 23 Nov 2016 06:08:53 -0500 References: <1478099802-14188-1-git-send-email-marcel@redhat.com> <20161103061711-mutt-send-email-mst@kernel.org> <8400224e-073e-eebc-bbb6-43bae96f3155@redhat.com> <20161103213514-mutt-send-email-mst@kernel.org> <20161116164442.wrwbs7cobkiclymp@kamzik.brq.redhat.com> <55156135-9617-906a-e65b-ce948dc22140@redhat.com> <20161118155201.uifhhouuidl2bsha@kamzik.brq.redhat.com> <165c06da-ae03-f855-19c8-a99a8aa13dba@redhat.com> From: Marcel Apfelbaum Message-ID: <8aa4a75c-18d6-4793-2e5e-0c6155cb4821@redhat.com> Date: Wed, 23 Nov 2016 13:08:46 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Vivier , Andrew Jones Cc: qemu-devel@nongnu.org, Gerd Hoffmann , Markus Armbruster , laine@redhat.com, "Michael S. Tsirkin" , David Gibson , Thomas Huth On 11/22/2016 10:25 PM, Laurent Vivier wrote: > > > On 22/11/2016 18:26, Marcel Apfelbaum wrote: >> On 11/18/2016 05:52 PM, Andrew Jones wrote: >>> On Wed, Nov 16, 2016 at 07:05:25PM +0200, Marcel Apfelbaum wrote: >>>> On 11/16/2016 06:44 PM, Andrew Jones wrote: >>>>> On Sat, Nov 05, 2016 at 06:46:34PM +0200, Marcel Apfelbaum wrote: >>>>>> On 11/03/2016 09:40 PM, Michael S. Tsirkin wrote: >>>>>>> On Thu, Nov 03, 2016 at 01:05:44PM +0200, Marcel Apfelbaum wrote: >>>>>>>> On 11/03/2016 06:18 AM, Michael S. Tsirkin wrote: >>>>>>>>> On Wed, Nov 02, 2016 at 05:16:42PM +0200, Marcel Apfelbaum wrote: >>>>>>>>>> The shpc component is optional while ACPI hotplug is used >>>>>>>>>> for hot-plugging PCI devices into a PCI-PCI bridge. >>>>>>>>>> Disabling the shpc by default will make slot 0 usable at boot time >>>>>>>> >>>>>>>> Hi Michael >>>>>>>> >>>>>>>>> >>>>>>>>> at the cost of breaking all hotplug for all non-acpi users. >>>>>>>>> >>>>>>>> >>>>>>>> Do we have a non-acpi user that is able to use the shpc component >>>>>>>> as-is today? >>>>>>> >>>>>>> power and some arm systems I guess? >>>>>>> >>>>>> >>>>>> Adding Andrew , maybe he can give us an answer. >>>>> >>>>> Not really :-) My lack of PCI knowledge makes that difficult. I'd be >>>>> happy >>>>> to help with an experiment though. Can you give me command line >>>>> arguments, >>>>> qmp commands, etc. that I should use to try it out? I imagine I should >>>>> just boot an ARM guest using DT (instead of ACPI) and then attempt to >>>>> hotplug a PCI device. I'm not sure, however, what, if any, special >>>>> configuration I need in order to ensure I'm testing what you're >>>>> interested in. >>>>> >>>> >>>> Hi Drew, >>>> >>>> >>>> Just run QEMU with '-device pci-bridge,chassis_nr=1,id=bridge1 >>>> -monitor stdio' >>>> with an ARM guest using DT and wait until the guest finish booting. >>>> >>>> Then run at hmp: >>>> device_add virtio-net-pci,bus=bridge1,id=net2 >>>> >>>> Next run lspci in the guest to see the new device. >>> >>> Thanks for the instructions Marcel. Here's the results >>> >>> $QEMU -machine virt,accel=$ACCEL -cpu $CPU -nographic -m 4096 -smp 8 \ >>> -bios /usr/share/AAVMF/AAVMF_CODE.fd \ >>> -device pci-bridge,chassis_nr=1,id=bridge1 \ >>> -drive file=$FEDORA_IMG,if=none,id=dr0,format=qcow2 \ >>> -device virtio-blk-pci,bus=bridge1,addr=01,drive=dr0,id=disk0 \ >>> -netdev user,id=hostnet0 \ >>> -device virtio-net-pci,bus=bridge1,addr=02,netdev=hostnet0,id=net0 >>> >>> # lspci >>> 00:00.0 Host bridge: Red Hat, Inc. Device 0008 >>> 00:01.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge >>> 01:01.0 SCSI storage controller: Red Hat, Inc Virtio block device >>> 01:02.0 Ethernet controller: Red Hat, Inc Virtio network device >>> >>> (qemu) device_add virtio-net-pci,bus=bridge1,id=net2 >>> Unsupported PCI slot 0 for standard hotplug controller. Valid slots are >>> between 1 and 31. >>> >>> (Tried again giving addr=03) >>> >>> (qemu) device_add virtio-net-pci,bus=bridge1,id=net2,addr=03 >>> >>> (Seemed to work, but...) >>> >>> # lspci >>> 00:00.0 Host bridge: Red Hat, Inc. Device 0008 >>> 00:01.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge >>> 01:01.0 SCSI storage controller: Red Hat, Inc Virtio block device >>> 01:02.0 Ethernet controller: Red Hat, Inc Virtio network device >>> >>> (Doesn't show up in lscpi. So I guess it doesn't work) >>> >> >> Hi Drew, >> Thanks for confirming that it doesn't work. >> >> Michael asked if we can check the same for powerpc before >> disabling the shpc by default. >> >> Adding David, Thomas and Laurrent, maybe they have time >> to check it for powerpc. > > With this patch: > > # lspci > 00:00.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge > 00:03.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon > [root@dhcp6-56 ~]# QEMU 2.7.90 monitor - type 'help' for more information > (qemu) device_add virtio-net-pci,bus=bridge1,id=net2 > Bus 'bridge1' does not support hotplugging > (qemu) device_add virtio-net-pci,bus=bridge1,id=net2,addr=3 > Bus 'bridge1' does not support hotplugging > > Without this patch: > > # lspci > 00:00.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge > 00:03.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon > [root@dhcp6-56 ~]# QEMU 2.7.90 monitor - type 'help' for more information > (qemu) device_add virtio-net-pci,bus=bridge1,id=net2 > Unsupported PCI slot 0 for standard hotplug controller. Valid slots are > between 1 and 31. > (qemu) device_add virtio-net-pci,bus=bridge1,id=net2,addr=3 > (qemu) [ 37.342908] shpchp 0000:00:00.0: Latch close on Slot(3) > [ 37.342963] shpchp 0000:00:00.0: Button pressed on Slot(3) > [ 37.343003] shpchp 0000:00:00.0: Card present on Slot(3) > [ 37.344186] shpchp 0000:00:00.0: PCI slot #3 - powering on due to > button press > [ 43.361827] shpchp 0000:00:00.0: No new device found Hi Laurrent, Thank you for the fast reply! What I see from the log is that ppc does use the shpc for hotplug, but there is some implementation bug preventing it to work. Drew, may I trouble one last time for the dmesg? I think we would see exactly the same log. Thanks, Marcel > [ 43.361867] shpchp 0000:00:00.0: Cannot add device at 0000:01:03 > [ 43.363277] shpchp 0000:00:00.0: Latch open on Slot(3) > [ 43.363320] shpchp 0000:00:00.0: Button pressed on Slot(3) > [ 43.363360] shpchp 0000:00:00.0: Card not present on Slot(3) > [ 43.363506] shpchp 0000:00:00.0: PCI slot #3 - powering on due to > button press > [ 48.371835] shpchp 0000:00:00.0: No adapter on slot(3) > > Laurent >