]> git.baikalelectronics.ru Git - kernel.git/commit
posix-cpu-timers: Force next_expiration recalc after timer deletion
authorFrederic Weisbecker <frederic@kernel.org>
Mon, 26 Jul 2021 12:55:09 +0000 (14:55 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 10 Aug 2021 15:09:59 +0000 (17:09 +0200)
commitcf9ec1e92f81aefd69292b0b110861725cf3da70
treefc28cebc76fb649e06eee2f55f15a2c9a9ce36f9
parente379b7c42bc97e88e082ce99490551ec2bedb86b
posix-cpu-timers: Force next_expiration recalc after timer deletion

A timer deletion only dequeues the timer but it doesn't shutdown
the related costly process wide cputimer counter and the tick dependency.

The following code snippet keeps this overhead around for one week after
the timer deletion:

void trigger_process_counter(void)
{
timer_t id;
struct itimerspec val = { };

val.it_value.tv_sec = 604800;
timer_create(CLOCK_PROCESS_CPUTIME_ID, NULL, &id);
timer_settime(id, 0, &val, NULL);
timer_delete(id);
}

Make sure the next target's tick recalculates the nearest expiration and
clears the process wide counter and tick dependency if necessary.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210726125513.271824-3-frederic@kernel.org
include/linux/posix-timers.h
kernel/time/posix-cpu-timers.c