mbox series

[RFC,0/4] ppc: Improve multisocket support

Message ID 20230704134921.2626692-1-clg@kaod.org
Headers show
Series ppc: Improve multisocket support | expand

Message

Cédric Le Goater July 4, 2023, 1:49 p.m. UTC
Hello,

Here are changes improving multisocket support of the XIVE models
(POWER9 only). When a source has an END target on another chip, the
XIVE IC will use an MMIO store to forward the notification to the
remote chip. The long term plan is to get rid of pnv_xive_get_remote()
whic is a modeling shortcut. I have had them for while, they compile,
they seem to still work but this is not for merge yet. If someone
could take over, that would be nice.

The best way to test is to start a 2 sockets * 1 cpu system with devices
attached to the PCI buses of chip 0 and to offline CPU 0. All sources
should be configured to be served by CPU 1 on socket 1 and trigger
notifications on chip 0 should be forwarded to chip 1.

Last patch adds support for degenerative interrupts. This is used by
the lowest level FW of POWER systems. Difficult to test.

Thanks,

C. 

Cédric Le Goater (4):
  ppc/xive: introduce a new XiveRouter end_notify() handler
  ppc/pnv: handle END triggers between chips with MMIOs
  ppc/pnv: add support for the PC MMIOs
  ppc/pnv: Add support for degenerative interrupts (POWER LSI)

 hw/intc/pnv_xive_regs.h   |   1 +
 include/hw/ppc/pnv_xive.h |  15 +++
 include/hw/ppc/xive.h     |   3 +
 hw/intc/pnv_xive.c        | 262 +++++++++++++++++++++++++++++++-------
 hw/intc/xive.c            |  50 ++++++--
 5 files changed, 278 insertions(+), 53 deletions(-)

Comments

Frederic Barrat July 4, 2023, 4:20 p.m. UTC | #1
On 04/07/2023 15:49, Cédric Le Goater wrote:
> Hello,
> 
> Here are changes improving multisocket support of the XIVE models
> (POWER9 only). When a source has an END target on another chip, the
> XIVE IC will use an MMIO store to forward the notification to the
> remote chip. The long term plan is to get rid of pnv_xive_get_remote()
> whic is a modeling shortcut. I have had them for while, they compile,
> they seem to still work but this is not for merge yet. If someone
> could take over, that would be nice.
> 
> The best way to test is to start a 2 sockets * 1 cpu system with devices
> attached to the PCI buses of chip 0 and to offline CPU 0. All sources
> should be configured to be served by CPU 1 on socket 1 and trigger
> notifications on chip 0 should be forwarded to chip 1.
> 
> Last patch adds support for degenerative interrupts. This is used by
> the lowest level FW of POWER systems. Difficult to test.
> 


Thanks for the series! My crystal ball tells me the PC MMIO patch will 
come handy soon (to be adapted for P10 and groups). And the remote 
routing looks pretty interesting too.
The last patch (LSI) may rot a bit longer though :)

   Fred


> Thanks,
> 
> C.
> 
> Cédric Le Goater (4):
>    ppc/xive: introduce a new XiveRouter end_notify() handler
>    ppc/pnv: handle END triggers between chips with MMIOs
>    ppc/pnv: add support for the PC MMIOs
>    ppc/pnv: Add support for degenerative interrupts (POWER LSI)
> 
>   hw/intc/pnv_xive_regs.h   |   1 +
>   include/hw/ppc/pnv_xive.h |  15 +++
>   include/hw/ppc/xive.h     |   3 +
>   hw/intc/pnv_xive.c        | 262 +++++++++++++++++++++++++++++++-------
>   hw/intc/xive.c            |  50 ++++++--
>   5 files changed, 278 insertions(+), 53 deletions(-)
>
Cédric Le Goater July 4, 2023, 4:57 p.m. UTC | #2
On 7/4/23 18:20, Frederic Barrat wrote:
> 
> 
> On 04/07/2023 15:49, Cédric Le Goater wrote:
>> Hello,
>>
>> Here are changes improving multisocket support of the XIVE models
>> (POWER9 only). When a source has an END target on another chip, the
>> XIVE IC will use an MMIO store to forward the notification to the
>> remote chip. The long term plan is to get rid of pnv_xive_get_remote()
>> whic is a modeling shortcut. I have had them for while, they compile,
>> they seem to still work but this is not for merge yet. If someone
>> could take over, that would be nice.
>>
>> The best way to test is to start a 2 sockets * 1 cpu system with devices
>> attached to the PCI buses of chip 0 and to offline CPU 0. All sources
>> should be configured to be served by CPU 1 on socket 1 and trigger
>> notifications on chip 0 should be forwarded to chip 1.
>>
>> Last patch adds support for degenerative interrupts. This is used by
>> the lowest level FW of POWER systems. Difficult to test.
>>
> 
> 
> Thanks for the series! My crystal ball tells me the PC MMIO patch will come handy soon (to be adapted for P10 and groups). And the remote routing looks pretty interesting too.

I am glad !

I think the first 2 patches are a good addition. They remove a
qdev_get_machine() call which is ugly. P10 has the same kind of
shortcut.

C.