From: Josh Poimboeuf <jpoimboe@redhat.com>
To: Wang ShaoBo <bobo.shaobowang@huawei.com>
Cc: huawei.libin@huawei.com, xiexiuqi@huawei.com,
cj.chengjian@huawei.com, mingo@redhat.com, x86@kernel.org,
linux-kernel@vger.kernel.org, live-patching@vger.kernel.org,
mbenes@suse.cz, devel@etsukata.com, viro@zeniv.linux.org.uk,
esyr@redhat.com
Subject: Re: Question: livepatch failed for new fork() task stack unreliable
Date: Fri, 29 May 2020 12:44:33 -0500 [thread overview]
Message-ID: <20200529174433.wpkknhypx2bmjika@treble> (raw)
In-Reply-To: <20200529101059.39885-1-bobo.shaobowang@huawei.com>
On Fri, May 29, 2020 at 06:10:59PM +0800, Wang ShaoBo wrote:
> Stack unreliable error is reported by stack_trace_save_tsk_reliable() when trying
> to insmod a hot patch for module modification, this results in frequent failures
> sometimes. We found this 'unreliable' stack is from task just fork.
For livepatch, this shouldn't actually be a failure. The patch will
just stay in the transition state until after the fork has completed.
Which should happen in a reasonable amount of time, right?
> 1) The task was not actually scheduled to excute, at this time UNWIND_HINT_EMPTY in
> ret_from_fork() has not reset unwind_hint, it's sp_reg and end field remain default value
> and end up throwing an error in unwind_next_frame() when called by arch_stack_walk_reliable();
Yes, this seems to be true for forked-but-not-yet-scheduled tasks.
I can look at fixing that. I have some ORC cleanups in progress which
are related to UNWIND_HINT_EMPTY and the end of the stack. I can add
this issue to the list of improvements.
> 2) The task has been scheduled but UNWIND_HINT_REGS not finished, at this time
> arch_stack_walk_reliable() terminates it's backtracing loop for pt_regs unknown
> and return -EINVAL because it's a user task.
Hm, do you see this problem with upstream? It seems like it should
work. arch_stack_walk_reliable() has this:
/* Success path for user tasks */
if (user_mode(regs))
return 0;
Where exactly is the error coming from?
--
Josh
next prev parent reply other threads:[~2020-05-29 17:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-29 10:10 Question: livepatch failed for new fork() task stack unreliable Wang ShaoBo
2020-05-29 17:44 ` Josh Poimboeuf [this message]
[not found] ` <a9ed9157-f3cf-7d2c-7a8e-56150a2a114e@huawei.com>
2020-06-01 18:05 ` Josh Poimboeuf
2020-06-02 1:22 ` Wangshaobo (bobo)
2020-06-02 13:14 ` Josh Poimboeuf
2020-06-03 14:06 ` Wangshaobo (bobo)
2020-06-03 15:33 ` Josh Poimboeuf
2020-06-04 1:24 ` Wangshaobo (bobo)
2020-06-04 2:40 ` Josh Poimboeuf
2020-06-05 1:26 ` Wangshaobo (bobo)
2020-06-05 1:51 ` Josh Poimboeuf
2020-06-30 13:04 ` Wangshaobo (bobo)
2020-06-30 21:36 ` Josh Poimboeuf
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=20200529174433.wpkknhypx2bmjika@treble \
--to=jpoimboe@redhat.com \
--cc=bobo.shaobowang@huawei.com \
--cc=cj.chengjian@huawei.com \
--cc=devel@etsukata.com \
--cc=esyr@redhat.com \
--cc=huawei.libin@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=mingo@redhat.com \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
--cc=xiexiuqi@huawei.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.