On Fri 2018-05-18 15:38:20, Sergey Senozhatsky wrote: > On (05/18/18 11:07), Sergey Senozhatsky wrote: > > > > if (this_cpu_read(printk_context) & PRINTK_SAFE_CONTEXT_MASK) || > > raw_spin_is_locked(&logbuf_lock) > > > > just to check per-CPU `printk_context' first and only afterwards > > access the global `logbuf_lock'. printk_nmi_enter() happens on > > every CPU, so maybe we can avoid some overhead by checking the > > local per-CPU data first. > > Nah, may be it won't. This, probably, would have been the case if we > had continue to call console drivers from printk_safe section [at least]. > CPUs don't spend that much time in printk_safe sections. Yeah, I do not think that the more complicated code is worth it. There is really minimal chance to hit printk_safe context on the given CPU. The eventual win would be negligible to the cost of printk(). In case of trigger_all_cpu_backtrace(), most CPUs spend a lot of time waiting for the spinlock in nmi_cpu_backtrace() anyway. Thanks for the ack. Best Regards, Petr