* [PATCH 2/3] timer: Check thread timers only when there are active thread timers
2015-08-26 3:17 [PATCH 0/3] timer: Improve itimers scalability Jason Low
@ 2015-08-26 3:17 ` Jason Low
0 siblings, 0 replies; 3+ messages in thread
From: Jason Low @ 2015-08-26 3:17 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Thomas Gleixner, Oleg Nesterov,
Paul E. McKenney
Cc: linux-kernel, Frederic Weisbecker, Linus Torvalds,
Davidlohr Bueso, Steven Rostedt, Andrew Morton, Terry Rudd,
Rik van Riel, Scott J Norton, Jason Low
The fastpath_timer_check() contains logic to check for if any timers
are set by checking if !task_cputime_zero(). Similarly, we can do this
before calling check_thread_timers(). In the case where there
are only process-wide timers, this will skip all the computations for
the per-thread timers when there are no per-thread timers.
Signed-off-by: Jason Low <jason.low2@hp.com>
---
kernel/time/posix-cpu-timers.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
index 02596ff..535bef5 100644
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
@@ -1168,11 +1168,13 @@ void run_posix_cpu_timers(struct task_struct *tsk)
if (!lock_task_sighand(tsk, &flags))
return;
/*
- * Here we take off tsk->signal->cpu_timers[N] and
- * tsk->cpu_timers[N] all the timers that are firing, and
- * put them on the firing list.
+ * If there are active per-thread timers, take off
+ * tsk->signal->cpu_timers[N] and tsk->cpu_timers[N] all the
+ * timers that are firing, and put them on the firing list.
*/
- check_thread_timers(tsk, &firing);
+ if (!task_cputime_zero(&tsk->cputime_expires))
+ check_thread_timers(tsk, &firing);
+
/*
* If there are any active process wide timers (POSIX 1.b, itimers,
* RLIMIT_CPU) cputimer must be running.
--
1.7.2.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/3] timer: Check thread timers only when there are active thread timers
@ 2015-08-26 17:04 George Spelvin
2015-08-26 17:41 ` Jason Low
0 siblings, 1 reply; 3+ messages in thread
From: George Spelvin @ 2015-08-26 17:04 UTC (permalink / raw)
To: jason.low2; +Cc: akpm, linux, linux-kernel
- check_thread_timers(tsk, &firing);
+ if (!task_cputime_zero(&tsk->cputime_expires))
+ check_thread_timers(tsk, &firing);
Sincere question; I'm not certain myself: would it make more sense to put
this shortcut into check_thread_timers()?
It seems more like an optimization of that function than something the
caller needs to know about.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2/3] timer: Check thread timers only when there are active thread timers
2015-08-26 17:04 [PATCH 2/3] timer: Check thread timers only when there are active thread timers George Spelvin
@ 2015-08-26 17:41 ` Jason Low
0 siblings, 0 replies; 3+ messages in thread
From: Jason Low @ 2015-08-26 17:41 UTC (permalink / raw)
To: George Spelvin; +Cc: akpm, linux-kernel, jason.low2
On Wed, 2015-08-26 at 13:04 -0400, George Spelvin wrote:
> - check_thread_timers(tsk, &firing);
> + if (!task_cputime_zero(&tsk->cputime_expires))
> + check_thread_timers(tsk, &firing);
>
> Sincere question; I'm not certain myself: would it make more sense to put
> this shortcut into check_thread_timers()?
>
> It seems more like an optimization of that function than something the
> caller needs to know about.
Yes, I also thought it might be better if we add something like:
if (task_cputime_zero(&tsk->cputime_expires)
return;
in check_thread_timers(). The reason I made it this way though is
because in the next few lines, we do a similar check before calling
check_process_timers(), and I wanted to keep things consistent.
However, perhaps we can consider also moving that
tsk->signal->cputimer.running check into check_process_timers() too.
Thanks for the suggestions.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-08-26 17:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-26 17:04 [PATCH 2/3] timer: Check thread timers only when there are active thread timers George Spelvin
2015-08-26 17:41 ` Jason Low
-- strict thread matches above, loose matches on Subject: below --
2015-08-26 3:17 [PATCH 0/3] timer: Improve itimers scalability Jason Low
2015-08-26 3:17 ` [PATCH 2/3] timer: Check thread timers only when there are active thread timers Jason Low
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox