aboutsummaryrefslogtreecommitdiff
path: root/hw/s390x
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2016-08-10 12:14:19 +0200
committerCornelia Huck <cornelia.huck@de.ibm.com>2016-09-05 15:15:16 +0200
commit989fd865f5e306a0b1ff10713a678b1fc4cab08f (patch)
tree6835da8f271986f3ac1b67e38387080eb40edc3b /hw/s390x
parent0c2a16a4dc56fbdbe7f619e2a860214dc6f89ec6 (diff)
downloadqemu-989fd865f5e306a0b1ff10713a678b1fc4cab08f.zip
qemu-989fd865f5e306a0b1ff10713a678b1fc4cab08f.tar.gz
qemu-989fd865f5e306a0b1ff10713a678b1fc4cab08f.tar.bz2
s390/sclp: cache the sclp device
With the current code a simple sclp command takes about 13000 ns The biggest part seems to be the resolver of the object model. By caching the sclp device the time for an sclp command goes down to 2500ns. Talking about real life scenarios, this change doubles the speed of the sclp console when sending single bytes outputs to /dev/console. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'hw/s390x')
-rw-r--r--hw/s390x/sclp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index fca37f5..540226c 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -26,7 +26,12 @@
static inline SCLPDevice *get_sclp_device(void)
{
- return SCLP(object_resolve_path_type("", TYPE_SCLP, NULL));
+ static SCLPDevice *sclp;
+
+ if (!sclp) {
+ sclp = SCLP(object_resolve_path_type("", TYPE_SCLP, NULL));
+ }
+ return sclp;
}
/* Provide information about the configuration, CPUs and storage */