[PATCH v9 3/4] irqchip/loongarch-avec.c:return IRQ_SET_MASK_OK_DONE when keep affinity

Tianyang Zhang posted 4 patches 1 week, 4 days ago
There is a newer version of this series
[PATCH v9 3/4] irqchip/loongarch-avec.c:return IRQ_SET_MASK_OK_DONE when keep affinity
Posted by Tianyang Zhang 1 week, 4 days ago
When it is detected in avecintc_set_affinity that the current affinity
remains valid, the return value is modified to IRQ_SET_MASK_OK_DONE.

After the introduction of redirect-domain, for each interrupt source,
avecintc-domain only provides the CPU/interrupt vector, while redirect-domain
provides other operations to synchronize interrupt affinity information
among multiple cores. The original intention is to notify the cascaded
redirect_set_affinity that multi-core synchronization is not required.

However, this introduces some compatibility issues, such as the new return
value causing msi_domain_set_affinity to no longer perform irq_chip_write_msi_msg.
  1) When redirect exist in the system, the msi msg_address and msg_data no
longer changes after the allocation phase, so it does not actually require updating
the MSI message info.
  2) When only avecintc exists in the system, the irq_domain_activate_irq
interface will be responsible for the initial configuration of the MSI message,
which is unconditional. After that, if unnecessary, no modification to the MSI
message is alse correctly.

Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
---
 drivers/irqchip/irq-loongarch-avec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-loongarch-avec.c b/drivers/irqchip/irq-loongarch-avec.c
index 70aa34439370..7bdf3f678db4 100644
--- a/drivers/irqchip/irq-loongarch-avec.c
+++ b/drivers/irqchip/irq-loongarch-avec.c
@@ -99,7 +99,7 @@ static int avecintc_set_affinity(struct irq_data *data, const struct cpumask *de
 			return -EBUSY;
 
 		if (cpu_online(adata->cpu) && cpumask_test_cpu(adata->cpu, dest))
-			return 0;
+			return IRQ_SET_MASK_OK_DONE;
 
 		cpumask_and(&intersect_mask, dest, cpu_online_mask);
 
-- 
2.41.0
Re: [PATCH v9 3/4] irqchip/loongarch-avec.c:return IRQ_SET_MASK_OK_DONE when keep affinity
Posted by Thomas Gleixner 1 week, 4 days ago
On Fri, Jan 30 2026 at 10:59, Tianyang Zhang wrote:

  irqchip/irq-loonarch-avec: Return IRQ_SET_MASK_OK_DONE when affinity is unchanged

Note the space between 'prefix: ' and the shortlog sentence

> When it is detected in avecintc_set_affinity that the current affinity

Functions are denoted with fname() to make it clear. See

https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-submission-notes

> remains valid, the return value is modified to IRQ_SET_MASK_OK_DONE.

That's the very wrong order of explaining the change. You again explain
the _what_ first without giving context and reason.

See the above link. It provides guidance about structuring a change log.

> After the introduction of redirect-domain, for each interrupt source,
> avecintc-domain only provides the CPU/interrupt vector, while redirect-domain
> provides other operations to synchronize interrupt affinity information
> among multiple cores. The original intention is to notify the cascaded
> redirect_set_affinity that multi-core synchronization is not required.

"After the introduction.." is confusing at best.

> However, this introduces some compatibility issues, such as the new return
> value causing msi_domain_set_affinity to no longer perform irq_chip_write_msi_msg.
>   1) When redirect exist in the system, the msi msg_address and msg_data no
> longer changes after the allocation phase, so it does not actually require updating
> the MSI message info.
>   2) When only avecintc exists in the system, the irq_domain_activate_irq
> interface will be responsible for the initial configuration of the MSI message,
> which is unconditional. After that, if unnecessary, no modification to the MSI
> message is alse correctly.

Spell checkers exist for a reason.

Thanks

        tglx
Re: [PATCH v9 3/4] irqchip/loongarch-avec.c:return IRQ_SET_MASK_OK_DONE when keep affinity
Posted by Tianyang Zhang 1 week, 4 days ago
Hi, Thomas

在 2026/1/30 下午4:20, Thomas Gleixner 写道:
> On Fri, Jan 30 2026 at 10:59, Tianyang Zhang wrote:
>
>    irqchip/irq-loonarch-avec: Return IRQ_SET_MASK_OK_DONE when affinity is unchanged
>
> Note the space between 'prefix: ' and the shortlog sentence
Ok, I got it
>
>> When it is detected in avecintc_set_affinity that the current affinity
> Functions are denoted with fname() to make it clear. See
>
> https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-submission-notes
Ok, I got it
>
>> remains valid, the return value is modified to IRQ_SET_MASK_OK_DONE.
> That's the very wrong order of explaining the change. You again explain
> the _what_ first without giving context and reason.
>
> See the above link. It provides guidance about structuring a change log.
Ok, I will rewrite this changelog
>
>> After the introduction of redirect-domain, for each interrupt source,
>> avecintc-domain only provides the CPU/interrupt vector, while redirect-domain
>> provides other operations to synchronize interrupt affinity information
>> among multiple cores. The original intention is to notify the cascaded
>> redirect_set_affinity that multi-core synchronization is not required.
> "After the introduction.." is confusing at best.
Ok, I got it
>
>> However, this introduces some compatibility issues, such as the new return
>> value causing msi_domain_set_affinity to no longer perform irq_chip_write_msi_msg.
>>    1) When redirect exist in the system, the msi msg_address and msg_data no
>> longer changes after the allocation phase, so it does not actually require updating
>> the MSI message info.
>>    2) When only avecintc exists in the system, the irq_domain_activate_irq
>> interface will be responsible for the initial configuration of the MSI message,
>> which is unconditional. After that, if unnecessary, no modification to the MSI
>> message is alse correctly.
> Spell checkers exist for a reason.

Ok, I got it

Thanks

>
> Thanks
>
>          tglx