[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default |
Date: |
Tue, 22 Nov 2016 21:25:11 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
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
address@hidden ~]# 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
address@hidden ~]# 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
[ 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
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, (continued)
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Michael S. Tsirkin, 2016/11/03
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Marcel Apfelbaum, 2016/11/03
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Michael S. Tsirkin, 2016/11/03
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Marcel Apfelbaum, 2016/11/05
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Andrew Jones, 2016/11/16
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Marcel Apfelbaum, 2016/11/16
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Andrew Jones, 2016/11/18
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Michael S. Tsirkin, 2016/11/18
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Marcel Apfelbaum, 2016/11/22
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default,
Laurent Vivier <=
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Marcel Apfelbaum, 2016/11/23
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, David Gibson, 2016/11/24
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Marcel Apfelbaum, 2016/11/24
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, David Gibson, 2016/11/24
- Re: [Qemu-devel] [PATCH] hw/pci: disable pci-bridge's shpc by default, Michael S. Tsirkin, 2016/11/22