On (12/18/17 21:03), Steven Rostedt wrote:
> > and this is exactly what I'm still observing. i_do_printks-1992 stops
> > printing, while console_sem is owned by another task. Since log_store()
> > much faster than call_console_drivers() AND console_sem owner is getting
> > preempted for unknown period of time, we end up having pending messages
> > in logbuf... and it's kworker/0:1-135 that prints them all.
> > 
> >    systemd-udevd-671   [003] d..3    66.334866: offloading: set 
> > console_owner
> >      kworker/0:1-135   [000] d..2    66.335999: offloading: 
> > vprintk_emit()->trylock FAIL  will spin? :1
> >     i_do_printks-1992  [002] d..2    66.345474: offloading: 
> > vprintk_emit()->trylock FAIL  will spin? :0    x 1100
> >    ...
> >    systemd-udevd-671   [003] d..3    66.345917: offloading: clear 
> > console_owner  waiter != NULL :1
> 
> And kworker will still be bounded in what it can print. Yes it may end
> up being the entire buffer, but that should not take longer than a
> watchdog.

not the case on my setup. "1100 messages" is already longer than watchdog.
consoles don't scale. if anyone's console can keep up with 2 printing CPUs,
then let's see what logbuf size that person will set on a system with 1024
CPUs under OOM. I doubt that will be 128KB.

anyway,
before you guys push the patch to printk.git, can we wait for Tejun to
run his tests against it? (or do we have a preemptive "non realistic
tests" conclusion?)

        -ss

Reply via email to