From patchwork Mon Oct 16 17:25:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 115928 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp3932639qgn; Mon, 16 Oct 2017 10:26:45 -0700 (PDT) X-Received: by 10.55.209.155 with SMTP id o27mr15475007qkl.145.1508174805410; Mon, 16 Oct 2017 10:26:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508174805; cv=none; d=google.com; s=arc-20160816; b=wCZso6RZYnj0tQDAa/zIYXhKESODBf4oPBAFGJmKfssSPyxKUdQbqmknQ9pFORBNQe kUEdtECBbMaChKxjzS5qQeMkVHVI2ZASLdlPAXx21PXKbd8UUoADwaw5z6FuTwCqGEs3 eVX7ucOWOesSF0Ow85UP+oQlQfa2StmxzW8GIFIYTvde73IbOu7mToSRh0O3emz15BBI bgYKhNnlRChj0X1I4FsIdfqA7TmHZK0ndtNIH6sVngS3R4D8kObeaON87+uIC7P1oGjM xvGRCJQChfpZ7Y71WijWRe/VdQiraOkBhnYaO5ZlbLqQ7bQD9gNaDJupKdt84v9ZwUPR x7FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:message-id:date:to:from :dkim-signature:arc-authentication-results; bh=jDsT47M/aYvMfCpgshVTyhowo7uDqmFaW6U6jY2seq8=; b=p1/YCy3AKKvKnSTrqF8heQb0+gA7pwta+svqRGB0T1VLG35IVnvKQ8njPU0NQPbbUZ nXzzAAxFr3oosFNnEdeA+fNHn+VvlXIysVz7mmreZZZBi/bZvYieDju5jNEkF7/Da0EJ ZzJCc5ApdFhY6PGLiTwqduKBlkkvkQWlqxxJHdlFp/5Bbn6PLKU/TOLkMp8XaedUM8y+ YQ4+QACQSPeWqsBF0qmCGWfKWh22f2Do1b8dRi0wTuFvN9gwqdorZw3qDIgRGP6yoc/e qKEPmvpjVpoHTpcr+sh9pUjWamKNtIK8XAiqnh73iAc6ICy1fi6a2Zxr9fk/exQBgBJ4 ZifQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=eilwX+vf; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id f5si6729715qtd.398.2017.10.16.10.26.44 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 16 Oct 2017 10:26:45 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=eilwX+vf; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:34288 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e49A3-0001sv-4u for patch@linaro.org; Mon, 16 Oct 2017 13:26:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e499e-0001rQ-UO for qemu-devel@nongnu.org; Mon, 16 Oct 2017 13:26:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e499b-0003Bk-NO for qemu-devel@nongnu.org; Mon, 16 Oct 2017 13:26:18 -0400 Received: from mail-pg0-x22e.google.com ([2607:f8b0:400e:c05::22e]:55517) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1e499b-00039M-EV for qemu-devel@nongnu.org; Mon, 16 Oct 2017 13:26:15 -0400 Received: by mail-pg0-x22e.google.com with SMTP id b11so7344679pgn.12 for ; Mon, 16 Oct 2017 10:26:13 -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:mime-version :content-transfer-encoding; bh=jDsT47M/aYvMfCpgshVTyhowo7uDqmFaW6U6jY2seq8=; b=eilwX+vft31lC9mKjZhY4l3QQv7dWFDHxe8sIyoyYFN//5baEmpKUScHGVIP84ITAX oo5QlUEm288Dg4//9S23pxQYQPA3QqU4cLD89exgFiAduRa8mJbnZPjyo2HmUNkhlSup 7mbQb8UoFlOf9/25VwnqnRm+suSZNhf8NQAmI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jDsT47M/aYvMfCpgshVTyhowo7uDqmFaW6U6jY2seq8=; b=b171dp0mK+hfTiC52YFAAQO1SBQRaMegKKJQzQTUe+iL8t9pLnobSYzUCPMVlVQWgw e7t2lDYAf1XQSi1uUC0hp+zU9xE7WvWkRz1/53ZTQqiMTkZ3ilVQs0f9UIhG7e1jlytU 13USKL1i1rddv632jEddnoa5ehS0DOolKu4ntqID3sgALYDEmcKR2DvZQer7dUIBd+9u t0GCT58q/bGOgvH3nKGp0O/6Vk4XceU2AO3xVA9urrmhiJe+wtX4FT9cfZY4ouGsctBg buNtn9YR4wlcCUOsnDjnsPfpX1MFsvhc0pQV8pCo6X7dUhKRIoEEtTJVy8o4b9dtm7ej N8jA== X-Gm-Message-State: AMCzsaXD9lq5pfhxMUZ6tiGBum2boEPbo78Oyjp/2ZhQ3Oeyuzea694K U1xQBE5x/vmVbWIePDYI5ZMaxCiXvZs= X-Google-Smtp-Source: AOwi7QCe+hEKs5LgzPbdy7V9kfLNoq69uK0p91u2D96dpvUKIGtAvxs+k6y4XfUazIUrAMUkDBWAKA== X-Received: by 10.159.198.131 with SMTP id g3mr9713140plo.337.1508174772700; Mon, 16 Oct 2017 10:26:12 -0700 (PDT) Received: from cloudburst.twiddle.net (97-126-104-76.tukw.qwest.net. [97.126.104.76]) by smtp.gmail.com with ESMTPSA id i187sm5594249pfc.96.2017.10.16.10.26.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 16 Oct 2017 10:26:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 16 Oct 2017 10:25:19 -0700 Message-Id: <20171016172609.23422-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.13.6 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::22e Subject: [Qemu-devel] [PATCH v6 00/50] tcg tb_lock removal 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: cota@braap.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" I've fixed two bugs within v5 of Emilio's patch set: - The step_next_tb patch fixes the "rep movsb" bug that appeared when we included CF_COUNT_MASK into CF_HASH_MASK. We had been relying on magic to single-step the next guest insn. - The original "allocate optimizer temps with tcg_malloc" patch failed testing on arm32 host. I didn't really look into exactly what was wrong because I had an older patch set that touched the same portion of the optimizer. Thus, an extra 20 patches in the patch set rearranging how temps are referenced within the TCG backend. Some of them have appeared on the list before, but it would have been last November. r~ Emilio G. Cota (24): tcg: define CF_PARALLEL and use it for TB hashing along with CF_COUNT_MASK tcg: convert tb->cflags reads to tb_cflags(tb) target/arm: check CF_PARALLEL instead of parallel_cpus target/hppa: check CF_PARALLEL instead of parallel_cpus target/i386: check CF_PARALLEL instead of parallel_cpus target/m68k: check CF_PARALLEL instead of parallel_cpus target/s390x: check CF_PARALLEL instead of parallel_cpus target/sh4: check CF_PARALLEL instead of parallel_cpus target/sparc: check CF_PARALLEL instead of parallel_cpus tcg: check CF_PARALLEL instead of parallel_cpus cpu-exec: lookup/generate TB outside exclusive region during step_atomic translate-all: use a binary search tree to track TBs in TBContext exec-all: rename tb_free to tb_remove translate-all: report correct avg host TB size tcg: take tb_ctx out of TCGContext tcg: define tcg_init_ctx and make tcg_ctx a pointer gen-icount: fold exitreq_label into TCGContext tcg: introduce **tcg_ctxs to keep track of all TCGContext's tcg: distribute profiling counters across TCGContext's tcg: allocate optimizer temps with tcg_malloc osdep: introduce qemu_mprotect_rwx/none translate-all: use qemu_protect_rwx/none helpers tcg: introduce regions to split code_gen_buffer tcg: enable multiple TCG contexts in softmmu Richard Henderson (26): tcg: Merge opcode arguments into TCGOp tcg: Propagate args to op->args in optimizer tcg: Propagate args to op->args in tcg.c tcg: Propagate TCGOp down to allocators tcg: Introduce arg_temp tcg: Add temp_global bit to TCGTemp tcg: Return NULL temp for TCG_CALL_DUMMY_ARG tcg: Introduce temp_arg tcg: Use per-temp state data in liveness tcg: Avoid loops against variable bounds tcg: Change temp_allocate_frame arg to TCGTemp tcg: Remove unused TCG_CALL_DUMMY_TCGV tcg: Export temp_idx tcg: Use per-temp state data in optimize tcg: Push tcg_ctx into generator functions tcg: Push tcg_ctx into tcg_gen_callN tcg: Introduce index_arg tcg: Reserve temporary index 0 target/alpha: Avoid translate_init unless tcg_enabled qom: Introduce CPUClass.tcg_initialize tcg: Use pointers in TCGOp->args hack dump tb->flags and tb->cflags tcg: Add CPUState step_next_tb tcg: Include CF_COUNT_MASK in CF_HASH_MASK tcg: Add CF_LAST_IO + CF_USE_ICOUNT to CF_HASH_MASK tcg: Remove CF_IGNORE_ICOUNT include/exec/exec-all.h | 41 +- include/exec/gen-icount.h | 25 +- include/exec/helper-gen.h | 12 +- include/exec/tb-context.h | 6 +- include/exec/tb-hash-xx.h | 9 +- include/exec/tb-hash.h | 4 +- include/exec/tb-lookup.h | 6 +- include/qemu/osdep.h | 2 + include/qom/cpu.h | 9 +- target/arm/helper-a64.h | 4 + target/hppa/helper.h | 2 + target/m68k/helper.h | 1 + target/s390x/helper.h | 4 + target/sparc/cpu.h | 2 +- tcg/tcg-op.h | 132 +++--- tcg/tcg.h | 184 +++++--- accel/tcg/cpu-exec.c | 102 ++-- accel/tcg/tcg-runtime.c | 4 +- accel/tcg/translate-all.c | 511 ++++++++++---------- accel/tcg/translator.c | 4 +- bsd-user/main.c | 3 +- cpus.c | 14 + exec.c | 13 +- linux-user/main.c | 9 +- linux-user/syscall.c | 1 + target/alpha/cpu.c | 3 +- target/alpha/translate.c | 12 +- target/arm/cpu.c | 6 +- target/arm/helper-a64.c | 38 +- target/arm/op_helper.c | 7 - target/arm/translate-a64.c | 38 +- target/arm/translate.c | 17 +- target/cris/cpu.c | 16 +- target/cris/translate.c | 8 +- target/cris/translate_v10.c | 2 +- target/hppa/cpu.c | 3 +- target/hppa/op_helper.c | 32 +- target/hppa/translate.c | 22 +- target/i386/cpu.c | 5 +- target/i386/translate.c | 60 ++- target/lm32/cpu.c | 7 +- target/lm32/translate.c | 16 +- target/m68k/cpu.c | 7 +- target/m68k/op_helper.c | 33 +- target/m68k/translate.c | 20 +- target/microblaze/cpu.c | 7 +- target/microblaze/translate.c | 8 +- target/mips/cpu.c | 5 +- target/mips/translate.c | 35 +- target/moxie/cpu.c | 7 +- target/moxie/translate.c | 10 +- target/nios2/cpu.c | 7 +- target/nios2/translate.c | 6 +- target/openrisc/cpu.c | 7 +- target/openrisc/translate.c | 8 +- target/ppc/translate.c | 14 +- target/ppc/translate_init.c | 37 +- target/s390x/cpu.c | 7 +- target/s390x/mem_helper.c | 80 +++- target/s390x/translate.c | 36 +- target/sh4/cpu.c | 5 +- target/sh4/translate.c | 17 +- target/sparc/cpu.c | 5 +- target/sparc/translate.c | 19 +- target/tilegx/cpu.c | 7 +- target/tilegx/translate.c | 4 +- target/tricore/cpu.c | 5 +- target/tricore/translate.c | 9 +- target/unicore32/cpu.c | 7 +- target/unicore32/translate.c | 8 +- target/xtensa/cpu.c | 7 +- target/xtensa/translate.c | 30 +- tcg/optimize.c | 659 ++++++++++++++------------ tcg/tcg-op.c | 186 ++++---- tcg/tcg.c | 1030 ++++++++++++++++++++++++++++------------- tests/qht-bench.c | 2 +- util/osdep.c | 41 ++ 77 files changed, 2194 insertions(+), 1577 deletions(-) -- 2.13.6