2022-10-27 04:28:05

by Tiezhu Yang

[permalink] [raw]
Subject: [PATCH v2] irqchip: LoongArch: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP

An IRQ's effective affinity can only be different from its configured
affinity if there are multiple CPUs. Make it clear that this option is
only meaningful when SMP is enabled.

Signed-off-by: Tiezhu Yang <[email protected]>
---

v2: rebased on 6.1-rc2

drivers/irqchip/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index 7ef9f5e..8461915 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -575,7 +575,7 @@ config IRQ_LOONGARCH_CPU
bool
select GENERIC_IRQ_CHIP
select IRQ_DOMAIN
- select GENERIC_IRQ_EFFECTIVE_AFF_MASK
+ select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
select LOONGSON_LIOINTC
select LOONGSON_EIOINTC
select LOONGSON_PCH_PIC
--
2.1.0



2022-11-26 13:27:26

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH v2] irqchip: LoongArch: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP

On Thu, 27 Oct 2022 04:39:09 +0100,
Tiezhu Yang <[email protected]> wrote:
>
> An IRQ's effective affinity can only be different from its configured
> affinity if there are multiple CPUs. Make it clear that this option is
> only meaningful when SMP is enabled.
>
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
>
> v2: rebased on 6.1-rc2
>
> drivers/irqchip/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> index 7ef9f5e..8461915 100644
> --- a/drivers/irqchip/Kconfig
> +++ b/drivers/irqchip/Kconfig
> @@ -575,7 +575,7 @@ config IRQ_LOONGARCH_CPU
> bool
> select GENERIC_IRQ_CHIP
> select IRQ_DOMAIN
> - select GENERIC_IRQ_EFFECTIVE_AFF_MASK
> + select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
> select LOONGSON_LIOINTC
> select LOONGSON_EIOINTC
> select LOONGSON_PCH_PIC

We already have this:

# Supports effective affinity mask
config GENERIC_IRQ_EFFECTIVE_AFF_MASK
depends on SMP
bool

Do we really need to express this for every interrupt controller?

M.

--
Without deviation from the norm, progress is not possible.

2022-11-27 00:57:06

by Samuel Holland

[permalink] [raw]
Subject: Re: [PATCH v2] irqchip: LoongArch: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP

On 11/26/22 06:53, Marc Zyngier wrote:
> On Thu, 27 Oct 2022 04:39:09 +0100,
> Tiezhu Yang <[email protected]> wrote:
>>
>> An IRQ's effective affinity can only be different from its configured
>> affinity if there are multiple CPUs. Make it clear that this option is
>> only meaningful when SMP is enabled.
>>
>> Signed-off-by: Tiezhu Yang <[email protected]>
>> ---
>>
>> v2: rebased on 6.1-rc2
>>
>> drivers/irqchip/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
>> index 7ef9f5e..8461915 100644
>> --- a/drivers/irqchip/Kconfig
>> +++ b/drivers/irqchip/Kconfig
>> @@ -575,7 +575,7 @@ config IRQ_LOONGARCH_CPU
>> bool
>> select GENERIC_IRQ_CHIP
>> select IRQ_DOMAIN
>> - select GENERIC_IRQ_EFFECTIVE_AFF_MASK
>> + select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
>> select LOONGSON_LIOINTC
>> select LOONGSON_EIOINTC
>> select LOONGSON_PCH_PIC
>
> We already have this:
>
> # Supports effective affinity mask
> config GENERIC_IRQ_EFFECTIVE_AFF_MASK
> depends on SMP
> bool
>
> Do we really need to express this for every interrupt controller?

Unfortunately yes, because "select" does not respect dependencies. So
the "depends on SMP" line does not enforce anything; it only serves to
provide a warning at configure time that the build will break.

Regards,
Samuel

2022-11-28 10:06:52

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH v2] irqchip: LoongArch: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP

On Sat, 26 Nov 2022 23:49:10 +0000,
Samuel Holland <[email protected]> wrote:
>
> On 11/26/22 06:53, Marc Zyngier wrote:
> > On Thu, 27 Oct 2022 04:39:09 +0100,
> > Tiezhu Yang <[email protected]> wrote:
> >>
> >> An IRQ's effective affinity can only be different from its configured
> >> affinity if there are multiple CPUs. Make it clear that this option is
> >> only meaningful when SMP is enabled.
> >>
> >> Signed-off-by: Tiezhu Yang <[email protected]>
> >> ---
> >>
> >> v2: rebased on 6.1-rc2
> >>
> >> drivers/irqchip/Kconfig | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> >> index 7ef9f5e..8461915 100644
> >> --- a/drivers/irqchip/Kconfig
> >> +++ b/drivers/irqchip/Kconfig
> >> @@ -575,7 +575,7 @@ config IRQ_LOONGARCH_CPU
> >> bool
> >> select GENERIC_IRQ_CHIP
> >> select IRQ_DOMAIN
> >> - select GENERIC_IRQ_EFFECTIVE_AFF_MASK
> >> + select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
> >> select LOONGSON_LIOINTC
> >> select LOONGSON_EIOINTC
> >> select LOONGSON_PCH_PIC
> >
> > We already have this:
> >
> > # Supports effective affinity mask
> > config GENERIC_IRQ_EFFECTIVE_AFF_MASK
> > depends on SMP
> > bool
> >
> > Do we really need to express this for every interrupt controller?
>
> Unfortunately yes, because "select" does not respect dependencies. So
> the "depends on SMP" line does not enforce anything; it only serves to
> provide a warning at configure time that the build will break.

I understand that. My question was more "how can we avoid doing that
for each and every irqchip".

So far, the only things I can think of are either an intermediate
config symbol that performs the "if SMP" by itself, or spraying checks
for CONFIG_SMP all over the shop. None of which are appealing.

M.

--
Without deviation from the norm, progress is not possible.