lkml.org 
[lkml]   [2019]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 2/2] posix-cpu-timers: Remove private interval storage
    Posix CPU timers store the interval in private storage for historical
    reasons (it_interval used to be a non scalar representation on 32bit
    systems). This is gone and there is no reason for duplicated storage
    anymore.

    Use it_interval everywhere.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    include/linux/posix-timers.h | 2 +-
    kernel/time/posix-cpu-timers.c | 13 ++++++-------
    2 files changed, 7 insertions(+), 8 deletions(-)

    --- a/include/linux/posix-timers.h
    +++ b/include/linux/posix-timers.h
    @@ -12,7 +12,7 @@ struct siginfo;

    struct cpu_timer_list {
    struct list_head entry;
    - u64 expires, incr;
    + u64 expires;
    struct task_struct *task;
    int firing;
    };
    --- a/kernel/time/posix-cpu-timers.c
    +++ b/kernel/time/posix-cpu-timers.c
    @@ -67,13 +67,13 @@ static void bump_cpu_timer(struct k_itim
    int i;
    u64 delta, incr;

    - if (timer->it.cpu.incr == 0)
    + if (!timer->it_interval)
    return;

    if (now < timer->it.cpu.expires)
    return;

    - incr = timer->it.cpu.incr;
    + incr = timer->it_interval;
    delta = now + incr - timer->it.cpu.expires;

    /* Don't use (incr*2 < delta), incr*2 might overflow. */
    @@ -520,7 +520,7 @@ static void cpu_timer_fire(struct k_itim
    */
    wake_up_process(timer->it_process);
    timer->it.cpu.expires = 0;
    - } else if (timer->it.cpu.incr == 0) {
    + } else if (!timer->it_interval) {
    /*
    * One-shot timer. Clear it as soon as it's fired.
    */
    @@ -606,7 +606,7 @@ static int posix_cpu_timer_set(struct k_
    */

    ret = 0;
    - old_incr = timer->it.cpu.incr;
    + old_incr = timer->it_interval;
    old_expires = timer->it.cpu.expires;
    if (unlikely(timer->it.cpu.firing)) {
    timer->it.cpu.firing = -1;
    @@ -684,8 +684,7 @@ static int posix_cpu_timer_set(struct k_
    * Install the new reload setting, and
    * set up the signal and overrun bookkeeping.
    */
    - timer->it.cpu.incr = timespec64_to_ns(&new->it_interval);
    - timer->it_interval = ns_to_ktime(timer->it.cpu.incr);
    + timer->it_interval = timespec64_to_ktime(new->it_interval);

    /*
    * This acts as a modification timestamp for the timer,
    @@ -724,7 +723,7 @@ static void posix_cpu_timer_get(struct k
    /*
    * Easy part: convert the reload time.
    */
    - itp->it_interval = ns_to_timespec64(timer->it.cpu.incr);
    + itp->it_interval = ktime_to_timespec64(timer->it_interval);

    if (!timer->it.cpu.expires)
    return;

    \
     
     \ /
      Last update: 2019-01-11 14:37    [W:2.717 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site