lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ