From: Petr Mladek <pmladek@suse.com>
To: Rik van Riel <riel@fb.com>
Cc: "peterz@infradead.org" <peterz@infradead.org>,
Song Liu <songliubraving@fb.com>,
"joe.lawrence@redhat.com" <joe.lawrence@redhat.com>,
"song@kernel.org" <song@kernel.org>,
"jpoimboe@redhat.com" <jpoimboe@redhat.com>,
"mingo@redhat.com" <mingo@redhat.com>,
"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>,
Kernel Team <Kernel-team@fb.com>,
"live-patching@vger.kernel.org" <live-patching@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] sched,livepatch: call klp_try_switch_task in __cond_resched
Date: Mon, 9 May 2022 17:22:25 +0200 [thread overview]
Message-ID: <YnkxsaOWrxrSQ4D8@alley> (raw)
In-Reply-To: <0f6a45f80d01e9a5054c7973090a479707bda52f.camel@fb.com>
On Mon 2022-05-09 14:13:17, Rik van Riel wrote:
> On Mon, 2022-05-09 at 11:38 +0200, Peter Zijlstra wrote:
> > On Mon, May 09, 2022 at 08:06:22AM +0000, Song Liu wrote:
> > >
> > >
> > > > On May 9, 2022, at 12:04 AM, Peter Zijlstra
> > > > <peterz@infradead.org> wrote:
> > > >
> > > > On Sat, May 07, 2022 at 10:46:28AM -0700, Song Liu wrote:
> > > > > Busy kernel threads may block the transition of livepatch. Call
> > > > > klp_try_switch_task from __cond_resched to make the transition
> > > > > easier.
> > > >
> > > > What will a PREEMPT=y kernel do? How is it not a problem there,
> > > > and if
> > > > it is, this will not help that.
> >
> > Not really. There is no difference between an explicit preemption
> > point
> > (cond_resched) or an involuntary preemption point (PREEMPT=y).
> >
> > So unless you can *exactly* say why it isn't a problem on PREEMPT=y,
> > none of this makes any sense.
>
> I suspect it is a problem on PREEMPT=y too, but is there some sort
> of fairly light weight (in terms of stuff we need to add to the kernel)
> solution that could solve both?
>
> Do we have some real time per-CPU kernel threads we could just
> issue a NOOP call to, which would preempt long-running kernel
> threads (like a kworker with oodles of work to do)?
>
> Could the stopper workqueue be a suitable tool for this job?
An interesting solution would be to queue irq_work in CPU that
is occupied by the long-running kernel task.
It might be queued from klp_try_complete_transition() that
is called from the regular klp_transition_work_fn().
Then the task might try to migrate itself from the irq_work.
But the problem is that stack_trace_save_tsk_reliable() probably
will not be able to store a reliable backtrace for the interrupted
task.
So, we might really need to stop the task (CPU). But there still
might be problem if stack_trace_save_tsk_reliable() will consider
the stack as reliable.
Best Regards,
Petr
next prev parent reply other threads:[~2022-05-09 15:22 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-07 17:46 [RFC] sched,livepatch: call klp_try_switch_task in __cond_resched Song Liu
2022-05-07 18:26 ` Rik van Riel
2022-05-07 19:04 ` Song Liu
2022-05-07 19:18 ` Rik van Riel
2022-05-08 20:41 ` Peter Zijlstra
2022-05-09 1:07 ` Rik van Riel
2022-05-09 7:04 ` Peter Zijlstra
2022-05-09 8:06 ` Song Liu
2022-05-09 9:38 ` Peter Zijlstra
2022-05-09 14:13 ` Rik van Riel
2022-05-09 15:22 ` Petr Mladek [this message]
2022-05-09 15:07 ` Petr Mladek
2022-05-09 16:22 ` Song Liu
2022-05-10 7:56 ` Petr Mladek
2022-05-10 13:33 ` Rik van Riel
2022-05-10 15:44 ` Petr Mladek
2022-05-10 16:07 ` Rik van Riel
2022-05-10 16:52 ` Josh Poimboeuf
2022-05-10 18:07 ` Rik van Riel
2022-05-10 18:42 ` Josh Poimboeuf
2022-05-10 19:45 ` Song Liu
2022-05-10 23:04 ` Josh Poimboeuf
2022-05-10 23:57 ` Song Liu
2022-05-11 0:33 ` Josh Poimboeuf
2022-05-11 9:24 ` Petr Mladek
2022-05-11 16:33 ` Song Liu
2022-05-12 4:07 ` Josh Poimboeuf
2022-05-13 12:33 ` Petr Mladek
2022-05-13 13:34 ` Peter Zijlstra
2022-05-11 0:35 ` Rik van Riel
2022-05-11 0:37 ` Josh Poimboeuf
2022-05-11 0:46 ` Rik van Riel
2022-05-11 1:12 ` Josh Poimboeuf
2022-05-11 18:09 ` Rik van Riel
2022-05-12 3:59 ` Josh Poimboeuf
2022-05-09 15:52 ` [RFC] sched,livepatch: call stop_one_cpu in klp_check_and_switch_task Rik van Riel
2022-05-09 16:28 ` Song Liu
2022-05-09 18:00 ` Josh Poimboeuf
2022-05-09 19:10 ` Rik van Riel
2022-05-09 19:17 ` Josh Poimboeuf
2022-05-09 19:49 ` Rik van Riel
2022-05-09 20:09 ` Josh Poimboeuf
2022-05-10 0:32 ` Song Liu
2022-05-10 9:35 ` Peter Zijlstra
2022-05-10 1:48 ` Rik van Riel
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=YnkxsaOWrxrSQ4D8@alley \
--to=pmladek@suse.com \
--cc=Kernel-team@fb.com \
--cc=joe.lawrence@redhat.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=riel@fb.com \
--cc=song@kernel.org \
--cc=songliubraving@fb.com \
--cc=vincent.guittot@linaro.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.