aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorGlauber Costa <glommer@redhat.com>2011-07-11 15:28:18 -0400
committerAvi Kivity <avi@redhat.com>2011-07-14 05:59:47 -0400
commit095c0aa83e52d6c3dd7168610746703921f570af (patch)
tree7461604a6040f1724bdf66c6f87e3abe60e2ad50 /arch/x86
parente6e6685accfa81f509fadfc9624bc7c3862d75c4 (diff)
sched: adjust scheduler cpu power for stolen time
This patch makes update_rq_clock() aware of steal time. The mechanism of operation is not different from irq_time, and follows the same principles. This lives in a CONFIG option itself, and can be compiled out independently of the rest of steal time reporting. The effect of disabling it is that the scheduler will still report steal time (that cannot be disabled), but won't use this information for cpu power adjustments. Everytime update_rq_clock_task() is invoked, we query information about how much time was stolen since last call, and feed it into sched_rt_avg_update(). Although steal time reporting in account_process_tick() keeps track of the last time we read the steal clock, in prev_steal_time, this patch do it independently using another field, prev_steal_time_rq. This is because otherwise, information about time accounted in update_process_tick() would never reach us in update_rq_clock(). Signed-off-by: Glauber Costa <glommer@redhat.com> Acked-by: Rik van Riel <riel@redhat.com> Acked-by: Peter Zijlstra <peterz@infradead.org> Tested-by: Eric B Munson <emunson@mgebm.net> CC: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> CC: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/Kconfig12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index da349723d411..1f03e221a01e 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -512,6 +512,18 @@ menuconfig PARAVIRT_GUEST
512 512
513if PARAVIRT_GUEST 513if PARAVIRT_GUEST
514 514
515config PARAVIRT_TIME_ACCOUNTING
516 bool "Paravirtual steal time accounting"
517 select PARAVIRT
518 default n
519 ---help---
520 Select this option to enable fine granularity task steal time
521 accounting. Time spent executing other tasks in parallel with
522 the current vCPU is discounted from the vCPU power. To account for
523 that, there can be a small performance impact.
524
525 If in doubt, say N here.
526
515source "arch/x86/xen/Kconfig" 527source "arch/x86/xen/Kconfig"
516 528
517config KVM_CLOCK 529config KVM_CLOCK