Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/810783/?format=api
{ "id": 810783, "url": "http://patchwork.ozlabs.org/api/patches/810783/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504729728-23279-2-git-send-email-cota@braap.org/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1504729728-23279-2-git-send-email-cota@braap.org>", "list_archive_url": null, "date": "2017-09-06T20:28:43", "name": "[RFC,1/6] tcg: keep a pointer to the current TB in TCGContext", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "c01a825095b6e24e420b89889639b45e747453d1", "submitter": { "id": 65690, "url": "http://patchwork.ozlabs.org/api/people/65690/?format=api", "name": "Emilio Cota", "email": "cota@braap.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504729728-23279-2-git-send-email-cota@braap.org/mbox/", "series": [ { "id": 1871, "url": "http://patchwork.ozlabs.org/api/series/1871/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1871", "date": "2017-09-06T20:28:45", "name": "initial plugin support", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/1871/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/810783/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/810783/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=braap.org header.i=@braap.org\n\theader.b=\"btcYliQK\"; \n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"QnBeaSxV\"; \n\tdkim-atps=neutral" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnb0g1dtNz9t2c\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 7 Sep 2017 06:34:27 +1000 (AEST)", "from localhost ([::1]:37687 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dph1l-0005mI-Ab\n\tfor incoming@patchwork.ozlabs.org; Wed, 06 Sep 2017 16:34:25 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:53493)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <cota@braap.org>) id 1dpgxU-0002Zo-BR\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:30:05 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <cota@braap.org>) id 1dpgxR-00013f-5c\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:30:00 -0400", "from out1-smtp.messagingengine.com ([66.111.4.25]:41599)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <cota@braap.org>) id 1dpgxQ-00011q-VR\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 16:29:57 -0400", "from compute4.internal (compute4.nyi.internal [10.202.2.44])\n\tby mailout.nyi.internal (Postfix) with ESMTP id 1E34A20B2E;\n\tWed, 6 Sep 2017 16:29:55 -0400 (EDT)", "from frontend2 ([10.202.2.161])\n\tby compute4.internal (MEProxy); Wed, 06 Sep 2017 16:29:55 -0400", "from localhost (flamenco.cs.columbia.edu [128.59.20.216])\n\tby mail.messagingengine.com (Postfix) with ESMTPA id CCF49240A4;\n\tWed, 6 Sep 2017 16:29:54 -0400 (EDT)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc\n\t:date:from:in-reply-to:message-id:references:subject:to\n\t:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=uIf\n\t9wyJY0a1xB9NEfA/yIJaXWVhupRaB6ow59U4DkJ4=; b=btcYliQKQlUNyulF/PM\n\tKsl25z107DGuMhf+D0fKVpmJ9rP/wksP/ECcLbMJ9LZuksiPE2K7wZ17cMEQxhsX\n\ttiB7LD55lDS1dihjOw87KUATv7JgAsegkrywUbcu6lHubxpUteMENEnQHNh3cn2w\n\tgSB8RAd8xqGKTYjVMccrAINc=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:date:from:in-reply-to:message-id\n\t:references:subject:to:x-me-sender:x-me-sender:x-sasl-enc\n\t:x-sasl-enc; s=fm1; bh=uIf9wyJY0a1xB9NEfA/yIJaXWVhupRaB6ow59U4Dk\n\tJ4=; b=QnBeaSxVqZDvUeNPej0m0gwr65aDv616XuLyeoA9MwHGSg7vXwSFeGp9X\n\toxURzB0lRYFXDUpIVv72UTwziM2ScW+1cba9/Hl3XfF9qObcAk43ePxePU3mqBUU\n\tBx2TaiQt3JM2mdMxQqIjy6yiarJ8Z3KlXDZPBI0mEEDvsGGIH3EYKRuboA3MIP8F\n\tBMSn+hokAhVY2XRZTNrkKjtMg3N7/gSV7aXCishE20prKT4vydnVQeR8rAZZ0j5+\n\tkdn5Fn/t016qZcyRem0Oc48B2ARdOZWTt6g8aith/0GS6dnZnKnGX6ijEnOvGveZ\n\tHQ28UIisUzPNlZBztB6ZobJfnSPQg==" ], "X-ME-Sender": "<xms:w1qwWXwuxMmAKUb_H2vcc9TaxP_gQ3y5gLk2fi7zHvz4VTio1tj8NQ>", "X-Sasl-enc": "siU69U5WVz7GPr1InDXiOUOueonVQIisbKO7R20WO30e 1504729794", "From": "\"Emilio G. Cota\" <cota@braap.org>", "To": "qemu-devel@nongnu.org", "Date": "Wed, 6 Sep 2017 16:28:43 -0400", "Message-Id": "<1504729728-23279-2-git-send-email-cota@braap.org>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1504729728-23279-1-git-send-email-cota@braap.org>", "References": "<1504729728-23279-1-git-send-email-cota@braap.org>", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "66.111.4.25", "Subject": "[Qemu-devel] [RFC 1/6] tcg: keep a pointer to the current TB in\n\tTCGContext", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "=?utf-8?q?Llu=C3=ADs_Vilanova?= <vilanova@ac.upc.edu>,\n\tStefan Hajnoczi <stefanha@redhat.com>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "Instead of just a copy of tb->cflags. This gives access in TCG\nto other fields in TB, which will be needed when we implement\ncallbacks from memory accesses performed by TCG-translated code.\n\nSigned-off-by: Emilio G. Cota <cota@braap.org>\n---\n tcg/tcg.h | 2 +-\n accel/tcg/translate-all.c | 3 ++-\n tcg/tcg-op.c | 10 +++++-----\n 3 files changed, 8 insertions(+), 7 deletions(-)", "diff": "diff --git a/tcg/tcg.h b/tcg/tcg.h\nindex cf4eeaf..86ca604 100644\n--- a/tcg/tcg.h\n+++ b/tcg/tcg.h\n@@ -676,7 +676,7 @@ struct TCGContext {\n uintptr_t *tb_jmp_target_addr; /* tb->jmp_target_addr if !USE_DIRECT_JUMP */\n \n TCGRegSet reserved_regs;\n- uint32_t tb_cflags; /* cflags of the current TB */\n+ const TranslationBlock *tb;\n intptr_t current_frame_offset;\n intptr_t frame_start;\n intptr_t frame_end;\ndiff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c\nindex 69cc7dc..7332afc 100644\n--- a/accel/tcg/translate-all.c\n+++ b/accel/tcg/translate-all.c\n@@ -1600,7 +1600,6 @@ TranslationBlock *tb_gen_code(CPUState *cpu,\n tb->flags = flags;\n tb->cflags = cflags;\n tb->trace_vcpu_dstate = *cpu->trace_dstate;\n- tcg_ctx->tb_cflags = cflags;\n \n #ifdef CONFIG_PROFILER\n /* includes aborted translations because of exceptions */\n@@ -1610,9 +1609,11 @@ TranslationBlock *tb_gen_code(CPUState *cpu,\n \n tcg_func_start(tcg_ctx);\n \n+ tcg_ctx->tb = tb;\n tcg_ctx->cpu = ENV_GET_CPU(env);\n gen_intermediate_code(cpu, tb);\n tcg_ctx->cpu = NULL;\n+ tcg_ctx->tb = NULL;\n \n trace_translate_block(tb, tb->pc, tb->tc.ptr);\n \ndiff --git a/tcg/tcg-op.c b/tcg/tcg-op.c\nindex 2a8bf90..32449d2 100644\n--- a/tcg/tcg-op.c\n+++ b/tcg/tcg-op.c\n@@ -150,7 +150,7 @@ void tcg_gen_op6(TCGContext *ctx, TCGOpcode opc, TCGArg a1, TCGArg a2,\n \n void tcg_gen_mb(TCGBar mb_type)\n {\n- if (tcg_ctx->tb_cflags & CF_PARALLEL) {\n+ if (tb_cflags(tcg_ctx->tb) & CF_PARALLEL) {\n tcg_gen_op1(tcg_ctx, INDEX_op_mb, mb_type);\n }\n }\n@@ -2794,7 +2794,7 @@ void tcg_gen_atomic_cmpxchg_i32(TCGv_i32 retv, TCGv addr, TCGv_i32 cmpv,\n {\n memop = tcg_canonicalize_memop(memop, 0, 0);\n \n- if (!(tcg_ctx->tb_cflags & CF_PARALLEL)) {\n+ if (!(tb_cflags(tcg_ctx->tb) & CF_PARALLEL)) {\n TCGv_i32 t1 = tcg_temp_new_i32();\n TCGv_i32 t2 = tcg_temp_new_i32();\n \n@@ -2838,7 +2838,7 @@ void tcg_gen_atomic_cmpxchg_i64(TCGv_i64 retv, TCGv addr, TCGv_i64 cmpv,\n {\n memop = tcg_canonicalize_memop(memop, 1, 0);\n \n- if (!(tcg_ctx->tb_cflags & CF_PARALLEL)) {\n+ if (!(tb_cflags(tcg_ctx->tb) & CF_PARALLEL)) {\n TCGv_i64 t1 = tcg_temp_new_i64();\n TCGv_i64 t2 = tcg_temp_new_i64();\n \n@@ -3015,7 +3015,7 @@ static void * const table_##NAME[16] = { \\\n void tcg_gen_atomic_##NAME##_i32 \\\n (TCGv_i32 ret, TCGv addr, TCGv_i32 val, TCGArg idx, TCGMemOp memop) \\\n { \\\n- if (tcg_ctx->tb_cflags & CF_PARALLEL) { \\\n+ if (tb_cflags(tcg_ctx->tb) & CF_PARALLEL) { \\\n do_atomic_op_i32(ret, addr, val, idx, memop, table_##NAME); \\\n } else { \\\n do_nonatomic_op_i32(ret, addr, val, idx, memop, NEW, \\\n@@ -3025,7 +3025,7 @@ void tcg_gen_atomic_##NAME##_i32 \\\n void tcg_gen_atomic_##NAME##_i64 \\\n (TCGv_i64 ret, TCGv addr, TCGv_i64 val, TCGArg idx, TCGMemOp memop) \\\n { \\\n- if (tcg_ctx->tb_cflags & CF_PARALLEL) { \\\n+ if (tb_cflags(tcg_ctx->tb) & CF_PARALLEL) { \\\n do_atomic_op_i64(ret, addr, val, idx, memop, table_##NAME); \\\n } else { \\\n do_nonatomic_op_i64(ret, addr, val, idx, memop, NEW, \\\n", "prefixes": [ "RFC", "1/6" ] }