diff options
author | Rik van Riel <riel@redhat.com> | 2016-07-13 10:50:02 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-07-14 04:42:34 -0400 |
commit | b58c35840521bb02b150e1d0d34ca9197f8b7145 (patch) | |
tree | a1641840e235a1035e7ad8c4276a77d25552ba4e /init/Kconfig | |
parent | 57430218317e5b280a80582a139b26029c25de6c (diff) |
sched/cputime: Replace VTIME_GEN irq time code with IRQ_TIME_ACCOUNTING code
The CONFIG_VIRT_CPU_ACCOUNTING_GEN irq time tracking code does not
appear to currently work right.
On CPUs without nohz_full=, only tick based irq time sampling is
done, which breaks down when dealing with a nohz_idle CPU.
On firewalls and similar systems, no ticks may happen on a CPU for a
while, and the irq time spent may never get accounted properly. This
can cause issues with capacity planning and power saving, which use
the CPU statistics as inputs in decision making.
Remove the VTIME_GEN vtime irq time code, and replace it with the
IRQ_TIME_ACCOUNTING code, when selected as a config option by the user.
Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Radim Krcmar <rkrcmar@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Wanpeng Li <wanpeng.li@hotmail.com>
Link: http://lkml.kernel.org/r/1468421405-20056-3-git-send-email-fweisbec@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'init/Kconfig')
-rw-r--r-- | init/Kconfig | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/init/Kconfig b/init/Kconfig index c02d89777713..787dd76acf29 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -375,9 +375,11 @@ config VIRT_CPU_ACCOUNTING_GEN | |||
375 | 375 | ||
376 | If unsure, say N. | 376 | If unsure, say N. |
377 | 377 | ||
378 | endchoice | ||
379 | |||
378 | config IRQ_TIME_ACCOUNTING | 380 | config IRQ_TIME_ACCOUNTING |
379 | bool "Fine granularity task level IRQ time accounting" | 381 | bool "Fine granularity task level IRQ time accounting" |
380 | depends on HAVE_IRQ_TIME_ACCOUNTING && !NO_HZ_FULL | 382 | depends on HAVE_IRQ_TIME_ACCOUNTING && !VIRT_CPU_ACCOUNTING_NATIVE |
381 | help | 383 | help |
382 | Select this option to enable fine granularity task irq time | 384 | Select this option to enable fine granularity task irq time |
383 | accounting. This is done by reading a timestamp on each | 385 | accounting. This is done by reading a timestamp on each |
@@ -386,8 +388,6 @@ config IRQ_TIME_ACCOUNTING | |||
386 | 388 | ||
387 | If in doubt, say N here. | 389 | If in doubt, say N here. |
388 | 390 | ||
389 | endchoice | ||
390 | |||
391 | config BSD_PROCESS_ACCT | 391 | config BSD_PROCESS_ACCT |
392 | bool "BSD Process Accounting" | 392 | bool "BSD Process Accounting" |
393 | depends on MULTIUSER | 393 | depends on MULTIUSER |