All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: linux-tip-commits@vger.kernel.org,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Oleg Nesterov <oleg@redhat.com>,
	x86@kernel.org
Subject: Re: [tip: core/core] signal: Add a proper comment about preempt_disable() in ptrace_stop()
Date: Wed, 20 Sep 2023 08:57:00 +0200	[thread overview]
Message-ID: <ZQqXvPhesRmAtjvR@gmail.com> (raw)
In-Reply-To: <169515461116.27769.12932058744920773528.tip-bot2@tip-bot2>


* tip-bot2 for Sebastian Andrzej Siewior <tip-bot2@linutronix.de> wrote:

> The following commit has been merged into the core/core branch of tip:
> 
> Commit-ID:     a20d6f63dbfc176697886d7709312ad0a795648e
> Gitweb:        https://git.kernel.org/tip/a20d6f63dbfc176697886d7709312ad0a795648e
> Author:        Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> AuthorDate:    Thu, 03 Aug 2023 12:09:31 +02:00
> Committer:     Thomas Gleixner <tglx@linutronix.de>
> CommitterDate: Tue, 19 Sep 2023 22:08:29 +02:00
> 
> signal: Add a proper comment about preempt_disable() in ptrace_stop()
> 
> Commit 53da1d9456fe7 ("fix ptrace slowness") added a preempt-disable section
> between read_unlock() and the following schedule() invocation without
> explaining why it is needed.
> 
> Replace the existing contentless comment with a proper explanation to
> clarify that it is not needed for correctness but for performance reasons.
> 
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Acked-by: Oleg Nesterov <oleg@redhat.com>
> Link: https://lore.kernel.org/r/20230803100932.325870-2-bigeasy@linutronix.de
> 
> ---
>  kernel/signal.c | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/kernel/signal.c b/kernel/signal.c
> index 0901901..3035beb 100644
> --- a/kernel/signal.c
> +++ b/kernel/signal.c
> @@ -2329,10 +2329,22 @@ static int ptrace_stop(int exit_code, int why, unsigned long message,
>  		do_notify_parent_cldstop(current, false, why);
>  

Minor speling nits:

>  	/*
> -	 * Don't want to allow preemption here, because
> -	 * sys_ptrace() needs this task to be inactive.
> +	 * The previous do_notify_parent_cldstop() invocation woke ptracer.
> +	 * One a PREEMPTION kernel this can result in preemption requirement

s/One
 /On

> +	 * which will be fulfilled after read_unlock() and the ptracer will be
> +	 * put on the CPU.
> +	 * The ptracer is in wait_task_inactive(, __TASK_TRACED) waiting for
> +	 * this task wait in schedule(). If this task gets preempted then it
> +	 * remains enqueued on the runqueue. The ptracer will observe this and
> +	 * then sleep for a delay of one HZ tick. In the meantime this task
> +	 * gets scheduled, enters schedule() and will wait for the ptracer.
>  	 *
> -	 * XXX: implement read_unlock_no_resched().
> +	 * This preemption point is not bad from a correctness point of
> +	 * view but extends the runtime by one HZ tick time due to the
> +	 * ptracer's sleep.  The preempt-disable section ensures that there
> +	 * will be no preemption between unlock and schedule() and so
> +	 * improving the performance since the ptracer will observe that

s/improving the performance
 /improving performance

> +	 * the tracee is scheduled out once it gets on the CPU.
>  	 */
>  	preempt_disable();
>  	read_unlock(&tasklist_lock);

Thanks,

	Ingo

  reply	other threads:[~2023-09-20  6:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-03 10:09 [PATCH REPOST v3 0/2] signal: Avoid preempt_disable() in ptrace_stop() on PREEMPT_RT Sebastian Andrzej Siewior
2023-08-03 10:09 ` [PATCH 1/2] signal: Add proper comment about the preempt-disable in ptrace_stop() Sebastian Andrzej Siewior
2023-09-19 20:16   ` [tip: core/core] signal: Add a proper comment about preempt_disable() " tip-bot2 for Sebastian Andrzej Siewior
2023-09-20  6:57     ` Ingo Molnar [this message]
2023-09-20  7:47       ` [PATCH] signal: Correct spelling typos " Sebastian Andrzej Siewior
2023-08-03 10:09 ` [PATCH 2/2] signal: Don't disable preemption in ptrace_stop() on PREEMPT_RT Sebastian Andrzej Siewior
2023-09-19 20:16   ` [tip: core/core] " tip-bot2 for Sebastian Andrzej Siewior
2023-08-17 13:46 ` [PATCH REPOST v3 0/2] signal: Avoid preempt_disable() " Sebastian Andrzej Siewior

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=ZQqXvPhesRmAtjvR@gmail.com \
    --to=mingo@kernel.org \
    --cc=bigeasy@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@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.