From patchwork Thu Aug 11 15:24:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 658273 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 3s9C3d65s5z9sBf for ; Fri, 12 Aug 2016 01:43:41 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b=KomVwEoF; dkim-atps=neutral Received: from localhost ([::1]:49240 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXs8x-0006SP-IC for incoming@patchwork.ozlabs.org; Thu, 11 Aug 2016 11:43:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57479) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrqb-0003ke-OM for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXrqZ-0006d8-Mf for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:40 -0400 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:37383) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrqZ-0006ct-GB for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:39 -0400 Received: by mail-wm0-x229.google.com with SMTP id i5so3247257wmg.0 for ; Thu, 11 Aug 2016 08:24:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y4l9to5dnjEykvSI6NAipmpmxS4L7pFwhufaxzv5dVA=; b=KomVwEoFKWh9QMBXSpJBYtAucYZW9Ts74+90S5Dg7UnEp6GEkZ6oZJ3Px7aR4ahPLx rfBPGr1s612aWPBrTQn8fqzhma6512IFkkG1K7HXKzHNmI2pR128XjtB6ulvKaXrI1hg Dx/q+SP60VvW0P6ql5uhZqmq40ap4PueyyERc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y4l9to5dnjEykvSI6NAipmpmxS4L7pFwhufaxzv5dVA=; b=fRX9fJs4kH0MYWOI7QVEbiOm7gFOxkk2l+RRj4gfZiamH9rWvEs9tsGGERsQV5XC7f RP+Xak8fpTElBRDE350IUsMbu1nXR2R5Pu+Igs3UIrTwJj4lYmEj+TAj/dG6nlwshfH/ KKlJ9d/kZKbksnMSkIkEtwS5N6XiHqC19DDpjPm6y59Ko3lPAdAIik2TPeEAXCDlgZEs DjmcgGLvThTvdAOSTI9NcC8lTG39Lg8+kXPzzRUJbnmmpSKQCFqNpf6IUZgATTlN7G/t fNwNBtzbvYuJXo8Q6q2mEQ98Fh5dEab74dANciWITDKXfHOc+PsnwYjqF0PX/qOQchF8 ecSA== X-Gm-Message-State: AEkoouvfszK9b/yIArzYycuiCWlh5ZUSC6jAiuA4XUdVP/rIkSfDA0s2S9RLu9x1Mi1Xt0ba X-Received: by 10.28.172.2 with SMTP id v2mr6774545wme.96.1470929078735; Thu, 11 Aug 2016 08:24:38 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id r127sm554104wmf.23.2016.08.11.08.24.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Aug 2016 08:24:31 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 2858D3E0315; Thu, 11 Aug 2016 16:24:31 +0100 (BST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: mttcg@listserver.greensocs.com, qemu-devel@nongnu.org, fred.konrad@greensocs.com, a.rigo@virtualopensystems.com, cota@braap.org, bobby.prani@gmail.com, nikunj@linux.vnet.ibm.com Date: Thu, 11 Aug 2016 16:24:13 +0100 Message-Id: <1470929064-4092-18-git-send-email-alex.bennee@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1470929064-4092-1-git-send-email-alex.bennee@linaro.org> References: <1470929064-4092-1-git-send-email-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::229 Subject: [Qemu-devel] [RFC v4 17/28] cpus: re-factor out handle_icount_deadline X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, claudio.fontana@huawei.com, Peter Crosthwaite , jan.kiszka@siemens.com, mark.burton@greensocs.com, serge.fdrv@gmail.com, pbonzini@redhat.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , rth@twiddle.net Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" In preparation for adding a MTTCG thread we re-factor out a bit of what will be common code to handle the QEMU_CLOCK_VIRTUAL expiration. Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson --- v4 - split from exit_request patch --- cpus.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/cpus.c b/cpus.c index d917473..5ed6dc0 100644 --- a/cpus.c +++ b/cpus.c @@ -1121,6 +1121,18 @@ static int64_t tcg_get_icount_limit(void) } } +static void handle_icount_deadline(void) +{ + if (use_icount) { + int64_t deadline = + qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL); + + if (deadline == 0) { + qemu_clock_notify(QEMU_CLOCK_VIRTUAL); + } + } +} + static int tcg_cpu_exec(CPUState *cpu) { int ret; @@ -1295,13 +1307,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg) /* Pairs with smp_wmb in qemu_cpu_kick. */ atomic_mb_set(&exit_request, 0); - if (use_icount) { - int64_t deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL); + handle_icount_deadline(); - if (deadline == 0) { - qemu_clock_notify(QEMU_CLOCK_VIRTUAL); - } - } qemu_tcg_wait_io_event(QTAILQ_FIRST(&cpus)); deal_with_unplugged_cpus(); }