lkml.org 
[lkml]   [2015]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/3] timer: Check thread timers only when there are active thread timers
    Date
    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


    \
     
     \ /
      Last update: 2015-08-26 05:41    [W:4.100 / U:0.296 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site