On Fri 25-03-16 00:43:22, Sergey Senozhatsky wrote:
> @@ -1655,6 +1670,14 @@ asmlinkage int vprintk_emit(int facility, int level,
>       raw_spin_lock(&logbuf_lock);
>       logbuf_cpu = this_cpu;
>  
> +     /*
> +      * Set printing kthread sleep condition early, under the
> +      * logbuf_lock, so it (if RUNNING) will go to console_lock()
> +      * and spin on logbuf_lock.
> +      */
> +     if (!in_panic && printk_kthread && !need_flush_console)
> +             need_flush_console = true;
> +
>       if (unlikely(recursion_bug)) {
>               static const char recursion_msg[] =
>                       "BUG: recent printk recursion!";

I like the cleaned up need_flush_console handling! Just a suggestion: It
may be more logical to handle need_flush_console setting under logbuf_lock
but after we actually store the message in the buffer, not before. Doesn't
matter for correctness now but may be more future-proof.

                                                                Honza
-- 
Jan Kara <[email protected]>
SUSE Labs, CR

Reply via email to