Re: [RFC][PATCH v2 1/2] printk: Make printk() completely async

From: Tejun Heo
Date: Fri Mar 11 2016 - 12:22:22 EST

Hello, Sergey.

On Tue, Mar 08, 2016 at 07:21:52PM +0900, Sergey Senozhatsky wrote:
> I'd personally prefer to go with the "less dependency" option -- a dedicated
> kthread, I think. mostly for the sake of simplicity. I agree with the point
> that console_unlock() has unpredictable execution time, and in general case
> we would have a busy kworker (or sleeping in console_lock() or doing
> cond_resched()) and an idle extra WQ_RESCUER kthread, with activation rules
> that don't depend on printk. printk with dedicated printk-kthread seems
> easier to control. how does it sound?

I don't think it makes sense to avoid workqueue for execution latency.
The only case which can matter is the rescuer case and as I wrote
before the system is already in an extremely high latency mode by the
time rescuer is needed, so it's unlikely to make noticeable

However, I agree that using kthread is a good idea here just to reduce
the amount of dependency as prink working even during complex failures
is important. workqueue itself is fairly complex and it also requires
timer and task creation to work correctly for proper operation.
That's a lot of extra dependency.