From patchwork Mon May 18 21:42:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aurelien Jarno X-Patchwork-Id: 473610 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id D87E0140D4E for ; Tue, 19 May 2015 07:43:21 +1000 (AEST) Received: from localhost ([::1]:43088 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YuSoh-0003rQ-Rf for incoming@patchwork.ozlabs.org; Mon, 18 May 2015 17:43:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44794) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YuSo9-0002mh-MO for qemu-devel@nongnu.org; Mon, 18 May 2015 17:42:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YuSo6-0008QO-Fj for qemu-devel@nongnu.org; Mon, 18 May 2015 17:42:45 -0400 Received: from hall.aurel32.net ([2001:bc8:30d7:101::1]:33735) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YuSo6-0008Q7-9o for qemu-devel@nongnu.org; Mon, 18 May 2015 17:42:42 -0400 Received: from 191.red-80-33-14.staticip.rima-tde.net ([80.33.14.191] helo=ohm.rr44.fr) by hall.aurel32.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84) (envelope-from ) id 1YuSo4-0007qj-Hy; Mon, 18 May 2015 23:42:40 +0200 Received: from aurel32 by ohm.rr44.fr with local (Exim 4.84) (envelope-from ) id 1YuSnx-0002w0-O3; Mon, 18 May 2015 23:42:33 +0200 From: Aurelien Jarno To: qemu-devel@nongnu.org Date: Mon, 18 May 2015 23:42:26 +0200 Message-Id: <1431985349-11226-3-git-send-email-aurelien@aurel32.net> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1431985349-11226-1-git-send-email-aurelien@aurel32.net> References: <1431985349-11226-1-git-send-email-aurelien@aurel32.net> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:bc8:30d7:101::1 Cc: Alexander Graf , Aurelien Jarno , Richard Henderson Subject: [Qemu-devel] [PATCH 2/5] target-s390x: simplify SCKC helper X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The clock comparator and the QEMU timer work the same way, triggering at a given time, they just differ by the origin and the scale. It is therefore possible to go from one to another without using the current clock value. This spares two calls to qemu_clock_get_ns, which probably return slightly different values, possibly reducing the accuracy. Cc: Alexander Graf Cc: Richard Henderson Signed-off-by: Aurelien Jarno --- 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 230bafd..120807f 100644 --- a/target-s390x/misc_helper.c +++ b/target-s390x/misc_helper.c @@ -291,12 +291,13 @@ void HELPER(sckc)(CPUS390XState *env, uint64_t time) return; } - /* difference between now and then */ - time -= clock_value(env); + /* difference between origins */ + time -= env->tod_offset; + /* nanoseconds */ time = tod2time(time); - timer_mod(env->tod_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + time); + timer_mod(env->tod_timer, env->tod_basetime + time); } /* Store Clock Comparator */