From 989fd865f5e306a0b1ff10713a678b1fc4cab08f Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Wed, 10 Aug 2016 12:14:19 +0200 Subject: 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 Reviewed-by: Cornelia Huck Signed-off-by: Cornelia Huck --- hw/s390x/sclp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'hw/s390x') diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c index fca37f511e..540226c6df 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 */ -- cgit v1.2.3