[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Zx0K1VI8bd1D3AYm@pavilion.home>
Date: Sat, 26 Oct 2024 17:29:25 +0200
From: Frederic Weisbecker <frederic@...nel.org>
To: Benjamin Segall <bsegall@...gle.com>
Cc: linux-kernel@...r.kernel.org,
Anna-Maria Behnsen <anna-maria@...utronix.de>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH v3] posix-cpu-timers: clear TICK_DEP_BIT_POSIX_TIMER on
clone
Le Fri, Oct 25, 2024 at 06:35:35PM -0700, Benjamin Segall a écrit :
> When cloning a new thread, its posix_cputimers are not inherited, and
> are cleared by posix_cputimers_init(). However, this does not clear the
> tick dependency it creates in tsk->tick_dep_mask, and the handler does
> not reach the code to clear the dependency if there were no timers to
> begin with.
>
> Thus if a thread has a cputimer running before clone/fork, all
> descendants will prevent nohz_full unless they create a cputimer of
> their own.
>
> Fix this by entirely clearing the tick_dep_mask in copy_process().
> (There is currently no inherited state that needs a tick dependency)
>
> Process-wide timers do not have this problem because fork does not copy
> signal_struct as a baseline, it creates one from scratch.
>
> Fixes: b78783000d5c ("posix-cpu-timers: Migrate to use new tick dependency mask model")
> Signed-off-by: Ben Segall <bsegall@...gle.com>
> Cc: stable@...r.kernel.org
Reviewed-by: Frederic Weisbecker <frederic@...nel.org>
Thanks!
Powered by blists - more mailing lists