From patchwork Thu Aug 9 21:43:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emilio Cota X-Patchwork-Id: 955872 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=braap.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=braap.org header.i=@braap.org header.b="u3QkkniR"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="ZtC1w1QX"; dkim-atps=neutral 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 41mjP75QZcz9s47 for ; Fri, 10 Aug 2018 08:20:11 +1000 (AEST) Received: from localhost ([::1]:53190 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fntHt-0002tU-B2 for incoming@patchwork.ozlabs.org; Thu, 09 Aug 2018 18:20:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fnsjB-00030V-NZ for qemu-devel@nongnu.org; Thu, 09 Aug 2018 17:44:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fnsj7-0000wl-O0 for qemu-devel@nongnu.org; Thu, 09 Aug 2018 17:44:17 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:57527) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fnsj7-0000uL-EL for qemu-devel@nongnu.org; Thu, 09 Aug 2018 17:44:13 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 747E921E8C; Thu, 9 Aug 2018 17:44:10 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 09 Aug 2018 17:44:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=qcoBTuUxJIL1dg uAYEoE8DYZgOspavEF/nwplbaubKg=; b=u3QkkniR029Jxrwh6/lUTpBj7T3Cye YF0aZznxelq9E4m0NA9U37szYWUHS4c1FPjCGtOdDbpCUtiCFfUC9rtt6e8UuQEf bc5G7noenldvfheAMCsCtN6SoVGKwJUpkLxqEEDnc/RUKqQJdPifOUSDcCplMGoP 5w3gLORv1lrhc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=qcoBTuUxJIL1dguAYEoE8DYZgOspavEF/nwplbaubKg=; b=ZtC1w1QX YRHXDFJQX607ZUYilWKngpjWDCY+MhJzxCHEMVvqAC5+PkasfOZFCF3CHzy47MSr giqGsmfDButweosp5hnerXvtNf6rmUsP+t11rw1ilkhaoeothwhKwy8xL/WIeaNF tIW9F7j2V5YYpUqw2mOTECxNf0J0Ee7lYYqCCWwTNE2ZTCbdHYHGG/4EGziwZRZg cT94wUNCdGK0YMNd+BBR2EYbtPaWOOx+4wqd+w9EsdqTeQs+L+oDViQs4e+lN5t7 o6UJpdOAPIdqnXmT+6Q7qaP8Dhcc2rSaSZpbLz8VTYrbxzo0ZaqvrNA4jRT26HFq mbe22+s/3XOt4Q== X-ME-Proxy: X-ME-Sender: Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 2E4901026B; Thu, 9 Aug 2018 17:44:10 -0400 (EDT) From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 9 Aug 2018 17:43:56 -0400 Message-Id: <20180809214356.27690-4-cota@braap.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180809214356.27690-1-cota@braap.org> References: <20180809214356.27690-1-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH 3/3] target/riscv: call tcg_lookup_and_goto_ptr on DISAS_TOO_MANY 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: Bastian Koppelmann , Michael Clark , Richard Henderson , Sagar Karandikar , Palmer Dabbelt Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Performance impact of this and the previous commit, measured with the very-easy-to-cross-compile rv8-bench: https://github.com/rv8-io/rv8-bench Host: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz - Key: before: master after1,2,3: the 3 commits in this series (i.e. 3 is this commit) - User-mode: bench before after1 after2 after3 final speedup --------------------------------------------------------- aes 1.12s 1.12s 1.10s 1.00s 1.12 bigint 0.78s 0.78s 0.78s 0.78s 1 dhrystone 0.96s 0.97s 0.49s 0.49s 1.9591837 miniz 1.94s 1.94s 1.88s 1.86s 1.0430108 norx 0.51s 0.51s 0.49s 0.48s 1.0625 primes 0.85s 0.85s 0.84s 0.84s 1.0119048 qsort 4.87s 4.88s 1.86s 1.86s 2.6182796 sha512 0.76s 0.77s 0.64s 0.64s 1.1875 (after1 only applies to softmmu, so no surprises here) - Full-system (fedora): bench before after1 after2 after3 final speedup --------------------------------------------------------- aes 2.68s 2.54s 2.60s 2.34s 1.1452991 bigint 1.61s 1.56s 1.55s 1.64s 0.98170732 dhrystone 1.78s 1.67s 1.25s 1.24s 1.4354839 miniz 3.53s 3.35s 3.28s 3.35s 1.0537313 norx 1.13s 1.09s 1.07s 1.06s 1.0660377 primes 15.37s 15.41s 15.20s 15.37s 1 qsort 7.20s 6.71s 3.85s 3.96s 1.8181818 sha512 1.07s 1.04s 0.90s 0.90s 1.1888889 SoftMMU slows things down, so the numbers are less sensitive. Cross-page jumps improve things a little bit, though. Note that I'm not showing here averages, just results from a single run, so with primes there isn't much to worry about. Signed-off-by: Emilio G. Cota --- target/riscv/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 66a80ca772..98e0311606 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1872,7 +1872,7 @@ static void riscv_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu) if (ctx->base.singlestep_enabled) { gen_exception_debug(); } else { - tcg_gen_exit_tb(NULL, 0); + tcg_gen_lookup_and_goto_ptr(); } break; case DISAS_NORETURN: