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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).