diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-10-30 03:33:01 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-10-30 03:33:01 -0400 |
commit | 38ca9c927c7d3db61f57e3d3a9334958c3af6e9a (patch) | |
tree | 58be18cf3dce7a407c84ab2532e92bdb8b7ee067 /arch/s390 | |
parent | e9c84cb8d5f1b1ea6fcbe6190d51dc84b6975938 (diff) | |
parent | 3e1df4f506836e6bea1ab61cf88c75c8b1840643 (diff) |
Merge tag 'cputime-cleanups-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/core
Pull cputime cleanups and optimizations from Frederic Weisbecker:
* Gather vtime headers that were a bit scattered around
* Separate irqtime and vtime namespaces that were
colliding, resulting in useless calls to irqtime accounting.
* Slightly optimize irq and guest vtime accounting.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kernel/vtime.c | 4 | ||||
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 790334427895..783e988c4e1e 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -140,6 +140,10 @@ void vtime_account(struct task_struct *tsk) | |||
140 | } | 140 | } |
141 | EXPORT_SYMBOL_GPL(vtime_account); | 141 | EXPORT_SYMBOL_GPL(vtime_account); |
142 | 142 | ||
143 | void __vtime_account_system(struct task_struct *tsk) | ||
144 | __attribute__((alias("vtime_account"))); | ||
145 | EXPORT_SYMBOL_GPL(__vtime_account_system); | ||
146 | |||
143 | void __kprobes vtime_stop_cpu(void) | 147 | void __kprobes vtime_stop_cpu(void) |
144 | { | 148 | { |
145 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); | 149 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); |
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index ecced9d18986..d91a95568002 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -608,9 +608,7 @@ static int __vcpu_run(struct kvm_vcpu *vcpu) | |||
608 | kvm_s390_deliver_pending_interrupts(vcpu); | 608 | kvm_s390_deliver_pending_interrupts(vcpu); |
609 | 609 | ||
610 | vcpu->arch.sie_block->icptcode = 0; | 610 | vcpu->arch.sie_block->icptcode = 0; |
611 | local_irq_disable(); | ||
612 | kvm_guest_enter(); | 611 | kvm_guest_enter(); |
613 | local_irq_enable(); | ||
614 | VCPU_EVENT(vcpu, 6, "entering sie flags %x", | 612 | VCPU_EVENT(vcpu, 6, "entering sie flags %x", |
615 | atomic_read(&vcpu->arch.sie_block->cpuflags)); | 613 | atomic_read(&vcpu->arch.sie_block->cpuflags)); |
616 | trace_kvm_s390_sie_enter(vcpu, | 614 | trace_kvm_s390_sie_enter(vcpu, |
@@ -629,9 +627,7 @@ static int __vcpu_run(struct kvm_vcpu *vcpu) | |||
629 | VCPU_EVENT(vcpu, 6, "exit sie icptcode %d", | 627 | VCPU_EVENT(vcpu, 6, "exit sie icptcode %d", |
630 | vcpu->arch.sie_block->icptcode); | 628 | vcpu->arch.sie_block->icptcode); |
631 | trace_kvm_s390_sie_exit(vcpu, vcpu->arch.sie_block->icptcode); | 629 | trace_kvm_s390_sie_exit(vcpu, vcpu->arch.sie_block->icptcode); |
632 | local_irq_disable(); | ||
633 | kvm_guest_exit(); | 630 | kvm_guest_exit(); |
634 | local_irq_enable(); | ||
635 | 631 | ||
636 | memcpy(&vcpu->run->s.regs.gprs[14], &vcpu->arch.sie_block->gg14, 16); | 632 | memcpy(&vcpu->run->s.regs.gprs[14], &vcpu->arch.sie_block->gg14, 16); |
637 | return rc; | 633 | return rc; |