From: Petr Mladek <pmladek@suse.com>
To: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Jason Wessel <jason.wessel@windriver.com>,
Daniel Thompson <daniel.thompson@linaro.org>,
Peter Zijlstra <peterz@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] kdb: Call vkdb_printf() from vprintk_default() only when wanted
Date: Tue, 22 Nov 2016 13:14:33 +0100 [thread overview]
Message-ID: <20161122121433.GC8220@pathway.suse.cz> (raw)
In-Reply-To: <20161023132343.GA466@swordfish>
On Sun 2016-10-23 22:23:43, Sergey Senozhatsky wrote:
> On (10/21/16 14:50), Petr Mladek wrote:
> [..]
> > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> > index d5e397315473..db73e33811e7 100644
> > --- a/kernel/printk/printk.c
> > +++ b/kernel/printk/printk.c
> > @@ -1941,7 +1941,9 @@ int vprintk_default(const char *fmt, va_list args)
> > int r;
> >
> > #ifdef CONFIG_KGDB_KDB
> > - if (unlikely(kdb_trap_printk)) {
> > + /* Allow to pass printk() to kdb but avoid a recursion. */
> > + if (unlikely(kdb_trap_printk &&
> > + kdb_printf_cpu != smp_processor_id())) {
> ^^^^^
> aren't we are in preemptible here?
Yeah, I looked on this from one side only. "kdb_printf_cpu" is set
with disabled IRQs. Therefore the preemption is disabled if we
are in the recursion scenario. But you are right that we might
get a false positive if we are preempted in the middle of this check
and later scheduled on the CPU that called kdb_vprintf before.
Best Regards,
Petr
next prev parent reply other threads:[~2016-11-22 12:14 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-21 12:50 [PATCH 0/2] kdb: Fix locking in vkdb_printf() Petr Mladek
2016-10-21 12:50 ` [PATCH 1/2] kdb: Properly synchronize vkdb_printf() calls with other CPUs Petr Mladek
2016-11-07 10:07 ` Daniel Thompson
2016-11-22 10:34 ` Petr Mladek
2016-10-21 12:50 ` [PATCH 2/2] kdb: Call vkdb_printf() from vprintk_default() only when wanted Petr Mladek
2016-10-23 13:23 ` Sergey Senozhatsky
2016-11-22 12:14 ` Petr Mladek [this message]
2016-11-07 10:24 ` Daniel Thompson
2016-11-22 12:45 ` Petr Mladek
2016-11-22 14:32 ` Daniel Thompson
2016-11-23 16:29 ` Petr Mladek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161122121433.GC8220@pathway.suse.cz \
--to=pmladek@suse.com \
--cc=akpm@linux-foundation.org \
--cc=daniel.thompson@linaro.org \
--cc=jason.wessel@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=sergey.senozhatsky@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.