lkml.org 
[lkml]   [2010]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] sched: cpuacct: Use bigger percpu counter batch values for stats counters
    Hi Anton,

    On Mon, 18 Jan 2010 15:41:42 +1100
    Anton Blanchard <anton@samba.org> wrote:

    > Note: ccing ia64 and s390 who have not yet added code to statically
    > initialise cputime_one_jiffy at boot.
    > See a42548a18866e87092db93b771e6c5b060d78401 (cputime: Optimize
    > jiffies_to_cputime(1) for details). Adding this would help optimise not only
    > this patch but many other areas of the scheduler when
    > CONFIG_VIRT_CPU_ACCOUNTING is enabled.

    For s390 the jiffies_to_cputime is a compile time constant. No need to
    initialize it at runtime, no?

    > Index: linux.trees.git/kernel/sched.c
    > ===================================================================
    > --- linux.trees.git.orig/kernel/sched.c 2010-01-18 14:27:12.000000000 +1100
    > +++ linux.trees.git/kernel/sched.c 2010-01-18 15:21:59.000000000 +1100
    > @@ -10894,6 +10894,7 @@ static void cpuacct_update_stats(struct
    > enum cpuacct_stat_index idx, cputime_t val)
    > {
    > struct cpuacct *ca;
    > + int batch;
    >
    > if (unlikely(!cpuacct_subsys.active))
    > return;
    > @@ -10901,8 +10902,9 @@ static void cpuacct_update_stats(struct
    > rcu_read_lock();
    > ca = task_ca(tsk);
    >
    > + batch = min_t(long, percpu_counter_batch * cputime_one_jiffy, INT_MAX);
    > do {
    > - percpu_counter_add(&ca->cpustat[idx], val);
    > + __percpu_counter_add(&ca->cpustat[idx], val, batch);
    > ca = ca->parent;
    > } while (ca);
    > rcu_read_unlock();

    The patch itself trades some accuracy (larger cpu accounting value that
    are stored per-cpu) against runtime overhead (spinlock to transfer the
    value to the global variable in __percpu_counter_add). Did you
    calculate how big the loss in accuracy is?

    --
    blue skies,
    Martin.

    "Reality continues to ruin my life." - Calvin.



    \
     
     \ /
      Last update: 2010-01-18 10:45    [W:4.103 / U:0.352 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site