lkml.org 
[lkml]   [2016]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 00/10] vtime: Delay cputime accounting to tick
    From
    Date
    On 12/06/2016 03:32 AM, Frederic Weisbecker wrote:
    > This follows up Martin Schwidefsky's patch which propose to delay
    > cputime accounting to the tick in order to minimize the calls to
    > account_system_time() and alikes as these functions can carry quite some
    > overhead:
    >
    > http://lkml.kernel.org/r/20161121111728.13a0a3db@mschwide
    >
    > The set includes Martin's patch, rebased on top of tip:sched/core and
    > latest s390 changes, and extends it to the other implementations of
    > CONFIG_VIRT_CPU_ACCOUNTING_NATIVE (powerpc and ia64) along with a few
    > core changes to adapt the whole.
    >
    > Only built-tested though as I don't have access to any of these archs.
    >
    > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
    > vtime/acc
    >

    I have not checked the results yet (1), but this branch reduces the overhead
    of calculating the times a lot. I have a microbenchmark that does some simple
    KVM hypercalls under s390 and the average time shrinks from 280ns to 260ns.
    (we call accounting at guest enter and exit)
    About 50% of the savings seems to be Martins changes in vtime_account_irq_enter,
    the other 50% seems to be common code accounting doing less work.

    These savings of ~20ns per guest exit will also help virtio, pagefault and any
    other host activity on behalf of KVM guests. Nice.


    (1) the values seem to make sense but I have not done any calculation yet.


    > HEAD: ee6c393b212193bc01818c7cf4ae9cba3f469f00
    >
    > Thanks,
    > Frederic
    > ---
    >
    > Frederic Weisbecker (9):
    > powerpc32: Fix stale scaled stime on context switch
    > ia64: Fix wrong start cputime assignment on task switch
    > cputime: Allow accounting system time using cpustat index
    > cputime: Export account_guest_time
    > powerpc: Prepare accounting structure for cputime flush on tick
    > powerpc: Migrate stolen_time field to accounting structure
    > powerpc/vtime: Accumulate cputime and account only on tick/task switch
    > ia64: Accumulate cputime and account only on tick/task switch
    > vtime: Rename vtime_account_user() to vtime_flush()
    >
    > Martin Schwidefsky (1):
    > s390/cputime: delayed accounting of system time
    >
    >
    > arch/ia64/include/asm/thread_info.h | 6 ++
    > arch/ia64/kernel/time.c | 66 +++++++++++-----
    > arch/powerpc/include/asm/accounting.h | 14 +++-
    > arch/powerpc/include/asm/paca.h | 1 -
    > arch/powerpc/kernel/asm-offsets.c | 8 +-
    > arch/powerpc/kernel/time.c | 138 +++++++++++++++++++++-------------
    > arch/powerpc/xmon/xmon.c | 8 +-
    > arch/s390/include/asm/lowcore.h | 65 ++++++++--------
    > arch/s390/include/asm/processor.h | 3 +
    > arch/s390/kernel/vtime.c | 116 +++++++++++++++++-----------
    > include/linux/kernel_stat.h | 7 +-
    > include/linux/vtime.h | 7 +-
    > kernel/sched/cputime.c | 25 +++---
    > 13 files changed, 295 insertions(+), 169 deletions(-)
    >

    \
     
     \ /
      Last update: 2016-12-06 09:41    [W:5.088 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site