Excerpts from Aneesh Kumar K.V's message of November 30, 2020 5:37 pm: > Nicholas Piggin <npig...@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