Doh, thought I had sent this one out already... On 11/11/21 15:55, Michael Ellerman wrote: > Valentin Schneider <valentin.schneider@xxxxxxx> writes: >> Per PREEMPT_DYNAMIC, checking CONFIG_PREEMPT doesn't tell you the actual >> preemption model of the live kernel. Use the newly-introduced accessors >> instead. >> >> sched_init() -> preempt_dynamic_init() happens way before IRQs are set up, >> so this should be fine. > > Despite the name interrupt_exit_kernel_prepare() is called before IRQs > are setup, traps and page faults are "interrupts" here. > > So I'm not sure about adding that call there, because it will trigger a > WARN if called early in boot, which will trigger a trap and depending on > the context we may not survive. > > I'd be happier if we can make it a build-time check. > This can't be done at build-time for PREEMPT_DYNAMIC, but that can be punted off to whoever will implement ppc support for that :-) AFAICT if this can't use preempt_dynamic_mode (due to how "late" it is setup), the preempt_schedule_irq() needs to go and ppc needs to use irqentry_exit() / irqentry_exit_cond_resched(). I dropped that for v2. > cheers >