Messages in this thread | | | Date | Tue, 5 Apr 2022 18:03:43 +0300 | From | Andy Shevchenko <> | Subject | Re: [PATCH printk v2 00/12] implement threaded console printing |
| |
On Tue, Apr 05, 2022 at 03:31:23PM +0206, John Ogness wrote: > This is v2 of a series to implement a kthread for each registered > console. v1 is here [0]. The kthreads locklessly retrieve the > records from the printk ringbuffer and also do not cause any lock > contention between each other. This allows consoles to run at full > speed. For example, a netconsole is able to dump records much > faster than a serial or vt console. Also, during normal operation, > it completely decouples printk() callers from console printing. > > There are situations where kthread printing is not sufficient. For > example, during panic situations, where the kthreads may not get a > chance to schedule. In such cases, the current method of attempting > to print directly within the printk() caller context is used. New > functions printk_prefer_direct_enter() and > printk_prefer_direct_exit() are made available to mark areas of the > kernel where direct printing is preferred. (These should only be > areas that do not occur during normal operation.) > > This series also introduces pr_flush(): a might_sleep() function > that will block until all active printing threads have caught up > to the latest record at the time of the pr_flush() call. This > function is useful, for example, to wait until pending records > are flushed to consoles before suspending. > > Note that this series does *not* increase the reliability of console > printing. Rather it focuses on the non-interference aspect of > printk() by decoupling printk() callers from printing (during normal > operation). Nonetheless, the reliability aspect should not worsen > due to this series.
From the list of patches and the only one I am Cc'ed to I can't find the answer to my question, i.e. does it take care about console_unregister() cases at run time? (We have some drivers to call ->exit() for console in that case, perhaps it should do something before calling it.)
Would be nice to see some pointers where I can find the answer and maybe even describing in the cover-letter/commit message/documentation.
-- With Best Regards, Andy Shevchenko
| |