Re: [PATCH 2/6] posix-cpu-timers: Don't start process wide cputime counter if timer is disabled

From: Frederic Weisbecker
Date: Thu Jun 10 2021 - 06:24:17 EST


On Wed, Jun 09, 2021 at 02:18:34PM +0200, Frederic Weisbecker wrote:
> On Fri, Jun 04, 2021 at 01:31:55PM +0200, Frederic Weisbecker wrote:
> > If timer_settime() is called with a 0 expiration on a timer that is
> > already disabled, the process wide cputime counter will be started
> > and won't ever get a chance to be stopped by stop_process_timer() since
> > no timer is actually armed to be processed.
> >
> > This process wide counter might bring some performance hit due to the
> > concurrent atomic additions at the thread group scope.
> >
> > The following snippet is enough to trigger the issue.
> >
> > void trigger_process_counter(void)
> > {
> > timer_t id;
> > struct itimerspec val = { };
> >
> > timer_create(CLOCK_PROCESS_CPUTIME_ID, NULL, &id);
> > timer_settime(id, TIMER_ABSTIME, &val, NULL);
> > timer_delete(id);
> > }
> >
> > So make sure we don't needlessly start it.
> >
> > Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
> > Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> > Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
>
> No Fixes tag for this one. It has been there since year 1 AG.
>
> I suspect it's the same for most other commits in the series, checking...

Right, so only the first commit needs one.

Thanks.