From: Ji.Zhang <ji.zhang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
To: Baruch Siach <baruch-NswTu9S1W3P6gbPvEgmw2w@public.gmane.org>
Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
wsd_upstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
Xie XiuQi <xiexiuqi-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
Ard Biesheuvel
<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>,
Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
Julien Thierry <julien.thierry-5wv7dgnIgG8@public.gmane.org>,
Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
shadanji-9Onoh4P/yGk@public.gmane.org,
James Morse <james.morse-5wv7dgnIgG8@public.gmane.org>,
Matthias Brugger
<matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Michael Weiser <michael.weiser-Mmb7MZpHnFY@public.gmane.org>,
Dave Martin <Dave.Martin-5wv7dgnIgG8@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH] arm64: avoid race condition issue in dump_backtrace
Date: Thu, 22 Mar 2018 13:33:08 +0800 [thread overview]
Message-ID: <1521696788.26617.5.camel@mtksdccf07> (raw)
In-Reply-To: <20180322045710.vmmjr2wcankea45o-MwjkAAnuF3khR1HGirfZ1z4kX+cae0hd@public.gmane.org>
Dear Baruch,
Thank you for your kind and careful examination.
That is my stupid fault due to I use different environments to do
verification and submit patch which I do the merge manually.
Anyway, thanks so much for the reminder, I will send another patch.
BRs,
Ji
On Thu, 2018-03-22 at 06:57 +0200, Baruch Siach wrote:
> Hi Ji Zhang,
>
> On Thu, Mar 22, 2018 at 11:06:00AM +0800, Ji Zhang wrote:
> > When we dump the backtrace of some specific task, there is a potential race
> > condition due to the task may be running on other cores if SMP enabled.
> > That is because for current implementation, if the task is not the current
> > task, we will get the registers used for unwind from cpu_context saved in
> > thread_info, which is the snapshot before context switch, but if the task
> > is running on other cores, the registers and the content of stack are
> > changed.
> > This may cause that we get the wrong backtrace or incomplete backtrace or
> > even crash the kernel.
> > To avoid this case, do not dump the backtrace of the tasks which are
> > running on other cores.
> > This patch cannot solve the issue completely but can shrink the window of
> > race condition.
> >
> > Signed-off-by: Ji Zhang <ji.zhang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
> > ---
> > arch/arm64/kernel/traps.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
> > index eb2d151..95749364 100644
> > --- a/arch/arm64/kernel/traps.c
> > +++ b/arch/arm64/kernel/traps.c
> > @@ -113,6 +113,9 @@ void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
> > if (tsk == current) {
> > frame.fp = (unsigned long)__builtin_frame_address(0);
> > frame.pc = (unsigned long)dump_backtrace;
> > + else if (tsk->state == TASK_RUNNING) {
>
> Missing closing brace. Does this build?
>
> > + pr_notice("Do not dump other running tasks\n");
> > + return;
> > } else {
> > /*
> > * task blocked in __switch_to
>
> baruch
>
WARNING: multiple messages have this Message-ID (diff)
From: ji.zhang@mediatek.com (Ji.Zhang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: avoid race condition issue in dump_backtrace
Date: Thu, 22 Mar 2018 13:33:08 +0800 [thread overview]
Message-ID: <1521696788.26617.5.camel@mtksdccf07> (raw)
In-Reply-To: <20180322045710.vmmjr2wcankea45o@sapphire.tkos.co.il>
Dear Baruch,
Thank you for your kind and careful examination.
That is my stupid fault due to I use different environments to do
verification and submit patch which I do the merge manually.
Anyway, thanks so much for the reminder, I will send another patch.
BRs,
Ji
On Thu, 2018-03-22 at 06:57 +0200, Baruch Siach wrote:
> Hi Ji Zhang,
>
> On Thu, Mar 22, 2018 at 11:06:00AM +0800, Ji Zhang wrote:
> > When we dump the backtrace of some specific task, there is a potential race
> > condition due to the task may be running on other cores if SMP enabled.
> > That is because for current implementation, if the task is not the current
> > task, we will get the registers used for unwind from cpu_context saved in
> > thread_info, which is the snapshot before context switch, but if the task
> > is running on other cores, the registers and the content of stack are
> > changed.
> > This may cause that we get the wrong backtrace or incomplete backtrace or
> > even crash the kernel.
> > To avoid this case, do not dump the backtrace of the tasks which are
> > running on other cores.
> > This patch cannot solve the issue completely but can shrink the window of
> > race condition.
> >
> > Signed-off-by: Ji Zhang <ji.zhang@mediatek.com>
> > ---
> > arch/arm64/kernel/traps.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
> > index eb2d151..95749364 100644
> > --- a/arch/arm64/kernel/traps.c
> > +++ b/arch/arm64/kernel/traps.c
> > @@ -113,6 +113,9 @@ void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
> > if (tsk == current) {
> > frame.fp = (unsigned long)__builtin_frame_address(0);
> > frame.pc = (unsigned long)dump_backtrace;
> > + else if (tsk->state == TASK_RUNNING) {
>
> Missing closing brace. Does this build?
>
> > + pr_notice("Do not dump other running tasks\n");
> > + return;
> > } else {
> > /*
> > * task blocked in __switch_to
>
> baruch
>
next prev parent reply other threads:[~2018-03-22 5:33 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-22 3:06 [PATCH] arm64: avoid race condition issue in dump_backtrace Ji Zhang
2018-03-22 3:06 ` Ji Zhang
2018-03-22 3:06 ` Ji Zhang
2018-03-22 4:57 ` Baruch Siach
2018-03-22 4:57 ` Baruch Siach
[not found] ` <20180322045710.vmmjr2wcankea45o-MwjkAAnuF3khR1HGirfZ1z4kX+cae0hd@public.gmane.org>
2018-03-22 5:33 ` Ji.Zhang [this message]
2018-03-22 5:33 ` Ji.Zhang
2018-03-22 5:59 ` Mark Rutland
2018-03-22 5:59 ` Mark Rutland
2018-03-22 9:35 ` Ji.Zhang
2018-03-22 9:35 ` Ji.Zhang
2018-03-26 11:39 ` Mark Rutland
2018-03-26 11:39 ` Mark Rutland
[not found] ` <20180326113932.2i6qp3776jtmcqk4-agMKViyK24J5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2018-03-28 9:33 ` Ji.Zhang
2018-03-28 9:33 ` Ji.Zhang
2018-03-28 10:12 ` Mark Rutland
2018-03-28 10:12 ` Mark Rutland
[not found] ` <20180328101240.moo44g5qd3qjuxgn-agMKViyK24J5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2018-03-30 8:08 ` Ji.Zhang
2018-03-30 8:08 ` Ji.Zhang
2018-04-04 9:04 ` Mark Rutland
2018-04-04 9:04 ` Mark Rutland
[not found] ` <20180404090431.rqwtaqovipxa5gta-agMKViyK24J5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2018-04-08 7:58 ` Ji.Zhang
2018-04-08 7:58 ` Ji.Zhang
2018-04-09 11:26 ` Mark Rutland
2018-04-09 11:26 ` Mark Rutland
[not found] ` <20180409112559.uh76jpiytznymw6w-agMKViyK24J5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2018-04-11 6:30 ` Ji.Zhang
2018-04-11 6:30 ` Ji.Zhang
2018-04-11 10:46 ` Mark Rutland
2018-04-11 10:46 ` Mark Rutland
[not found] ` <20180411104656.4afhb4durpntxqxl-agMKViyK24J5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2018-04-12 6:13 ` Ji.Zhang
2018-04-12 6:13 ` Ji.Zhang
2018-04-20 5:43 ` Ji.Zhang
2018-04-20 5:43 ` Ji.Zhang
2018-03-24 11:01 ` kbuild test robot
2018-03-24 11:01 ` kbuild test robot
2018-03-24 11:01 ` kbuild test robot
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=1521696788.26617.5.camel@mtksdccf07 \
--to=ji.zhang-nus5lvnupcjwk0htik3j/w@public.gmane.org \
--cc=Dave.Martin-5wv7dgnIgG8@public.gmane.org \
--cc=ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=baruch-NswTu9S1W3P6gbPvEgmw2w@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=james.morse-5wv7dgnIgG8@public.gmane.org \
--cc=julien.thierry-5wv7dgnIgG8@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=marc.zyngier-5wv7dgnIgG8@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=michael.weiser-Mmb7MZpHnFY@public.gmane.org \
--cc=shadanji-9Onoh4P/yGk@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
--cc=wsd_upstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=xiexiuqi-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
/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.