lkml.org 
[lkml]   [2020]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 RESEND] sched/cpuacct: Use __this_cpu_add() instead of this_cpu_ptr()
    Date
    The cpuacct_charge() and cpuacct_account_field() are called with
    rq->lock held, and this means preemption(and IRQs) are indeed
    disabled, so it is safe to use __this_cpu_*() to allow for better
    code-generation.

    Signed-off-by: Muchun Song <songmuchun@bytedance.com>
    ---
    Chane in v2:
    1. Update changelog.

    kernel/sched/cpuacct.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
    index 9fbb103834345..6448b0438ffb2 100644
    --- a/kernel/sched/cpuacct.c
    +++ b/kernel/sched/cpuacct.c
    @@ -347,7 +347,7 @@ void cpuacct_charge(struct task_struct *tsk, u64 cputime)
    rcu_read_lock();

    for (ca = task_ca(tsk); ca; ca = parent_ca(ca))
    - this_cpu_ptr(ca->cpuusage)->usages[index] += cputime;
    + __this_cpu_add(ca->cpuusage->usages[index], cputime);

    rcu_read_unlock();
    }
    @@ -363,7 +363,7 @@ void cpuacct_account_field(struct task_struct *tsk, int index, u64 val)

    rcu_read_lock();
    for (ca = task_ca(tsk); ca != &root_cpuacct; ca = parent_ca(ca))
    - this_cpu_ptr(ca->cpustat)->cpustat[index] += val;
    + __this_cpu_add(ca->cpustat->cpustat[index], val);
    rcu_read_unlock();
    }

    --
    2.11.0
    \
     
     \ /
      Last update: 2020-05-07 05:11    [W:2.973 / U:0.592 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site