Messages in this thread | | | Date | Fri, 6 Sep 2019 17:32:09 +0200 | From | Petr Mladek <> | Subject | Re: [PATCH] net/skbuff: silence warnings under memory pressure |
| |
On Fri 2019-09-06 12:39:00, Sergey Senozhatsky wrote: > On (09/05/19 13:23), Steven Rostedt wrote: > > > I think we can queue significantly much less irq_work-s from printk(). > > > > > > Petr, Steven, what do you think? > > [..] > > I mean, really, do we need to keep calling wake up if it > > probably never even executed? > > I guess ratelimiting you are talking about ("if it probably never even > executed") would be to check if we have already called wake up on the > log_wait ->head. For that we need to, at least, take log_wait spin_lock > and check that ->head is still in TASK_INTERRUPTIBLE; which is (quite, > but not exactly) close to what wake_up_interruptible() does - it doesn't > wake up the same task twice, it bails out on `p->state & state' check.
I have just realized that only sleeping tasks are in the waitqueue. It is already handled by waitqueue_active() check.
I am afraid that we could not ratelimit the wakeups. The userspace loggers might then miss the last lines for a long.
We could move wake_up_klogd() back to console_unlock(). But it might end up with a back-and-forth games according to who is currently complaining.
Sigh, I still suggest to ratelimit the warning about failed allocation.
Best Regards, Petr
| |