Re: [PATCH v2 10/12] irqchip/gic-v3: Warn about inconsistent implementations of extended ranges

From: Marc Zyngier
Date: Tue Aug 06 2019 - 07:15:32 EST


Hi Vladimir,

On 06/08/2019 11:15, Vladimir Murzin wrote:
> Hi Marc,
>
> On 8/6/19 11:01 AM, Marc Zyngier wrote:
>> As is it usual for the GIC, it isn't disallowed to put together a system
>> that is majorly inconsistent, with a distributor supporting the
>> extended ranges while some of the CPUs don't.
>>
>> Kindly tell the user that things are sailing isn't going to be smooth.
>>
>> Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
>> ---
>> drivers/irqchip/irq-gic-v3.c | 5 +++++
>> include/linux/irqchip/arm-gic-v3.h | 1 +
>> 2 files changed, 6 insertions(+)
>>
>> diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
>> index f53e58d398ba..334a10d9dbfb 100644
>> --- a/drivers/irqchip/irq-gic-v3.c
>> +++ b/drivers/irqchip/irq-gic-v3.c
>> @@ -1014,6 +1014,11 @@ static void gic_cpu_init(void)
>>
>> gic_enable_redist(true);
>>
>> + WARN((gic_data.ppi_nr > 16 || GIC_ESPI_NR != 0) &&
>> + !(gic_read_ctlr() & ICC_CTLR_EL1_ExtRange),
>> + "Distributor has extended ranges, but CPU%d doesn't\n",
>> + smp_processor_id());
>> +
>
> Should such setup be tainted?

I'm not completely sure. The system isn't really dead, but a whole range
of interrupts will not be able to make it to the CPU. It won't be less
reliable though.

I expect this to be more for system integration purposes (simulation
setup, for example), where something hasn't been setup correctly. Or to
spot implementation creativity, such as in the last patch.

I'm happy either way, TBH.

Thanks,

M.
--
Jazz is not dead, it just smells funny...