[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <9e79e5e6-fdb7-d530-5aea-7bea77b7ee0a@de.ibm.com>
Date: Tue, 6 Dec 2016 09:40:15 +0100
From: Christian Borntraeger <borntraeger@...ibm.com>
To: Frederic Weisbecker <fweisbec@...il.com>,
LKML <linux-kernel@...r.kernel.org>
Cc: Tony Luck <tony.luck@...el.com>,
Wanpeng Li <wanpeng.li@...mail.com>,
Peter Zijlstra <peterz@...radead.org>,
Michael Ellerman <mpe@...erman.id.au>,
Heiko Carstens <heiko.carstens@...ibm.com>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Thomas Gleixner <tglx@...utronix.de>,
Paul Mackerras <paulus@...ba.org>,
Ingo Molnar <mingo@...nel.org>,
Fenghua Yu <fenghua.yu@...el.com>,
Rik van Riel <riel@...hat.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
Stanislaw Gruszka <sgruszka@...hat.com>
Subject: Re: [PATCH 00/10] vtime: Delay cputime accounting to tick
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(-)
>
Powered by blists - more mailing lists