A problem about interrupt when booting a captured kernel
Yang Yingliang
yangyingliang at huawei.com
Mon Nov 16 19:48:07 PST 2015
Hi
On 2015/11/17 3:26, Marc Zyngier wrote:
> On 13/11/15 10:09, Yang Yingliang wrote:
>> Hi, Marc
>>
>>
>> The kexec will boot a captured kernel while the kernel panic. But
>> it boots failed if the kernel panic in handler function of PPI. The
>> reason is that the PPI has not been 'eoi', other interrupts can not be
>> handled when booting the captured kernel.
>>
>> The kexec will call irq_eoi to end the irqs that have
>> IRQD_IRQ_INPROGRESS flag. But PPIs don't have this flag, so it won't be
>> ended.
>>
>> Three ways to solve this problem we can think :
>> 1. Is there a way to reset gic like its_reset ?
>> 2. Can we add some flag for calling irq_eoi ?
>> 3. Just 'eoi' all PPIs without checking flags in kexec.
>>
>> Please give some advice.
>
> Good timing. Please see:
>
> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-November/385383.html
>
> and let me know if that fixes things for you.
I tried patch #1, deactivating interrupt can not fix the problem. But
EOI the interrupt can.
I think the reason is GICC status is not cleared.
So if it means, in hardware, we should clear the GICC status while
deactivating the.
Thanks
Yang
>
> Thanks,
>
> M.
>
More information about the linux-arm-kernel
mailing list