All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@kernel.org>
To: live-patching@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Seth Forshee <sforshee@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, Song Liu <song@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Petr Mladek <pmladek@suse.com>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Miroslav Benes <mbenes@suse.cz>, Jiri Kosina <jikos@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Rik van Riel <riel@surriel.com>
Subject: [PATCH v3 1/3] livepatch: Skip task_call_func() for current task
Date: Fri, 24 Feb 2023 08:49:59 -0800	[thread overview]
Message-ID: <4b92e793462d532a05f03767151fa29db3e68e13.1677257135.git.jpoimboe@kernel.org> (raw)
In-Reply-To: <cover.1677257135.git.jpoimboe@kernel.org>

The current task doesn't need the scheduler's protection to unwind its
own stack.

Tested-by: Seth Forshee (DigitalOcean) <sforshee@kernel.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
 kernel/livepatch/transition.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c
index f1b25ec581e0..4d1f443778f7 100644
--- a/kernel/livepatch/transition.c
+++ b/kernel/livepatch/transition.c
@@ -307,7 +307,11 @@ static bool klp_try_switch_task(struct task_struct *task)
 	 * functions.  If all goes well, switch the task to the target patch
 	 * state.
 	 */
-	ret = task_call_func(task, klp_check_and_switch_task, &old_name);
+	if (task == current)
+		ret = klp_check_and_switch_task(current, &old_name);
+	else
+		ret = task_call_func(task, klp_check_and_switch_task, &old_name);
+
 	switch (ret) {
 	case 0:		/* success */
 		break;
-- 
2.39.1


  reply	other threads:[~2023-02-24 16:50 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-24 16:49 [PATCH v3 0/3] livepatch,sched: Add livepatch task switching to cond_resched() Josh Poimboeuf
2023-02-24 16:49 ` Josh Poimboeuf [this message]
2023-03-22 22:48   ` [tip: sched/core] livepatch: Skip task_call_func() for current task tip-bot2 for Josh Poimboeuf
2023-02-24 16:50 ` [PATCH v3 2/3] livepatch,sched: Add livepatch task switching to cond_resched() Josh Poimboeuf
2023-02-27 15:55   ` Petr Mladek
2023-02-28 16:56     ` Josh Poimboeuf
2023-03-03 14:00       ` Petr Mladek
2023-03-13 23:33         ` [PATCH 0.5/3] livepatch: Convert stack entries array to percpu Josh Poimboeuf
2023-03-14 10:50           ` Petr Mladek
2023-03-15  0:26             ` Josh Poimboeuf
2023-03-22 22:48           ` [tip: sched/core] " tip-bot2 for Josh Poimboeuf
2023-03-22 22:48   ` [tip: sched/core] livepatch,sched: Add livepatch task switching to cond_resched() tip-bot2 for Josh Poimboeuf
2023-02-24 16:50 ` [PATCH v3 3/3] vhost: Fix livepatch timeouts in vhost_worker() Josh Poimboeuf
2023-03-22 22:48   ` [tip: sched/core] " tip-bot2 for Josh Poimboeuf
2023-02-28 16:39 ` [PATCH v3 0/3] livepatch,sched: Add livepatch task switching to cond_resched() Seth Forshee
2023-03-30 16:11 ` Miroslav Benes

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=4b92e793462d532a05f03767151fa29db3e68e13.1677257135.git.jpoimboe@kernel.org \
    --to=jpoimboe@kernel.org \
    --cc=jikos@kernel.org \
    --cc=joe.lawrence@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=live-patching@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mbenes@suse.cz \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pmladek@suse.com \
    --cc=riel@surriel.com \
    --cc=sforshee@kernel.org \
    --cc=song@kernel.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.