Messages in this thread | | | Subject | Re: [PATCH] printk: avoid livelock if another CPU printks continuously | From | Peter Hurley <> | Date | Wed, 10 Feb 2016 08:50:46 -0800 |
| |
On 02/10/2016 08:25 AM, Steven Rostedt wrote: > On Wed, 10 Feb 2016 17:10:16 +0100 > Petr Mladek <pmladek@suse.com> wrote: > >>> Note, it's not that performance critical, and the loop only happens if >>> someone else is adding to the console, which hopefully, should be rare. >> >> I probably used too strong words. It is possible that the performance >> impact will not be critical. But the behavior is non-deterministic. >> I think that the approach taken by Jack is more promising. >> I mean the offloading of the console stuff to a workqueue. > > My worry about that is that it never comes out. The point about printk, > is that it should pretty much be guaranteed to print. If the system is > dying, and we push it off to a work queue, and that workqueue never > runs, then we lose critical data.
I agree.
I thought a more promising approach was Pan Xinhui's patch from August [1] which hands off console output to the incoming cpu. The reqd state machine is described in more detail in the revised patch [2].
Unfortunately, the patch was abandoned. I think he may have misunderstood when I also referred to Jack's patches; I meant to simply draw attention to concurrent work for review and comparison.
[1] original https://lkml.org/lkml/2015/8/11/333 [2] revised https://lkml.org/lkml/2015/8/12/321
| |