linux/arch/s390/kvm
Christian Borntraeger e1788bb995 KVM: s390: handle floating point registers in the run ioctl not in vcpu_put/load
Right now we switch the host fprs/vrs in kvm_arch_vcpu_load and switch
back in kvm_arch_vcpu_put. This process is already optimized
since commit 9977e886cb ("s390/kernel: lazy restore fpu registers")
avoiding double save/restores on schedule. We still reload the pointers
and test the guest fpc on each context switch, though.

We can minimize the cost of vcpu_load/put by doing the test in the
VCPU_RUN ioctl itself. As most VCPU threads almost never exit to
userspace in the common fast path, this allows to avoid this overhead
for the common case (eventfd driven I/O, all exits including sleep
handled in the kernel) - making kvm_arch_vcpu_load/put basically
disappear in perf top.

Also adapt the fpu get/set ioctls.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2016-11-22 19:32:35 +01:00
..
diag.c KVM: s390: provide logging for diagnose 0x500 2016-06-10 12:07:26 +02:00
gaccess.c KVM: s390: gaccess: simplify translation exception handling 2016-09-08 09:07:53 +02:00
gaccess.h s390/mm: take ipte_lock during shadow faults 2016-06-20 09:54:40 +02:00
guestdbg.c KVM: s390: Use memdup_user() rather than duplicating code 2016-09-08 13:40:55 +02:00
intercept.c KVM: s390: reject invalid modes for runtime instrumentation 2016-10-20 20:06:12 +02:00
interrupt.c KVM: s390: handle access registers in the run ioctl not in vcpu_put/load 2016-11-22 19:32:35 +01:00
irq.h KVM: s390: irq routing for adapter interrupts. 2014-03-21 13:43:00 +01:00
Kconfig KVM: halt_polling: provide a way to qualify wakeups during poll 2016-05-13 17:29:23 +02:00
kvm-s390.c KVM: s390: handle floating point registers in the run ioctl not in vcpu_put/load 2016-11-22 19:32:35 +01:00
kvm-s390.h KVM: s390: allow 255 VCPUs when sca entries aren't used 2016-09-08 13:40:53 +02:00
Makefile KVM: s390: vsie: initial support for nested virtualization 2016-06-21 09:43:33 +02:00
priv.c KVM: s390: lazy enable RI 2016-09-08 13:40:39 +02:00
sigp.c KVM: s390: don't use CPUSTAT_WAIT to detect if a VCPU is idle 2016-06-21 09:43:45 +02:00
sthyi.c KVM: s390: Fix STHYI buffer alignment for diag224 2016-10-26 13:46:44 +02:00
trace-s390.h KVM: s390: obey kptr_restrict in traces 2015-12-15 17:06:32 +01:00
trace.h KVM: s390: trace and count all skey intercepts 2016-06-10 12:07:31 +02:00
vsie.c KVM: s390: vsie: fix riccbd 2016-09-05 13:48:50 +02:00