[GIT PULL] vtime: Delay cputime accounting to tick / context switch
From: Frederic Weisbecker
Date: Tue Jan 10 2017 - 10:20:00 EST
Ingo, Thomas,
Please pull the vtime/accumulate-for-tip branch that can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
vtime/accumulate-for-tip
HEAD: 0fe66425659da25269280c106f39b333a0cfb9a9
---
The cputime accounting functions (account_system_time(),
account_user_time(), ...) happen to be costly especially under several
common configs. And with CONFIG_VIRT_CPU_ACCOUNTING_NATIVE those functions
are called on many fast paths such as context boundaries like
user <-> kernel, kernel <-> guest, kernel <-> idle, kernel <-> (soft)IRQ,
context switches, etc...
This set reduces this overhead by accumulating the cputime on context
boundaries and eventually delay the accounting of that accumulated time
on ticks and context switches only.
---
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 | 138 ++++++++++++++++++++++------------
include/linux/kernel_stat.h | 5 +-
include/linux/vtime.h | 7 +-
kernel/sched/cputime.c | 16 ++--
13 files changed, 302 insertions(+), 173 deletions(-)