On Mon, 29 Jan 2018 11:29:18 +0900 Sergey Senozhatsky <sergey.senozhatsky.w...@gmail.com> wrote:
> On (01/26/18 16:26), Petr Mladek wrote: > [..] > > First, this delays showing eventually valuable information until > > the preemption is enabled. It might never happen if the system > > is in big troubles. In each case, it might be much longer delay > > than it was before. > > If the system is in "big troubles" then what makes irq_work more > possible? Local IRQs can stay disabled, just like preemption. I > guess when the troubles are really big our strategy is the same > for both wq and irq_work solutions - we keep the printk_safe buffer > and wait for panic()->flush. Working on the RT kernel, I would tell you there's a huge difference getting an irq_work to trigger than to expect something to schedule. It takes much less to disable the systems scheduling than it does to disable interrupts. If interrupts are disabled, then so is scheduling. But if scheduling is disabled, interrupts may still trigger. But if printk_safe() is just for recursion protection, how important is it to get out? -- Steve