From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56540) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0em4-0003Y0-20 for qemu-devel@nongnu.org; Thu, 04 Jun 2015 19:42:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z0em0-0001xW-3e for qemu-devel@nongnu.org; Thu, 04 Jun 2015 19:42:11 -0400 Received: from cantor2.suse.de ([195.135.220.15]:48791 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0elz-0001x5-Sx for qemu-devel@nongnu.org; Thu, 04 Jun 2015 19:42:08 -0400 From: Alexander Graf Date: Fri, 5 Jun 2015 01:41:39 +0200 Message-Id: <1433461324-23584-10-git-send-email-agraf@suse.de> In-Reply-To: <1433461324-23584-1-git-send-email-agraf@suse.de> References: <1433461324-23584-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PULL 09/34] target-s390x: implement STPT helper List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, aurel@aurel32.net, Aurelien Jarno , rth@twiddle.net From: Aurelien Jarno Save the timer target value in the SPT helper, so that the STPT helper can compute the remaining time. This allow the Linux kernel to correctly do time accounting. Signed-off-by: Aurelien Jarno Signed-off-by: Alexander Graf --- target-s390x/misc_helper.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c index 57aee95..3ec7268 100644 --- a/target-s390x/misc_helper.c +++ b/target-s390x/misc_helper.c @@ -313,14 +313,15 @@ void HELPER(spt)(CPUS390XState *env, uint64_t time) /* nanoseconds */ time = tod2time(time); - timer_mod(env->cpu_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time); + env->cputm = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time; + + timer_mod(env->cpu_timer, env->cputm); } /* Store CPU Timer */ uint64_t HELPER(stpt)(CPUS390XState *env) { - /* XXX implement */ - return 0; + return time2tod(env->cputm - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)); } /* Store System Information */ -- 1.7.12.4