[PATCH v3 05/19] powerpc: interrupt handler wrapper functions
Nicholas Piggin
npiggin at gmail.com
Fri Dec 4 19:31:16 AEDT 2020
Excerpts from Aneesh Kumar K.V's message of November 30, 2020 5:37 pm:
> Nicholas Piggin <npiggin at gmail.com> writes:
>
> .....
> +#endif
>> +DECLARE_INTERRUPT_HANDLER(emulation_assist_interrupt);
>> +DECLARE_INTERRUPT_HANDLER_RAW(do_slb_fault);
>
> Can we add comments here explaining why some of these handlers need to remain RAW()?
I possibly could. My patch doesn't change the reason, of course, they
already have these issues.
It wants to avoid reconciling interrupts and probably context tracking
because you can take SLB faults within those subsystems, which are not
expecting re-entrant calls into them. It's okay to avoid these things
because the interrupts don't enable interrupts, go to process context,
add any timers, etc.
Now that I look at it, possibly the primary do_hash_fault handler needs
to be RAW as well for the same reason.
>> +DECLARE_INTERRUPT_HANDLER(do_bad_slb_fault);
>> +DECLARE_INTERRUPT_HANDLER_RET(do_hash_fault);
>> +DECLARE_INTERRUPT_HANDLER_RET(do_page_fault);
>> +DECLARE_INTERRUPT_HANDLER(do_bad_page_fault);
>> +
>> +DECLARE_INTERRUPT_HANDLER_ASYNC(timer_interrupt);
>> +DECLARE_INTERRUPT_HANDLER_NMI(performance_monitor_exception_nmi);
>> +DECLARE_INTERRUPT_HANDLER_ASYNC(performance_monitor_exception_async);
>> +DECLARE_INTERRUPT_HANDLER_RAW(performance_monitor_exception);
>
> Same for this.
That's just because nmi vs async is decided at runtime for PMIs. I can
add a comment, although it's more obvious when looking at the body.
Thanks,
Nick
More information about the Linuxppc-dev
mailing list