[Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved

Mark Cave-Ayland posted 3 patches 8 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1499413442-5053-1-git-send-email-mark.cave-ayland@ilande.co.uk
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
hw/pci/pci.c             |   34 ++++++++++++++++++++++++++++++----
include/hw/pci/pci_bus.h |    1 +
2 files changed, 31 insertions(+), 4 deletions(-)
[Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved
Posted by Mark Cave-Ayland 8 years, 4 months ago
For some machines it is impossible to plug devices into a particular PCI bus
slot, e.g. for a real Ultra 5 there are 2 PCI bridges attached to the root
bus behind which all devices must be plugged. Ignoring this rule will cause
problems with interrupt routing since the interrupt numbers are calculated
based upon PCI bridge id and secondary PCI bus slot id.

This patchset adds a new dev_reserved_mask property to PCIBus which is a
bitmask used to indicate whether PCI bus slots are reserved, i.e. they cannot
be used for hot or cold plugging on a particular PCI bus.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


Mark Cave-Ayland (3):
  pci: move check for existing devfn into new pci_bus_devfn_available()
    helper
  pci: add dev_reserved_mask property to PCIBus
  pci: add reserved slot check to do_pci_register_device()

 hw/pci/pci.c             |   34 ++++++++++++++++++++++++++++++----
 include/hw/pci/pci_bus.h |    1 +
 2 files changed, 31 insertions(+), 4 deletions(-)

-- 
1.7.10.4


Re: [Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved
Posted by Michael S. Tsirkin 8 years, 3 months ago
On Fri, Jul 07, 2017 at 08:43:59AM +0100, Mark Cave-Ayland wrote:
> For some machines it is impossible to plug devices into a particular PCI bus
> slot, e.g. for a real Ultra 5 there are 2 PCI bridges attached to the root
> bus behind which all devices must be plugged. Ignoring this rule will cause
> problems with interrupt routing since the interrupt numbers are calculated
> based upon PCI bridge id and secondary PCI bus slot id.
> 
> This patchset adds a new dev_reserved_mask property to PCIBus which is a
> bitmask used to indicate whether PCI bus slots are reserved, i.e. they cannot
> be used for hot or cold plugging on a particular PCI bus.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Could you please point me at series making use of this
functionality?
Thanks!

> 
> Mark Cave-Ayland (3):
>   pci: move check for existing devfn into new pci_bus_devfn_available()
>     helper
>   pci: add dev_reserved_mask property to PCIBus
>   pci: add reserved slot check to do_pci_register_device()
> 
>  hw/pci/pci.c             |   34 ++++++++++++++++++++++++++++++----
>  include/hw/pci/pci_bus.h |    1 +
>  2 files changed, 31 insertions(+), 4 deletions(-)
> 
> -- 
> 1.7.10.4

Re: [Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved
Posted by Marcel Apfelbaum 8 years, 3 months ago
On 11/07/2017 18:31, Michael S. Tsirkin wrote:
> On Fri, Jul 07, 2017 at 08:43:59AM +0100, Mark Cave-Ayland wrote:
>> For some machines it is impossible to plug devices into a particular PCI bus
>> slot, e.g. for a real Ultra 5 there are 2 PCI bridges attached to the root
>> bus behind which all devices must be plugged. Ignoring this rule will cause
>> problems with interrupt routing since the interrupt numbers are calculated
>> based upon PCI bridge id and secondary PCI bus slot id.
>>
>> This patchset adds a new dev_reserved_mask property to PCIBus which is a
>> bitmask used to indicate whether PCI bus slots are reserved, i.e. they cannot
>> be used for hot or cold plugging on a particular PCI bus.
>>
>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> 

Hi Michael,

> Could you please point me at series making use of this
> functionality?

There is a discussion upstream, I am not aware of patches yet.

https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg00771.html

Thanks,
Marcel


> Thanks!
> 
>>
>> Mark Cave-Ayland (3):
>>    pci: move check for existing devfn into new pci_bus_devfn_available()
>>      helper
>>    pci: add dev_reserved_mask property to PCIBus
>>    pci: add reserved slot check to do_pci_register_device()
>>
>>   hw/pci/pci.c             |   34 ++++++++++++++++++++++++++++++----
>>   include/hw/pci/pci_bus.h |    1 +
>>   2 files changed, 31 insertions(+), 4 deletions(-)
>>
>> -- 
>> 1.7.10.4


Re: [Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved
Posted by Michael S. Tsirkin 8 years, 3 months ago
On Tue, Jul 11, 2017 at 06:51:50PM +0300, Marcel Apfelbaum wrote:
> On 11/07/2017 18:31, Michael S. Tsirkin wrote:
> > On Fri, Jul 07, 2017 at 08:43:59AM +0100, Mark Cave-Ayland wrote:
> > > For some machines it is impossible to plug devices into a particular PCI bus
> > > slot, e.g. for a real Ultra 5 there are 2 PCI bridges attached to the root
> > > bus behind which all devices must be plugged. Ignoring this rule will cause
> > > problems with interrupt routing since the interrupt numbers are calculated
> > > based upon PCI bridge id and secondary PCI bus slot id.
> > > 
> > > This patchset adds a new dev_reserved_mask property to PCIBus which is a
> > > bitmask used to indicate whether PCI bus slots are reserved, i.e. they cannot
> > > be used for hot or cold plugging on a particular PCI bus.
> > > 
> > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> > 
> 
> Hi Michael,
> 
> > Could you please point me at series making use of this
> > functionality?
> 
> There is a discussion upstream, I am not aware of patches yet.
> 
> https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg00771.html
> 
> Thanks,
> Marcel

It is probably a good idea to defer merging this patchset
until there's an agreement on how it will be used.


> 
> > Thanks!
> > 
> > > 
> > > Mark Cave-Ayland (3):
> > >    pci: move check for existing devfn into new pci_bus_devfn_available()
> > >      helper
> > >    pci: add dev_reserved_mask property to PCIBus
> > >    pci: add reserved slot check to do_pci_register_device()
> > > 
> > >   hw/pci/pci.c             |   34 ++++++++++++++++++++++++++++++----
> > >   include/hw/pci/pci_bus.h |    1 +
> > >   2 files changed, 31 insertions(+), 4 deletions(-)
> > > 
> > > -- 
> > > 1.7.10.4

Re: [Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved
Posted by Mark Cave-Ayland 8 years, 3 months ago
On 11/07/17 16:57, Michael S. Tsirkin wrote:

> On Tue, Jul 11, 2017 at 06:51:50PM +0300, Marcel Apfelbaum wrote:
>> On 11/07/2017 18:31, Michael S. Tsirkin wrote:
>>> On Fri, Jul 07, 2017 at 08:43:59AM +0100, Mark Cave-Ayland wrote:
>>>> For some machines it is impossible to plug devices into a particular PCI bus
>>>> slot, e.g. for a real Ultra 5 there are 2 PCI bridges attached to the root
>>>> bus behind which all devices must be plugged. Ignoring this rule will cause
>>>> problems with interrupt routing since the interrupt numbers are calculated
>>>> based upon PCI bridge id and secondary PCI bus slot id.
>>>>
>>>> This patchset adds a new dev_reserved_mask property to PCIBus which is a
>>>> bitmask used to indicate whether PCI bus slots are reserved, i.e. they cannot
>>>> be used for hot or cold plugging on a particular PCI bus.
>>>>
>>>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>>>
>>
>> Hi Michael,
>>
>>> Could you please point me at series making use of this
>>> functionality?
>>
>> There is a discussion upstream, I am not aware of patches yet.
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg00771.html
>>
>> Thanks,
>> Marcel
> 
> It is probably a good idea to defer merging this patchset
> until there's an agreement on how it will be used.

I have a local patchset that uses it, but it has been held up by the
on-going issues with the fw_cfg patchset upon which it is also dependent.

I will try and find some time this evening to rebase the patchset and
send it out as I am aware that freeze is coming up soon.


ATB,

Mark.


Re: [Qemu-devel] [PATCH 0/3] pci: allow PCI bus slots to be marked as reserved
Posted by Mark Cave-Ayland 8 years, 3 months ago
On 11/07/17 18:59, Mark Cave-Ayland wrote:

> On 11/07/17 16:57, Michael S. Tsirkin wrote:
> 
>> On Tue, Jul 11, 2017 at 06:51:50PM +0300, Marcel Apfelbaum wrote:
>>> On 11/07/2017 18:31, Michael S. Tsirkin wrote:
>>>> On Fri, Jul 07, 2017 at 08:43:59AM +0100, Mark Cave-Ayland wrote:
>>>>> For some machines it is impossible to plug devices into a particular PCI bus
>>>>> slot, e.g. for a real Ultra 5 there are 2 PCI bridges attached to the root
>>>>> bus behind which all devices must be plugged. Ignoring this rule will cause
>>>>> problems with interrupt routing since the interrupt numbers are calculated
>>>>> based upon PCI bridge id and secondary PCI bus slot id.
>>>>>
>>>>> This patchset adds a new dev_reserved_mask property to PCIBus which is a
>>>>> bitmask used to indicate whether PCI bus slots are reserved, i.e. they cannot
>>>>> be used for hot or cold plugging on a particular PCI bus.
>>>>>
>>>>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>>>>
>>>
>>> Hi Michael,
>>>
>>>> Could you please point me at series making use of this
>>>> functionality?
>>>
>>> There is a discussion upstream, I am not aware of patches yet.
>>>
>>> https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg00771.html
>>>
>>> Thanks,
>>> Marcel
>>
>> It is probably a good idea to defer merging this patchset
>> until there's an agreement on how it will be used.
> 
> I have a local patchset that uses it, but it has been held up by the
> on-going issues with the fw_cfg patchset upon which it is also dependent.
> 
> I will try and find some time this evening to rebase the patchset and
> send it out as I am aware that freeze is coming up soon.

You can see the use of this feature in patch 8 of my sun4u patchset
here:
https://lists.nongnu.org/archive/html/qemu-devel/2017-07/msg03041.html.


ATB,

Mark.