[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 23/24] Utilize selective runtime reg sync for hot co
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 23/24] Utilize selective runtime reg sync for hot code paths |
Date: |
Fri, 26 Apr 2013 20:19:32 +0200 |
From: Jason J. Herne <address@hidden>
Make use of new kvm_s390_get_registers_partial() for kvm_handle_css_inst() and
handle_hypercall() since they only need registers from the partial set and they
are called quite frequently.
Signed-off-by: Jason J. Herne <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>
---
target-s390x/kvm.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index 02b2e39..fb006ee 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -467,12 +467,16 @@ static int kvm_handle_css_inst(S390CPU *cpu, struct
kvm_run *run,
int r = 0;
int no_cc = 0;
CPUS390XState *env = &cpu->env;
+ CPUState *cs = ENV_GET_CPU(env);
if (ipa0 != 0xb2) {
/* Not handled for now. */
return -1;
}
- cpu_synchronize_state(env);
+
+ kvm_s390_get_registers_partial(cs);
+ cs->kvm_vcpu_dirty = true;
+
switch (ipa1) {
case PRIV_XSCH:
r = ioinst_handle_xsch(env, env->regs[1]);
@@ -603,7 +607,10 @@ static int handle_priv(S390CPU *cpu, struct kvm_run *run,
static int handle_hypercall(CPUS390XState *env, struct kvm_run *run)
{
- cpu_synchronize_state(env);
+ CPUState *cs = ENV_GET_CPU(env);
+
+ kvm_s390_get_registers_partial(cs);
+ cs->kvm_vcpu_dirty = true;
env->regs[2] = s390_virtio_hypercall(env);
return 0;
@@ -808,7 +815,9 @@ static int handle_tsch(S390CPU *cpu)
struct kvm_run *run = cs->kvm_run;
int ret;
- cpu_synchronize_state(env);
+ kvm_s390_get_registers_partial(cs);
+ cs->kvm_vcpu_dirty = true;
+
ret = ioinst_handle_tsch(env, env->regs[1], run->s390_tsch.ipb);
if (ret >= 0) {
/* Success; set condition code. */
--
1.6.0.2
- [Qemu-devel] [PATCH 05/24] S390: ccw firmware: Add main program, (continued)
- [Qemu-devel] [PATCH 05/24] S390: ccw firmware: Add main program, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 13/24] s390-ccw.img: Take care of the elf->img transition, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 14/24] s390-ccw.img: Fix compile warning in s390 ccw virtio code, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 12/24] s390-ccw.img: build s390-ccw rom on s3900 system by default, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 08/24] S390: ccw firmware: Add glue header, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 03/24] S390: IPL: Use different firmware for different machines, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 09/24] S390: ccw firmware: Add bootmap interpreter, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 06/24] S390: ccw firmware: Add sclp output, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 18/24] s390-ccw.img: Get queue config from host., Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 16/24] s390-ccw.img: Enhance drain_irqs()., Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 23/24] Utilize selective runtime reg sync for hot code paths,
Alexander Graf <=
- [Qemu-devel] [PATCH 20/24] S390: CCW: Use new, working firmware by default, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 15/24] s390-ccw.img: Detect devices with stsch., Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 17/24] s390-ccw.img: Rudimentary error checking., Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 22/24] Allow selective runtime register synchronization, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 24/24] virtio-rng-s390: add properties., Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 21/24] Common: Add quick access to first boot device, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 19/24] S390: ccw firmware: Add compiled blob, Alexander Graf, 2013/04/26
- [Qemu-devel] [PATCH 07/24] S390: ccw firmware: Add virtio device drivers, Alexander Graf, 2013/04/26
- Re: [Qemu-devel] [PULL 00/24] s390 patch queue 2013-04-26, Blue Swirl, 2013/04/26