sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time
commit445352de175186a234c6ce1b8e000619ce1d2d1c
authorVenkatesh Pallipadi <venki@google.com>
Thu, 10 Feb 2011 09:23:27 +0000 (10 10:23 +0100)
committerAK <andi@firstfloor.org>
Thu, 31 Mar 2011 18:58:00 +0000 (31 11:58 -0700)
treeaed5135b6c6406c20cf043bc195fe402d6c117f6
parent70501ead1f5f8760d9ec1c3fd7f69cfe62c5f35e
sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time

Commit: b52bfee445d315549d41eacf2fa7c156e7d153d5 upstream

s390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does
the fine granularity accounting of user, system, hardirq, softirq times.
Adding that option on archs like x86 will be challenging however, given the
state of TSC reliability on various platforms and also the overhead it will
add in syscall entry exit.

Instead, add a lighter variant that only does finer accounting of
hardirq and softirq times, providing precise irq times (instead of timer tick
based samples). This accounting is added with a new config option
CONFIG_IRQ_TIME_ACCOUNTING so that there won't be any overhead for users not
interested in paying the perf penalty.

This accounting is based on sched_clock, with the code being generic.
So, other archs may find it useful as well.

This patch just adds the core logic and does not enable this logic yet.

Signed-off-by: Venkatesh Pallipadi <venki@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
LKML-Reference: <1286237003-12406-5-git-send-email-venki@google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
include/linux/hardirq.h
include/linux/sched.h
kernel/sched.c