From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Anna-Maria Behnsen <anna-maria@linutronix.de>,
Frederic Weisbecker <frederic@kernel.org>,
John Stultz <jstultz@google.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>, Stephen Boyd <sboyd@kernel.org>,
Eric Biederman <ebiederm@xmission.com>,
Oleg Nesterov <oleg@redhat.com>
Subject: [patch V3 14/51] posix-cpu-timers: Use @now instead of @val for clarity
Date: Mon, 10 Jun 2024 18:42:22 +0200 (CEST) [thread overview]
Message-ID: <20240610164026.362850310@linutronix.de> (raw)
In-Reply-To: 20240610163452.591699700@linutronix.de
posix_cpu_timer_set() uses @val as variable for the current time. That's
confusing at best.
Use @now as anywhere else and rewrite the confusing comment about clock
sampling.
No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
---
kernel/time/posix-cpu-timers.c | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
@@ -622,7 +622,7 @@ static int posix_cpu_timer_set(struct k_
{
bool sigev_none = timer->it_sigev_notify == SIGEV_NONE;
clockid_t clkid = CPUCLOCK_WHICH(timer->it_clock);
- u64 old_expires, new_expires, old_incr, val;
+ u64 old_expires, new_expires, old_incr, now;
struct cpu_timer *ctmr = &timer->it.cpu;
struct sighand_struct *sighand;
struct task_struct *p;
@@ -674,23 +674,19 @@ static int posix_cpu_timer_set(struct k_
}
/*
- * We need to sample the current value to convert the new
- * value from to relative and absolute, and to convert the
- * old value from absolute to relative. To set a process
- * timer, we need a sample to balance the thread expiry
- * times (in arm_timer). With an absolute time, we must
- * check if it's already passed. In short, we need a sample.
+ * Sample the current clock for saving the previous setting
+ * and for rearming the timer.
*/
if (CPUCLOCK_PERTHREAD(timer->it_clock))
- val = cpu_clock_sample(clkid, p);
+ now = cpu_clock_sample(clkid, p);
else
- val = cpu_clock_sample_group(clkid, p, !sigev_none);
+ now = cpu_clock_sample_group(clkid, p, !sigev_none);
/* Retrieve the previous expiry value if requested. */
if (old) {
old->it_value = (struct timespec64){ };
if (old_expires)
- __posix_cpu_timer_get(timer, old, val);
+ __posix_cpu_timer_get(timer, old, now);
}
if (unlikely(ret)) {
@@ -706,7 +702,7 @@ static int posix_cpu_timer_set(struct k_
/* Convert relative expiry time to absolute */
if (new_expires && !(timer_flags & TIMER_ABSTIME))
- new_expires += val;
+ new_expires += now;
/* Set the new expiry time (might be 0) */
cpu_timer_setexpires(ctmr, new_expires);
@@ -716,7 +712,7 @@ static int posix_cpu_timer_set(struct k_
* not yet expired and the timer requires signal delivery.
* SIGEV_NONE timers are never armed.
*/
- if (!sigev_none && new_expires && val < new_expires)
+ if (!sigev_none && new_expires && now < new_expires)
arm_timer(timer, p);
unlock_task_sighand(p, &flags);
@@ -736,7 +732,7 @@ static int posix_cpu_timer_set(struct k_
timer->it_overrun_last = 0;
timer->it_overrun = -1;
- if (!sigev_none && val >= new_expires) {
+ if (!sigev_none && now >= new_expires) {
if (new_expires != 0) {
/*
* The designated time already passed, so we notify
next prev parent reply other threads:[~2024-06-10 16:42 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 16:42 [patch V3 00/51] posix-timers: Cure inconsistencies and the SIG_IGN mess Thomas Gleixner
2024-06-10 16:42 ` [patch V3 01/51] selftests/timers/posix_timers: Simplify error handling Thomas Gleixner
2024-06-10 16:42 ` [patch V3 02/51] selftests/timers/posix_timers: Add SIG_IGN test Thomas Gleixner
2024-06-10 16:42 ` [patch V3 03/51] selftests/timers/posix_timers: Validate signal rules Thomas Gleixner
2024-06-10 16:42 ` [patch V3 04/51] selftests/timers/posix-timers: Validate SIGEV_NONE Thomas Gleixner
2024-06-10 16:42 ` [patch V3 05/51] selftests/timers/posix-timers: Validate timer_gettime() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 06/51] selftests/timers/posix-timers: Validate overrun after unblock Thomas Gleixner
2024-06-10 16:42 ` [patch V3 07/51] posix-cpu-timers: Split up posix_cpu_timer_get() Thomas Gleixner
2024-06-21 15:28 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 08/51] posix-cpu-timers: Save interval only for armed timers Thomas Gleixner
2024-06-21 15:33 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 09/51] posix-cpu-timers: Handle interval timers correctly in timer_get() Thomas Gleixner
2024-06-22 9:04 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 10/51] posix-cpu-timers: Handle SIGEV_NONE " Thomas Gleixner
2024-06-22 14:28 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 11/51] posix-cpu-timers: Handle SIGEV_NONE timers correctly in timer_set() Thomas Gleixner
2024-06-22 14:35 ` Frederic Weisbecker
2024-06-22 21:56 ` Thomas Gleixner
2024-06-23 11:16 ` [patch V3-2 " Thomas Gleixner
2024-06-23 19:12 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 12/51] posix-cpu-timers: Replace old expiry retrieval in posix_cpu_timer_set() Thomas Gleixner
2024-06-23 11:17 ` [patch V3-2 " Thomas Gleixner
2024-06-23 20:23 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 13/51] posix-cpu-timers: Do not arm SIGEV_NONE timers Thomas Gleixner
2024-06-23 21:04 ` Frederic Weisbecker
2024-06-10 16:42 ` Thomas Gleixner [this message]
2024-06-10 16:42 ` [patch V3 15/51] posix-cpu-timers: Remove incorrect comment in posix_cpu_timer_set() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 16/51] posix-cpu-timers: Simplify posix_cpu_timer_set() Thomas Gleixner
2024-06-23 22:41 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 17/51] posix-timers: Retrieve interval in common timer_settime() code Thomas Gleixner
2024-06-25 15:13 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 18/51] posix-timers: Clear overrun in common_timer_set() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 19/51] posix-timers: Convert timer list to hlist Thomas Gleixner
2024-06-10 16:42 ` [patch V3 20/51] posix-timers: Consolidate timer setup Thomas Gleixner
2024-06-25 22:19 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 21/51] posix-cpu-timers: Make k_itimer::it_active consistent Thomas Gleixner
2024-06-25 22:36 ` Frederic Weisbecker
2024-06-10 16:42 ` [patch V3 22/51] posix-timers: Consolidate signal queueing Thomas Gleixner
2024-06-10 16:42 ` [patch V3 23/51] signal: Remove task argument from dequeue_signal() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 24/51] signal: Replace BUG_ON()s Thomas Gleixner
2024-06-10 16:42 ` [patch V3 25/51] signal: Confine POSIX_TIMERS properly Thomas Gleixner
2024-06-10 16:42 ` [patch V3 26/51] signal: Prevent user space from setting si_sys_private Thomas Gleixner
2024-06-10 16:42 ` [patch V3 27/51] signal: Get rid of resched_timer logic Thomas Gleixner
2024-06-10 16:42 ` [patch V3 28/51] posix-timers: Cure si_sys_private race Thomas Gleixner
2024-06-10 16:42 ` [patch V3 29/51] signal: Allow POSIX timer signals to be dropped Thomas Gleixner
2024-06-10 16:42 ` [patch V3 30/51] posix-timers: Drop signal if timer has been deleted or reprogrammed Thomas Gleixner
2024-06-10 16:42 ` [patch V3 31/51] posix-timers: Rename k_itimer::it_requeue_pending Thomas Gleixner
2024-06-10 16:42 ` [patch V3 32/51] posix-timers: Add proper state tracking Thomas Gleixner
2024-06-10 16:42 ` [patch V3 33/51] posix-timers: Make signal delivery consistent Thomas Gleixner
2024-06-10 16:42 ` [patch V3 34/51] posix-timers: Make signal overrun accounting sensible Thomas Gleixner
2024-06-10 16:42 ` [patch V3 35/51] posix-cpu-timers: Use dedicated flag for CPU timer nanosleep Thomas Gleixner
2024-06-10 16:42 ` [patch V3 36/51] posix-timers: Add a refcount to struct k_itimer Thomas Gleixner
2024-06-10 16:42 ` [patch V3 37/51] signal: Split up __sigqueue_alloc() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 38/51] signal: Provide posixtimer_sigqueue_init() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 39/51] signal: Add sys_private_ptr to siginfo::_sifields::_timer Thomas Gleixner
2024-06-23 11:17 ` Thomas Gleixner
2024-06-10 16:42 ` [patch V3 40/51] posix-timers: Store PID type in the timer Thomas Gleixner
2024-06-10 16:42 ` [patch V3 41/51] signal: Refactor send_sigqueue() Thomas Gleixner
2024-06-10 16:42 ` [patch V3 42/51] posix-timers: Embed sigqueue in struct k_itimer Thomas Gleixner
2024-06-10 16:42 ` [patch V3 43/51] signal: Cleanup unused posix-timer leftovers Thomas Gleixner
2024-06-10 16:42 ` [patch V3 44/51] signal: Add task argument to flush_sigqueue_mask() Thomas Gleixner
2024-06-10 16:43 ` [patch V3 45/51] signal: Provide ignored_posix_timers list Thomas Gleixner
2024-06-10 16:43 ` [patch V3 46/51] posix-timers: Handle ignored list on delete and exit Thomas Gleixner
2024-06-10 16:43 ` [patch V3 47/51] signal: Handle ignored signals in do_sigaction(action != SIG_IGN) Thomas Gleixner
2024-06-10 16:43 ` [patch V3 48/51] signal: Queue ignored posixtimers on ignore list Thomas Gleixner
2024-06-10 16:43 ` [patch V3 49/51] posix-timers: Cleanup SIG_IGN workaround leftovers Thomas Gleixner
2024-06-10 16:43 ` [patch V3 50/51] alarmtimers: Remove the throttle mechanism from alarm_forward_now() Thomas Gleixner
2024-06-10 16:43 ` [patch V3 51/51] alarmtimers: Remove return value from alarm functions Thomas Gleixner
2024-06-10 19:49 ` [patch V3 00/51] posix-timers: Cure inconsistencies and the SIG_IGN mess Peter Zijlstra
2024-06-11 6:58 ` Thomas Gleixner
2024-06-23 11:24 ` Thomas Gleixner
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=20240610164026.362850310@linutronix.de \
--to=tglx@linutronix.de \
--cc=anna-maria@linutronix.de \
--cc=ebiederm@xmission.com \
--cc=frederic@kernel.org \
--cc=jstultz@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=sboyd@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox