[PATCH v3 0/3] genirq: Managed affinity fixes

Marc Zyngier posted 3 patches 4 years, 2 months ago
drivers/irqchip/irq-gic-v3-its.c |  2 +-
kernel/irq/manage.c              | 25 +++++++++++++++++--------
kernel/irq/msi.c                 | 15 +++++++++++++++
3 files changed, 33 insertions(+), 9 deletions(-)
[PATCH v3 0/3] genirq: Managed affinity fixes
Posted by Marc Zyngier 4 years, 2 months ago
John (and later on David) reported[1] a while ago that booting with
maxcpus=1, managed affinity devices would fail to get the interrupts
that were associated with offlined CPUs.

Similarly, Xiongfeng reported[2] that the GICv3 ITS would sometime use
non-housekeeping CPUs instead of the affinity that was passed down as
a parameter.

[1] can be fixed by not trying to activate these interrupts if no CPU
that can satisfy the affinity is present (a patch addressing this was
already posted[3])

[2] is a consequence of affinities containing non-online CPUs being
passed down to the interrupt controller driver and the ITS driver
trying to paper over that by ignoring the affinity parameter and doing
its own (stupid) thing. It would be better to (a) get the core code to
remove the offline CPUs from the affinity mask at all times, and (b)
fix the drivers so that they can trust the core code not to trip them.

This small series, based on 5.18-rc1, addresses the above.

Thanks,

	M.

From v2 [4]:
  - Rebased on 5.18-rc1

[1] https://lore.kernel.org/r/78615d08-1764-c895-f3b7-bfddfbcbdfb9@huawei.com
[2] https://lore.kernel.org/r/20220124073440.88598-1-wangxiongfeng2@huawei.com
[3] https://lore.kernel.org/r/20220307190625.254426-1-maz@kernel.org
[4] https://lore.kernel.org/r/20220321193608.975495-1-maz@kernel.org

Marc Zyngier (3):
  genirq/msi: Shutdown managed interrupts with unsatifiable affinities
  genirq: Always limit the affinity to online CPUs
  irqchip/gic-v3: Always trust the managed affinity provided by the core
    code

 drivers/irqchip/irq-gic-v3-its.c |  2 +-
 kernel/irq/manage.c              | 25 +++++++++++++++++--------
 kernel/irq/msi.c                 | 15 +++++++++++++++
 3 files changed, 33 insertions(+), 9 deletions(-)

-- 
2.34.1
Re: [PATCH v3 0/3] genirq: Managed affinity fixes
Posted by John Garry 4 years, 2 months ago
On 05/04/2022 19:50, Marc Zyngier wrote:
> John (and later on David) reported[1] a while ago that booting with
> maxcpus=1, managed affinity devices would fail to get the interrupts
> that were associated with offlined CPUs.
> 
> Similarly, Xiongfeng reported[2] that the GICv3 ITS would sometime use
> non-housekeeping CPUs instead of the affinity that was passed down as
> a parameter.
> 
> [1] can be fixed by not trying to activate these interrupts if no CPU
> that can satisfy the affinity is present (a patch addressing this was
> already posted[3])
> 
> [2] is a consequence of affinities containing non-online CPUs being
> passed down to the interrupt controller driver and the ITS driver
> trying to paper over that by ignoring the affinity parameter and doing
> its own (stupid) thing. It would be better to (a) get the core code to
> remove the offline CPUs from the affinity mask at all times, and (b)
> fix the drivers so that they can trust the core code not to trip them.
> 
> This small series, based on 5.18-rc1, addresses the above.

Hi Marc,

Please let me know if you require anything more from me on this one. I 
was hoping that Xiongfeng would verify that his "housekeeping" issues 
were fixed.

Cheers

> 
> Thanks,
> 
> 	M.
> 
>>From v2 [4]:
>    - Rebased on 5.18-rc1
> 
> [1] https://lore.kernel.org/r/78615d08-1764-c895-f3b7-bfddfbcbdfb9@huawei.com
> [2] https://lore.kernel.org/r/20220124073440.88598-1-wangxiongfeng2@huawei.com
> [3] https://lore.kernel.org/r/20220307190625.254426-1-maz@kernel.org
> [4] https://lore.kernel.org/r/20220321193608.975495-1-maz@kernel.org
> 
> Marc Zyngier (3):
>    genirq/msi: Shutdown managed interrupts with unsatifiable affinities
>    genirq: Always limit the affinity to online CPUs
>    irqchip/gic-v3: Always trust the managed affinity provided by the core
>      code
> 
>   drivers/irqchip/irq-gic-v3-its.c |  2 +-
>   kernel/irq/manage.c              | 25 +++++++++++++++++--------
>   kernel/irq/msi.c                 | 15 +++++++++++++++
>   3 files changed, 33 insertions(+), 9 deletions(-)
>
Re: [PATCH v3 0/3] genirq: Managed affinity fixes
Posted by Xiongfeng Wang 4 years, 2 months ago
Hi,

On 2022/4/8 1:29, John Garry wrote:
> On 05/04/2022 19:50, Marc Zyngier wrote:
>> John (and later on David) reported[1] a while ago that booting with
>> maxcpus=1, managed affinity devices would fail to get the interrupts
>> that were associated with offlined CPUs.
>>
>> Similarly, Xiongfeng reported[2] that the GICv3 ITS would sometime use
>> non-housekeeping CPUs instead of the affinity that was passed down as
>> a parameter.
>>
>> [1] can be fixed by not trying to activate these interrupts if no CPU
>> that can satisfy the affinity is present (a patch addressing this was
>> already posted[3])
>>
>> [2] is a consequence of affinities containing non-online CPUs being
>> passed down to the interrupt controller driver and the ITS driver
>> trying to paper over that by ignoring the affinity parameter and doing
>> its own (stupid) thing. It would be better to (a) get the core code to
>> remove the offline CPUs from the affinity mask at all times, and (b)
>> fix the drivers so that they can trust the core code not to trip them.
>>
>> This small series, based on 5.18-rc1, addresses the above.
> 
> Hi Marc,
> 
> Please let me know if you require anything more from me on this one. I was
> hoping that Xiongfeng would verify that his "housekeeping" issues were fixed.

I have tested the V2 version. It works well and fixed both issues, the
'maxcpus=1' issue and 'housekeeping' issue. Let me know if you need me test this
V3 version. I am not seeing much change, only context change.

Thanks,
Xiongfeng

> 
> Cheers
> 
>>
>> Thanks,
>>
>>     M.
>>
>>> From v2 [4]:
>>    - Rebased on 5.18-rc1
>>
>> [1] https://lore.kernel.org/r/78615d08-1764-c895-f3b7-bfddfbcbdfb9@huawei.com
>> [2] https://lore.kernel.org/r/20220124073440.88598-1-wangxiongfeng2@huawei.com
>> [3] https://lore.kernel.org/r/20220307190625.254426-1-maz@kernel.org
>> [4] https://lore.kernel.org/r/20220321193608.975495-1-maz@kernel.org
>>
>> Marc Zyngier (3):
>>    genirq/msi: Shutdown managed interrupts with unsatifiable affinities
>>    genirq: Always limit the affinity to online CPUs
>>    irqchip/gic-v3: Always trust the managed affinity provided by the core
>>      code
>>
>>   drivers/irqchip/irq-gic-v3-its.c |  2 +-
>>   kernel/irq/manage.c              | 25 +++++++++++++++++--------
>>   kernel/irq/msi.c                 | 15 +++++++++++++++
>>   3 files changed, 33 insertions(+), 9 deletions(-)
>>
> 
> .