qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-ppc@nongnu.org
Cc: Blue Swirl <blauwirbel@gmail.com>,
	qemu-devel@nongnu.org, Aurelien Jarno <aurelien@aurel32.net>,
	"Jason J. Herne" <jjherne@us.ibm.com>
Subject: [Qemu-devel] [PATCH 23/24] Utilize selective runtime reg sync for hot code paths
Date: Fri, 26 Apr 2013 20:19:32 +0200	[thread overview]
Message-ID: <1367000373-7972-24-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1367000373-7972-1-git-send-email-agraf@suse.de>

From: Jason J. Herne <jjherne@us.ibm.com>

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 <jjherne@us.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 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

  parent reply	other threads:[~2013-04-26 18:19 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-26 18:19 [Qemu-devel] [PULL 00/24] s390 patch queue 2013-04-26 Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 01/24] S390: Make IPL reset address dynamic Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 02/24] S390: IPL: Support ELF firmware Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 03/24] S390: IPL: Use different firmware for different machines Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 04/24] S390: ccw firmware: Add start assembly Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 05/24] S390: ccw firmware: Add main program Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 06/24] S390: ccw firmware: Add sclp output Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 07/24] S390: ccw firmware: Add virtio device drivers Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 08/24] S390: ccw firmware: Add glue header Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 09/24] S390: ccw firmware: Add bootmap interpreter Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 10/24] S390: ccw firmware: Add Makefile Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 11/24] s390-ccw.img: replace while loop with a disabled wait on s390 bios Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 12/24] s390-ccw.img: build s390-ccw rom on s3900 system by default Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 13/24] s390-ccw.img: Take care of the elf->img transition Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 14/24] s390-ccw.img: Fix compile warning in s390 ccw virtio code Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 15/24] s390-ccw.img: Detect devices with stsch Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 16/24] s390-ccw.img: Enhance drain_irqs() Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 17/24] s390-ccw.img: Rudimentary error checking Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 18/24] s390-ccw.img: Get queue config from host Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 19/24] S390: ccw firmware: Add compiled blob Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 20/24] S390: CCW: Use new, working firmware by default Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 21/24] Common: Add quick access to first boot device Alexander Graf
2013-04-26 18:19 ` [Qemu-devel] [PATCH 22/24] Allow selective runtime register synchronization Alexander Graf
2013-04-26 18:19 ` Alexander Graf [this message]
2013-04-26 18:19 ` [Qemu-devel] [PATCH 24/24] virtio-rng-s390: add properties Alexander Graf
2013-04-26 20:14 ` [Qemu-devel] [PULL 00/24] s390 patch queue 2013-04-26 Blue Swirl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1367000373-7972-24-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=aurelien@aurel32.net \
    --cc=blauwirbel@gmail.com \
    --cc=jjherne@us.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).