From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496975585116835.3579416631694; Thu, 8 Jun 2017 19:33:05 -0700 (PDT) Received: from localhost ([::1]:52323 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9jR-00068J-O3 for importer@patchew.org; Thu, 08 Jun 2017 22:33:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51677) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Y2-4B for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c8-000695-T9 for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:59673) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c8-00068K-DL for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:28 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 2E54A209CE; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:26 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id F40C17E7EE; Thu, 8 Jun 2017 22:25:25 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=IlpZopltHkbwra9 zEZjlzFOsy2QlB/n5x/BVUr9S8UU=; b=xPVRXdB9HGoDKCOn/5h64hltQwtYZ9P xhwd1XgnbG9z4ZUGZ4LTnxq7fk+zTpSLYlsrir+J/LaiWMvBQBA9NtBEv1Tw4OAu xs5pGK/YG6aeqmTVt29PJm2ZzyfGIyL2V+UHIxlUNsTwvqfGe2JFaPKpSh0/BZzx D1/xdyIGbaVw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=IlpZopltHkbwra9zEZjlzFOsy2QlB/n5x/BVUr9S8UU=; b=cWnRf48x PUmgyJWxUYqO+o53vQRp9NvhqvN2EtCyy+kVdHBGiGCMZw0oTmQI5kQK5jnz83e5 /AjoO7/6pOgal6DQIpSHKf6ZlpMTFCYghdOxxONiIuExZhyJn4RQ60vG73NYjWFv o+a2epqyJhlQh8aceEpM/hA0fjVyVr/WTbtJ/33KBWNA2XTiqmlIh6dnEYlE1K2u f90Ta2Be9nFeU6UCEf331BJ7Wb2de4DzJZmrEYSwHD/v5iyBhSOJdYMAe8vXrdXp EgGZEKuV6DJfk9tOPLBevO76rzhoO+Q9RS/Y6uDSkQCmmOodi7TUdmSSMUcY0+FH sGTNJB9+YGmXaA== X-ME-Sender: X-Sasl-enc: l8YOhf/7YX1Hyz/DhA/uNXYzNnMwbrCB/N6QSk7/fYRU 1496975126 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:16 -0400 Message-Id: <1496975122-16999-2-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-cota@braap.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 v8 1/7] exec: [tcg] Refactor flush of per-CPU virtual TB cache 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 From: Llu=C3=ADs Vilanova The function is reused in later patches. Signed-off-by: Llu=C3=ADs Vilanova Reviewed-by: Richard Henderson Signed-off-by: Emilio G. Cota --- cputlb.c | 2 +- include/exec/exec-all.h | 6 ++++++ translate-all.c | 15 ++++++++++----- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/cputlb.c b/cputlb.c index 743776a..6a2b762 100644 --- a/cputlb.c +++ b/cputlb.c @@ -118,7 +118,7 @@ static void tlb_flush_nocheck(CPUState *cpu) =20 memset(env->tlb_table, -1, sizeof(env->tlb_table)); memset(env->tlb_v_table, -1, sizeof(env->tlb_v_table)); - memset(cpu->tb_jmp_cache, 0, sizeof(cpu->tb_jmp_cache)); + tb_flush_jmp_cache_all(cpu); =20 env->vtlb_index =3D 0; env->tlb_flush_addr =3D -1; diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index 724ec73..b0281b0 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -366,6 +366,12 @@ struct TranslationBlock { }; =20 void tb_free(TranslationBlock *tb); +/** + * tb_flush_jmp_cache_all: + * + * Flush the virtual translation block cache. + */ +void tb_flush_jmp_cache_all(CPUState *env); void tb_flush(CPUState *cpu); void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr); TranslationBlock *tb_htable_lookup(CPUState *cpu, target_ulong pc, diff --git a/translate-all.c b/translate-all.c index 966747a..8a5dc19 100644 --- a/translate-all.c +++ b/translate-all.c @@ -931,11 +931,7 @@ static void do_tb_flush(CPUState *cpu, run_on_cpu_data= tb_flush_count) } =20 CPU_FOREACH(cpu) { - int i; - - for (i =3D 0; i < TB_JMP_CACHE_SIZE; ++i) { - atomic_set(&cpu->tb_jmp_cache[i], NULL); - } + tb_flush_jmp_cache_all(cpu); } =20 tcg_ctx.tb_ctx.nb_tbs =3D 0; @@ -1733,6 +1729,15 @@ void tb_check_watchpoint(CPUState *cpu) } } =20 +void tb_flush_jmp_cache_all(CPUState *cpu) +{ + int i; + + for (i =3D 0; i < TB_JMP_CACHE_SIZE; ++i) { + atomic_set(&cpu->tb_jmp_cache[i], NULL); + } +} + #ifndef CONFIG_USER_ONLY /* in deterministic execution mode, instructions doing device I/Os * must be at the end of the TB. --=20 2.7.4 From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496975354768686.1866083514007; Thu, 8 Jun 2017 19:29:14 -0700 (PDT) Received: from localhost ([::1]:52310 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9fl-0003VF-AS for importer@patchew.org; Thu, 08 Jun 2017 22:29:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51686) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Y6-5R for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c8-000698-Tp for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:41937) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c8-00068L-DE for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:28 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 6833620A77; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:26 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 31CA8241E0; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) 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:x-sasl-enc; s=mesmtp; bh=mYy Kzv0btgMO/qI0NwFIzPfem35Xg1xfHrXvdyIITv8=; b=sRdhekMUorPZXmaABtw Yj0xQZ33CJbhUUwrdTpB0v3RMc+C2u7Mg0ud/iKijesqqjkOlRWDGVqwAetwztaM d9Z2FdyJcX7UeZnPPDZJjmzSqI4TT8dxGiSCTGpgmeLYESlYBaRYdlKIwxZwEqac Y0ABKD3tmvtlIDhJ2E+Fx6ro= 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 :x-sasl-enc; s=fm1; bh=mYyKzv0btgMO/qI0NwFIzPfem35Xg1xfHrXvdyIIT v8=; b=GvJvZnFaK84seP0+o2JwA7Et27TzolRYPxA9rH2m+L2Xy37mWiYGB/6n/ JAeuOPaZkx5fvXgZIppWJQVqHsh6fHTEQwXzxd8nlN4IT2ixiCTyRLgzZXBJPc0A ClZkcnX5xuiHF9lSSHXdbY5sH3/PnhyFA0t8h6moRE8iXOsPYkBz01vU5Ph95fZf m7g+xpvZKry8tIuiB/NNSjk3esxCXe1pWgeOUMWd7sV8RWXea3EYQgPxFi4UcF7t uYp3SFjUrN6eiz4gQxnL4MyMHagDEGvo2+385rvwT4jXnJjIyKgMQb82auvj2zD4 FiuQ1XVI1lYMRCi2amN0BSXlqBhKw== X-ME-Sender: X-Sasl-enc: l8Yfhf30dWFY0CvVmR7uNXYzNnMwbrCB/N6QSk7/fYRU 1496975126 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:17 -0400 Message-Id: <1496975122-16999-3-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-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 v8 2/7] cpu: allocate cpu->trace_dstate in place 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" There's little point in dynamically allocating the bitmap if we know at compile-time the max number of events we want to support. Thus, make room in the struct for the bitmap, which will make things easier later: this paves the way for upcoming changes, in which we'll use a u32 to fully capture cpu->trace_dstate. This change also increases performance by saving a dereference and improving locality--note that this is important since upcoming work makes reading this bitmap fairly common. Signed-off-by: Emilio G. Cota Reviewed-by: Llu=C3=ADs Vilanova --- include/qom/cpu.h | 9 +++------ qom/cpu.c | 8 -------- trace/control.c | 9 ++++++++- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/include/qom/cpu.h b/include/qom/cpu.h index 89ddb68..bc6e20f 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -259,6 +259,7 @@ typedef void (*run_on_cpu_func)(CPUState *cpu, run_on_c= pu_data data); struct qemu_work_item; =20 #define CPU_UNSET_NUMA_NODE_ID -1 +#define CPU_TRACE_DSTATE_MAX_EVENTS 32 =20 /** * CPUState: @@ -373,12 +374,8 @@ struct CPUState { struct KVMState *kvm_state; struct kvm_run *kvm_run; =20 - /* - * Used for events with 'vcpu' and *without* the 'disabled' properties. - * Dynamically allocated based on bitmap requried to hold up to - * trace_get_vcpu_event_count() entries. - */ - unsigned long *trace_dstate; + /* Used for events with 'vcpu' and *without* the 'disabled' properties= */ + DECLARE_BITMAP(trace_dstate, CPU_TRACE_DSTATE_MAX_EVENTS); =20 /* TODO Move common fields from CPUArchState here. */ int cpu_index; /* used by alpha TCG */ diff --git a/qom/cpu.c b/qom/cpu.c index 5069876..69fbb9c 100644 --- a/qom/cpu.c +++ b/qom/cpu.c @@ -382,7 +382,6 @@ static void cpu_common_unrealizefn(DeviceState *dev, Er= ror **errp) =20 static void cpu_common_initfn(Object *obj) { - uint32_t count; CPUState *cpu =3D CPU(obj); CPUClass *cc =3D CPU_GET_CLASS(obj); =20 @@ -397,18 +396,11 @@ static void cpu_common_initfn(Object *obj) QTAILQ_INIT(&cpu->breakpoints); QTAILQ_INIT(&cpu->watchpoints); =20 - count =3D trace_get_vcpu_event_count(); - if (count) { - cpu->trace_dstate =3D bitmap_new(count); - } - cpu_exec_initfn(cpu); } =20 static void cpu_common_finalize(Object *obj) { - CPUState *cpu =3D CPU(obj); - g_free(cpu->trace_dstate); } =20 static int64_t cpu_common_get_arch_id(CPUState *cpu) diff --git a/trace/control.c b/trace/control.c index 9b157b0..83740aa 100644 --- a/trace/control.c +++ b/trace/control.c @@ -65,8 +65,15 @@ void trace_event_register_group(TraceEvent **events) size_t i; for (i =3D 0; events[i] !=3D NULL; i++) { events[i]->id =3D next_id++; - if (events[i]->vcpu_id !=3D TRACE_VCPU_EVENT_NONE) { + if (events[i]->vcpu_id =3D=3D TRACE_VCPU_EVENT_NONE) { + continue; + } + + if (likely(next_vcpu_id < CPU_TRACE_DSTATE_MAX_EVENTS)) { events[i]->vcpu_id =3D next_vcpu_id++; + } else { + error_report("WARNING: too many vcpu trace events; dropping '%= s'", + events[i]->name); } } event_groups =3D g_renew(TraceEventGroup, event_groups, nevent_groups = + 1); --=20 2.7.4 From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149697522941614.449031874639331; Thu, 8 Jun 2017 19:27:09 -0700 (PDT) Received: from localhost ([::1]:52302 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9dj-0001QK-TZ for importer@patchew.org; Thu, 08 Jun 2017 22:27:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51675) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Y0-49 for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c8-00069I-U8 for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:51891) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c8-00068W-DI for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:28 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 9D95920B39; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:26 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 56BDB7E7A3; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=fwA29ny/qN5io1x 6DUPQdJ2sYKBfpsU8nGeRMVOTwMA=; b=LtLX7qFhbkYqyZVlMHEJmNiQfSMGJ2F acvjd3ndmev7iXEt+XtNeAozWizpGNEJJeN2JXEHfCmpAClS2wMiLzDuFEpIthOg snD2YUosi0TUUDO8rfB8cErEi9DPPW3hiWaLtW7GAEoo6tkz6+EAQgMy/zEgByAv EEUGvAVY9Hdo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=fwA29ny/qN5io1x6DUPQdJ2sYKBfpsU8nGeRMVOTwMA=; b=L82Is5gx 0hQLAvAemwLXcmEHCgnp5xwPW0McN8zeJ4mSEakuMvXWkX1XsS4eknef9U+KjMsC 2EtZupDgH4psW3IVwXi7Fwkn4c3cG3khmQ4PJqeci0gDMuB50cj5s3K76yK6mIFK 2HJai05oq6/wzH17ZumL91AsEem2nqa/OetmdxQcq2d1Rb6SeRUk1O/YkZ/2IXI4 oYEwK5IjwBzXLQ6AJHEPheA1kz0FY46hITxfO9GSaVwU3Z474UFXZOsQq1vhZqtQ YZO9MHG98rPW5BSSWK5SumZGI+RjhWM9XlxvujKgV9chJorc817lSfIHjMGKSWdv idxkQsSddTcmLQ== X-ME-Sender: X-Sasl-enc: l8YWlOfwemRNySfSlAbuNXYzNnMwbrCB/N6QSk7/fYRU 1496975126 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:18 -0400 Message-Id: <1496975122-16999-4-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-cota@braap.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 v8 3/7] trace: [tcg] Delay changes to dynamic state when translating 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 From: Llu=C3=ADs Vilanova This keeps consistency across all decisions taken during translation when the dynamic state of a vCPU is changed in the middle of translating some guest code. Signed-off-by: Llu=C3=ADs Vilanova Reviewed-by: Richard Henderson [cota: use CPU_TRACE_DSTATE_MAX_EVENTS instead of trace_get_vcpu_event_coun= t()] Signed-off-by: Emilio G. Cota --- include/qom/cpu.h | 3 +++ trace/control-target.c | 21 ++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/include/qom/cpu.h b/include/qom/cpu.h index bc6e20f..29f4a32 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -303,6 +303,8 @@ struct qemu_work_item; * @kvm_fd: vCPU file descriptor for KVM. * @work_mutex: Lock to prevent multiple access to queued_work_*. * @queued_work_first: First asynchronous work pending. + * @trace_dstate_delayed: Delayed changes to trace_dstate (includes all ch= anges + * to @trace_dstate). * @trace_dstate: Dynamic tracing state of events for this vCPU (bitmask). * * State of one CPU core or thread. @@ -375,6 +377,7 @@ struct CPUState { struct kvm_run *kvm_run; =20 /* Used for events with 'vcpu' and *without* the 'disabled' properties= */ + DECLARE_BITMAP(trace_dstate_delayed, CPU_TRACE_DSTATE_MAX_EVENTS); DECLARE_BITMAP(trace_dstate, CPU_TRACE_DSTATE_MAX_EVENTS); =20 /* TODO Move common fields from CPUArchState here. */ diff --git a/trace/control-target.c b/trace/control-target.c index 6266e63..416d14e 100644 --- a/trace/control-target.c +++ b/trace/control-target.c @@ -1,13 +1,14 @@ /* * Interface for configuring and controlling the state of tracing events. * - * Copyright (C) 2014-2016 Llu=C3=ADs Vilanova + * Copyright (C) 2014-2017 Llu=C3=ADs Vilanova * * This work is licensed under the terms of the GNU GPL, version 2 or late= r. * See the COPYING file in the top-level directory. */ =20 #include "qemu/osdep.h" +#include "qom/cpu.h" #include "cpu.h" #include "trace-root.h" #include "trace/control.h" @@ -34,6 +35,13 @@ void trace_event_set_state_dynamic_init(TraceEvent *ev, = bool state) } } =20 +static void trace_event_synchronize_vcpu_state_dynamic( + CPUState *vcpu, run_on_cpu_data ignored) +{ + bitmap_copy(vcpu->trace_dstate, vcpu->trace_dstate_delayed, + CPU_TRACE_DSTATE_MAX_EVENTS); +} + void trace_event_set_state_dynamic(TraceEvent *ev, bool state) { CPUState *vcpu; @@ -69,13 +77,20 @@ void trace_event_set_vcpu_state_dynamic(CPUState *vcpu, if (state_pre !=3D state) { if (state) { trace_events_enabled_count++; - set_bit(vcpu_id, vcpu->trace_dstate); + set_bit(vcpu_id, vcpu->trace_dstate_delayed); (*ev->dstate)++; } else { trace_events_enabled_count--; - clear_bit(vcpu_id, vcpu->trace_dstate); + clear_bit(vcpu_id, vcpu->trace_dstate_delayed); (*ev->dstate)--; } + /* + * Delay changes until next TB; we want all TBs to be built from a + * single set of dstate values to ensure consistency of generated + * tracing code. + */ + async_run_on_cpu(vcpu, trace_event_synchronize_vcpu_state_dynamic, + RUN_ON_CPU_NULL); } } =20 --=20 2.7.4 From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496975230232788.5411695854658; Thu, 8 Jun 2017 19:27:10 -0700 (PDT) Received: from localhost ([::1]:52303 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9dk-0001RT-NU for importer@patchew.org; Thu, 08 Jun 2017 22:27:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51676) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Y1-4B for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c8-00069G-U7 for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:50775) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c8-00068a-ET for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:28 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id CBE7B20B3C; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:26 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 8B196241E0; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=1aJinaubyeE9DjV mooONSiSN1OAohgLLzOxCsbmjpkk=; b=gXM2VLShCYUsf7DPKwK/t1w1TfHhVVT RZbmeBoFg2YvGZ+HkEaOhrATCfOUIQKGJa/GBFbBVSBs+C0ilBCy3pPnzJDqs9DU kXb0kl1YXM+oTKEZgq1NE1hXz+i2F0ut9iPuHOogyprg88A8Cl98L8SDncf2x8+T 4J9wpfrJ+OtA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=1aJinaubyeE9DjVmooONSiSN1OAohgLLzOxCsbmjpkk=; b=BI7N2I1l S3v+FWWF3SrtiAuNDQGmjy4NJBKnCwFotzO7gTFpHxJf/pqQp1jXO098ApiPPNxH L3RxyeB1awwVtnsPTcr/owGwndIEiX8TVP14C6DylIxw04cu+PvnS0nTl45ckxRi jsdZIZ/L/2zGWkPkDAiB1R8DZPdjOEPejoO6wwDMm02t8Kdeuyd5P3FkFCc2I1yJ Zib2Q11Ih4svmjsx9v4uxU9hFwuWdqG+/j7dQ+xIUvfbuzSbS/B43ycT72fEnkcr gk7LzjZVrqaxllBJmKqHXmlC8KcYF44LIoEZ4LQPHEfeZ15YMPFinUsZXJ5CVvGp VoVAvAe5zAP3hg== X-ME-Sender: X-Sasl-enc: l8YXhO71bWJQwDbbjQ3uNXYzNnMwbrCB/N6QSk7/fYRU 1496975126 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:19 -0400 Message-Id: <1496975122-16999-5-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-cota@braap.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 v8 4/7] exec: [tcg] Use different TBs according to the vCPU's dynamic tracing state 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 From: Llu=C3=ADs Vilanova Every vCPU now uses a separate set of TBs for each set of dynamic tracing event state values. Each set of TBs can be used by any number of vCPUs to maximize TB reuse when vCPUs have the same tracing state. This feature is later used by tracetool to optimize tracing of guest code events. The maximum number of TB sets is defined as 2^E, where E is the number of events that have the 'vcpu' property (their state is stored in CPUState->trace_dstate). For this to work, a change on the dynamic tracing state of a vCPU will force it to flush its virtual TB cache (which is only indexed by address), and fall back to the physical TB cache (which now contains the vCPU's dynamic tracing state as part of the hashing function). Signed-off-by: Llu=C3=ADs Vilanova Reviewed-by: Richard Henderson [cota: - rename tb->trace_vcpu_dstate to the shorter tb->trace_ds - use uint32_t for tb->trace_ds instead of a typedef - add BUILD_BUG_ON check to make sure tb->trace_ds is big enough - fix xxhash - directly dereference cpu->trace_dstate instead of using bitmap_copy etc. - drop trace_dstate parameter from tb_htable_lookup; grab it directly from= cpu. ] Signed-off-by: Emilio G. Cota --- cpu-exec.c | 8 ++++++-- include/exec/exec-all.h | 3 +++ include/exec/tb-hash-xx.h | 7 +++++-- include/exec/tb-hash.h | 5 +++-- tcg-runtime.c | 3 ++- tests/qht-bench.c | 2 +- trace/control-target.c | 1 + trace/control.h | 3 +++ translate-all.c | 10 ++++++++-- 9 files changed, 32 insertions(+), 10 deletions(-) diff --git a/cpu-exec.c b/cpu-exec.c index 5b181c1..b6679d9 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -280,6 +280,7 @@ struct tb_desc { CPUArchState *env; tb_page_addr_t phys_page1; uint32_t flags; + uint32_t trace_ds; }; =20 static bool tb_cmp(const void *p, const void *d) @@ -291,6 +292,7 @@ static bool tb_cmp(const void *p, const void *d) tb->page_addr[0] =3D=3D desc->phys_page1 && tb->cs_base =3D=3D desc->cs_base && tb->flags =3D=3D desc->flags && + tb->trace_ds =3D=3D desc->trace_ds && !atomic_read(&tb->invalid)) { /* check next page if needed */ if (tb->page_addr[1] =3D=3D -1) { @@ -319,10 +321,11 @@ TranslationBlock *tb_htable_lookup(CPUState *cpu, tar= get_ulong pc, desc.env =3D (CPUArchState *)cpu->env_ptr; desc.cs_base =3D cs_base; desc.flags =3D flags; + desc.trace_ds =3D *cpu->trace_dstate; desc.pc =3D pc; phys_pc =3D get_page_addr_code(desc.env, pc); desc.phys_page1 =3D phys_pc & TARGET_PAGE_MASK; - h =3D tb_hash_func(phys_pc, pc, flags); + h =3D tb_hash_func(phys_pc, pc, flags, *cpu->trace_dstate); return qht_lookup(&tcg_ctx.tb_ctx.htable, tb_cmp, &desc, h); } =20 @@ -342,7 +345,8 @@ static inline TranslationBlock *tb_find(CPUState *cpu, cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags); tb =3D atomic_rcu_read(&cpu->tb_jmp_cache[tb_jmp_cache_hash_func(pc)]); if (unlikely(!tb || tb->pc !=3D pc || tb->cs_base !=3D cs_base || - tb->flags !=3D flags)) { + tb->flags !=3D flags || + tb->trace_ds !=3D *cpu->trace_dstate)) { tb =3D tb_htable_lookup(cpu, pc, cs_base, flags); if (!tb) { =20 diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index b0281b0..6bdc6e5 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -324,6 +324,9 @@ struct TranslationBlock { #define CF_USE_ICOUNT 0x20000 #define CF_IGNORE_ICOUNT 0x40000 /* Do not generate icount code */ =20 + /* Tracing Dynamic State (hence '_ds') used to generate this TB */ + uint32_t trace_ds; + uint16_t invalid; =20 void *tc_ptr; /* pointer to the translated code */ diff --git a/include/exec/tb-hash-xx.h b/include/exec/tb-hash-xx.h index 2c40b5c..6cd3022 100644 --- a/include/exec/tb-hash-xx.h +++ b/include/exec/tb-hash-xx.h @@ -49,7 +49,7 @@ * contiguous in memory. */ static inline -uint32_t tb_hash_func5(uint64_t a0, uint64_t b0, uint32_t e) +uint32_t tb_hash_func6(uint64_t a0, uint64_t b0, uint32_t e, uint32_t f) { uint32_t v1 =3D TB_HASH_XX_SEED + PRIME32_1 + PRIME32_2; uint32_t v2 =3D TB_HASH_XX_SEED + PRIME32_2; @@ -78,11 +78,14 @@ uint32_t tb_hash_func5(uint64_t a0, uint64_t b0, uint32= _t e) v4 *=3D PRIME32_1; =20 h32 =3D rol32(v1, 1) + rol32(v2, 7) + rol32(v3, 12) + rol32(v4, 18); - h32 +=3D 20; + h32 +=3D 24; =20 h32 +=3D e * PRIME32_3; h32 =3D rol32(h32, 17) * PRIME32_4; =20 + h32 +=3D f * PRIME32_3; + h32 =3D rol32(h32, 17) * PRIME32_4; + h32 ^=3D h32 >> 15; h32 *=3D PRIME32_2; h32 ^=3D h32 >> 13; diff --git a/include/exec/tb-hash.h b/include/exec/tb-hash.h index b1fe2d0..d64c2d9 100644 --- a/include/exec/tb-hash.h +++ b/include/exec/tb-hash.h @@ -58,9 +58,10 @@ static inline unsigned int tb_jmp_cache_hash_func(target= _ulong pc) #endif /* CONFIG_SOFTMMU */ =20 static inline -uint32_t tb_hash_func(tb_page_addr_t phys_pc, target_ulong pc, uint32_t fl= ags) +uint32_t tb_hash_func(tb_page_addr_t phys_pc, target_ulong pc, uint32_t fl= ags, + uint32_t trace_ds) { - return tb_hash_func5(phys_pc, pc, flags); + return tb_hash_func6(phys_pc, pc, flags, trace_ds); } =20 #endif diff --git a/tcg-runtime.c b/tcg-runtime.c index 7fa90ce..71d8956 100644 --- a/tcg-runtime.c +++ b/tcg-runtime.c @@ -155,9 +155,10 @@ void *HELPER(lookup_tb_ptr)(CPUArchState *env, target_= ulong addr) if (likely(tb)) { cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags); if (likely(tb->pc =3D=3D addr && tb->cs_base =3D=3D cs_base && - tb->flags =3D=3D flags)) { + tb->flags =3D=3D flags && tb->trace_ds =3D=3D *cpu->tra= ce_dstate)) { goto found; } + tb =3D tb_htable_lookup(cpu, addr, cs_base, flags); if (likely(tb)) { atomic_set(&cpu->tb_jmp_cache[tb_jmp_cache_hash_func(addr)], t= b); diff --git a/tests/qht-bench.c b/tests/qht-bench.c index 2afa09d..11c1cec 100644 --- a/tests/qht-bench.c +++ b/tests/qht-bench.c @@ -103,7 +103,7 @@ static bool is_equal(const void *obj, const void *userp) =20 static inline uint32_t h(unsigned long v) { - return tb_hash_func5(v, 0, 0); + return tb_hash_func6(v, 0, 0, 0); } =20 /* diff --git a/trace/control-target.c b/trace/control-target.c index 416d14e..ce7347e 100644 --- a/trace/control-target.c +++ b/trace/control-target.c @@ -40,6 +40,7 @@ static void trace_event_synchronize_vcpu_state_dynamic( { bitmap_copy(vcpu->trace_dstate, vcpu->trace_dstate_delayed, CPU_TRACE_DSTATE_MAX_EVENTS); + tb_flush_jmp_cache_all(vcpu); } =20 void trace_event_set_state_dynamic(TraceEvent *ev, bool state) diff --git a/trace/control.h b/trace/control.h index 4ea53e2..b931824 100644 --- a/trace/control.h +++ b/trace/control.h @@ -165,6 +165,9 @@ void trace_event_set_state_dynamic(TraceEvent *ev, bool= state); * Set the dynamic tracing state of an event for the given vCPU. * * Pre-condition: trace_event_get_vcpu_state_static(ev) =3D=3D true + * + * Note: Changes for execution-time events with the 'tcg' property will no= t be + * propagated until the next TB is executed (iff executing in TCG mo= de). */ void trace_event_set_vcpu_state_dynamic(CPUState *vcpu, TraceEvent *ev, bool state); diff --git a/translate-all.c b/translate-all.c index 8a5dc19..42beea2 100644 --- a/translate-all.c +++ b/translate-all.c @@ -53,6 +53,7 @@ #include "exec/cputlb.h" #include "exec/tb-hash.h" #include "translate-all.h" +#include "qemu/error-report.h" #include "qemu/bitmap.h" #include "qemu/timer.h" #include "qemu/main-loop.h" @@ -112,6 +113,10 @@ typedef struct PageDesc { #define V_L2_BITS 10 #define V_L2_SIZE (1 << V_L2_BITS) =20 +/* Make sure all possible CPU event bits fit in tb->trace_ds */ +QEMU_BUILD_BUG_ON(CPU_TRACE_DSTATE_MAX_EVENTS > + sizeof(((TranslationBlock *)0)->trace_ds) * BITS_PER_BYT= E); + uintptr_t qemu_host_page_size; intptr_t qemu_host_page_mask; =20 @@ -1096,7 +1101,7 @@ void tb_phys_invalidate(TranslationBlock *tb, tb_page= _addr_t page_addr) =20 /* remove the TB from the hash list */ phys_pc =3D tb->page_addr[0] + (tb->pc & ~TARGET_PAGE_MASK); - h =3D tb_hash_func(phys_pc, tb->pc, tb->flags); + h =3D tb_hash_func(phys_pc, tb->pc, tb->flags, tb->trace_ds); qht_remove(&tcg_ctx.tb_ctx.htable, tb, h); =20 /* remove the TB from the page list */ @@ -1241,7 +1246,7 @@ static void tb_link_page(TranslationBlock *tb, tb_pag= e_addr_t phys_pc, } =20 /* add in the hash table */ - h =3D tb_hash_func(phys_pc, tb->pc, tb->flags); + h =3D tb_hash_func(phys_pc, tb->pc, tb->flags, tb->trace_ds); qht_insert(&tcg_ctx.tb_ctx.htable, tb, h); =20 #ifdef DEBUG_TB_CHECK @@ -1286,6 +1291,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, tb->cs_base =3D cs_base; tb->flags =3D flags; tb->cflags =3D cflags; + tb->trace_ds =3D *cpu->trace_dstate; =20 #ifdef CONFIG_PROFILER tcg_ctx.tb_count1++; /* includes aborted translations because of --=20 2.7.4 From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496975354727661.8259496722842; Thu, 8 Jun 2017 19:29:14 -0700 (PDT) Received: from localhost ([::1]:52309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9fk-0003V3-Vv for importer@patchew.org; Thu, 08 Jun 2017 22:29:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51678) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Y3-4E for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c9-00069m-Dh for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:48143) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c9-00069H-7v for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:29 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 0A5F820B3E; Thu, 8 Jun 2017 22:25:27 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:27 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id BB8D27E7A3; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=YTR406Uxla0bTpZ 9r839VCl9Az6Qw09sRr6MDnU167M=; b=szIt5ldgH5XGBUwU/QWkxhTUj/plcLf s2RSAtoGJLAtY9LigqoZI2KMgfPuUpUo6ZAAsG0N1124+WotJrwDaz4q2uC1mMgw RAVZclQv3fkQAzNhPJXE6HAZc4doYWDRWg+YKKr6wXZW72ynwtoqBEoJKBdZP61T sZNRiF0fYe68= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=YTR406Uxla0bTpZ9r839VCl9Az6Qw09sRr6MDnU167M=; b=FAsv0ROr wnxurIYvfRp40L/gejcb5hID4ZnmqSbKHIIfVrVEYNxQoOuDVUXiYp4SrSNU54CQ 8BdhJ35yliqrCEQn81dJHuXoXPixLXiY5FzgpLkviXedtYhhjB568EMm9X6mfnLL cKQrtG/dx57+JnszY0IKfcZ6q8osFwkC8jTOOnvKaiyoRNIbT1MXcm9aK6bM1Qwx 8I+XFK/wOSARR7NgbCl/EszYnUTxCtXdeFkRuo6Zw51AjlePsaZJHSfv/4q2jjxQ ChGpwb2GxhKXkRkhspbXK7/CJ2WDxJSIsfG6/poO5dgAqMQ/796N2slQykSkhwha CaD+rLlO3ZxuRA== X-ME-Sender: X-Sasl-enc: l8YckeL4bnNI3jzGhhjuNXYzNnMwbrCB/N6QSk7/fYRU 1496975126 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:20 -0400 Message-Id: <1496975122-16999-6-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-cota@braap.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 v8 5/7] trace: [tcg] Do not generate TCG code to trace dinamically-disabled events 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 From: Llu=C3=ADs Vilanova If an event is dynamically disabled, the TCG code that calls the execution-time tracer is not generated. Removes the overheads of execution-time tracers for dynamically disabled events. As a bonus, also avoids checking the event state when the execution-time tracer is called from TCG-generated code (since otherwise TCG would simply not call it). Signed-off-by: Llu=C3=ADs Vilanova Signed-off-by: Emilio G. Cota --- scripts/tracetool/__init__.py | 3 ++- scripts/tracetool/format/h.py | 26 +++++++++++++++++++------- scripts/tracetool/format/tcg_h.py | 21 +++++++++++++++++---- scripts/tracetool/format/tcg_helper_c.py | 5 +++-- 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 1ffbc1d..d4c204a 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -6,7 +6,7 @@ Machinery for generating tracing-related intermediate files. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -268,6 +268,7 @@ class Event(object): return self._FMT.findall(self.fmt) =20 QEMU_TRACE =3D "trace_%(name)s" + QEMU_TRACE_NOCHECK =3D "_nocheck__" + QEMU_TRACE QEMU_TRACE_TCG =3D QEMU_TRACE + "_tcg" QEMU_DSTATE =3D "_TRACE_%(NAME)s_DSTATE" QEMU_EVENT =3D "_TRACE_%(NAME)s_EVENT" diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index 3682f4e..aecf249 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -6,7 +6,7 @@ trace/generated-tracers.h """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -49,6 +49,19 @@ def generate(events, backend, group): backend.generate_begin(events, group) =20 for e in events: + # tracer without checks + out('', + 'static inline void %(api)s(%(args)s)', + '{', + api=3De.api(e.QEMU_TRACE_NOCHECK), + args=3De.args) + + if "disable" not in e.properties: + backend.generate(e, group) + + out('}') + + # tracer wrapper with checks (per-vCPU tracing) if "vcpu" in e.properties: trace_cpu =3D next(iter(e.args))[1] cond =3D "trace_event_get_vcpu_state(%(cpu)s,"\ @@ -63,16 +76,15 @@ def generate(events, backend, group): 'static inline void %(api)s(%(args)s)', '{', ' if (%(cond)s) {', + ' %(api_nocheck)s(%(names)s);', + ' }', + '}', api=3De.api(), + api_nocheck=3De.api(e.QEMU_TRACE_NOCHECK), args=3De.args, + names=3D", ".join(e.args.names()), cond=3Dcond) =20 - if "disable" not in e.properties: - backend.generate(e, group) - - out(' }', - '}') - backend.generate_end(events, group) =20 out('#endif /* TRACE_%s_GENERATED_TRACERS_H */' % group.upper()) diff --git a/scripts/tracetool/format/tcg_h.py b/scripts/tracetool/format/t= cg_h.py index db55f52..1651cc3 100644 --- a/scripts/tracetool/format/tcg_h.py +++ b/scripts/tracetool/format/tcg_h.py @@ -6,7 +6,7 @@ Generate .h file for TCG code generation. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -46,7 +46,7 @@ def generate(events, backend, group): =20 for e in events: # just keep one of them - if "tcg-trans" not in e.properties: + if "tcg-exec" not in e.properties: continue =20 out('static inline void %(name_tcg)s(%(args)s)', @@ -58,12 +58,25 @@ def generate(events, backend, group): args_trans =3D e.original.event_trans.args args_exec =3D tracetool.vcpu.transform_args( "tcg_helper_c", e.original.event_exec, "wrapper") + if "vcpu" in e.properties: + trace_cpu =3D e.args.names()[0] + cond =3D "trace_event_get_vcpu_state(%(cpu)s,"\ + " TRACE_%(id)s)"\ + % dict( + cpu=3Dtrace_cpu, + id=3De.original.event_exec.name.upper()) + else: + cond =3D "true" + out(' %(name_trans)s(%(argnames_trans)s);', - ' gen_helper_%(name_exec)s(%(argnames_exec)s);', + ' if (%(cond)s) {', + ' gen_helper_%(name_exec)s(%(argnames_exec)s);', + ' }', name_trans=3De.original.event_trans.api(e.QEMU_TRACE), name_exec=3De.original.event_exec.api(e.QEMU_TRACE), argnames_trans=3D", ".join(args_trans.names()), - argnames_exec=3D", ".join(args_exec.names())) + argnames_exec=3D", ".join(args_exec.names()), + cond=3Dcond) =20 out('}') =20 diff --git a/scripts/tracetool/format/tcg_helper_c.py b/scripts/tracetool/f= ormat/tcg_helper_c.py index ec7acbe..bbbd6ad 100644 --- a/scripts/tracetool/format/tcg_helper_c.py +++ b/scripts/tracetool/format/tcg_helper_c.py @@ -6,7 +6,7 @@ Generate trace/generated-helpers.c. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -71,10 +71,11 @@ def generate(events, backend, group): =20 out('void %(name_tcg)s(%(args_api)s)', '{', + # NOTE: the check was already performed at TCG-generation time ' %(name)s(%(args_call)s);', '}', name_tcg=3D"helper_%s_proxy" % e.api(), - name=3De.api(), + name=3De.api(e.QEMU_TRACE_NOCHECK), args_api=3De_args_api, args_call=3D", ".join(e_args_call.casted()), ) --=20 2.7.4 From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149697565230646.44053508219599; Thu, 8 Jun 2017 19:34:12 -0700 (PDT) Received: from localhost ([::1]:52327 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9kX-0007Do-Uj for importer@patchew.org; Thu, 08 Jun 2017 22:34:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Y4-4i for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c9-00069v-F5 for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:47955) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c9-00069L-7f for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:29 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 36A5920B3D; Thu, 8 Jun 2017 22:25:27 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:27 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id ED647241E0; Thu, 8 Jun 2017 22:25:26 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=lnGfacU0mHf5y3L rp7lhBkRAcbUEivzp25NTvL6Y3OQ=; b=ZhCeuMmKz9L1PXFP6ciK5udmL8my6rS b/JrdFdPvTAGSiySU3qDZyWbwJkxh2mEoxhqhJUPdiNzVBOIlX/8jSu2VJfdf7vo rgroXKeW62VvACCPh1lPmcxwSbwOWb3c1TEE/BeybLpr23uXPubG4WT3+TrEm6+p +wCO2oF/LNKM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=lnGfacU0mHf5y3Lrp7lhBkRAcbUEivzp25NTvL6Y3OQ=; b=YTT4RrFs uqi7rsLb9GJDWUazPiYm69AgZ5BlsBbOVVp8HGFTjlU1Im6gVgn9sVKO18jovEgP ppBKeTcPJLPNXJvrYj1PNVGCk6cRxLlfAP5KlAamYt9CphJRaze/WqF7YWBB3sA+ UV1azXEP9RK9xbZGAzWLTe0p0i3kjudDqfhNFmM8BDB0Bl926ipiQ6eTQ7yjLL6m pp7VgpSaAO4/EQke5asMeEIvXBlMIEGIa+mp/IKZpiK5S6lN7fIGH9RnwP1P3vOE NeBAtsJRe3hz1xYBwI6z/UWmxHQ64JAfYxSrwVY8hAtwYDfZew/aJ3njzI/0MhjR vTGr7BshHTBUOg== X-ME-Sender: X-Sasl-enc: l8YSgPP8bW5OyjrZgBLuNXYzNnMwbrCB/N6QSk7/fYRU 1496975126 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:21 -0400 Message-Id: <1496975122-16999-7-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-cota@braap.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 v8 6/7] trace: [tcg, trivial] Re-align generated code 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 From: Llu=C3=ADs Vilanova Last patch removed a nesting level in generated code. Re-align all code generated by backends to be 4-column aligned. Signed-off-by: Llu=C3=ADs Vilanova Signed-off-by: Emilio G. Cota --- scripts/tracetool/backend/dtrace.py | 4 ++-- scripts/tracetool/backend/ftrace.py | 20 ++++++++++---------- scripts/tracetool/backend/log.py | 19 ++++++++++--------- scripts/tracetool/backend/simple.py | 4 ++-- scripts/tracetool/backend/syslog.py | 6 +++--- scripts/tracetool/backend/ust.py | 4 ++-- 6 files changed, 29 insertions(+), 28 deletions(-) diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backen= d/dtrace.py index c469cbd..c6812b7 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -6,7 +6,7 @@ DTrace/SystemTAP backend. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -46,6 +46,6 @@ def generate_h_begin(events, group): =20 =20 def generate_h(event, group): - out(' QEMU_%(uppername)s(%(argnames)s);', + out(' QEMU_%(uppername)s(%(argnames)s);', uppername=3Devent.name.upper(), argnames=3D", ".join(event.args.names())) diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index db9fe7a..dd0eda4 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -29,17 +29,17 @@ def generate_h(event, group): if len(event.args) > 0: argnames =3D ", " + argnames =20 - out(' {', - ' char ftrace_buf[MAX_TRACE_STRLEN];', - ' int unused __attribute__ ((unused));', - ' int trlen;', - ' if (trace_event_get_state(%(event_id)s)) {', - ' trlen =3D snprintf(ftrace_buf, MAX_TRACE_STRLEN,', - ' "%(name)s " %(fmt)s "\\n" %(argn= ames)s);', - ' trlen =3D MIN(trlen, MAX_TRACE_STRLEN - 1);', - ' unused =3D write(trace_marker_fd, ftrace_buf, trl= en);', - ' }', + out(' {', + ' char ftrace_buf[MAX_TRACE_STRLEN];', + ' int unused __attribute__ ((unused));', + ' int trlen;', + ' if (trace_event_get_state(%(event_id)s)) {', + ' trlen =3D snprintf(ftrace_buf, MAX_TRACE_STRLEN,', + ' "%(name)s " %(fmt)s "\\n" %(argnames= )s);', + ' trlen =3D MIN(trlen, MAX_TRACE_STRLEN - 1);', + ' unused =3D write(trace_marker_fd, ftrace_buf, trlen);= ', ' }', + ' }', name=3Devent.name, args=3Devent.args, event_id=3D"TRACE_" + event.name.upper(), diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/l= og.py index 4f4a4d3..54f0a69 100644 --- a/scripts/tracetool/backend/log.py +++ b/scripts/tracetool/backend/log.py @@ -6,7 +6,7 @@ Stderr built-in backend. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -35,14 +35,15 @@ def generate_h(event, group): else: cond =3D "trace_event_get_state(%s)" % ("TRACE_" + event.name.uppe= r()) =20 - out(' if (%(cond)s) {', - ' struct timeval _now;', - ' gettimeofday(&_now, NULL);', - ' qemu_log_mask(LOG_TRACE, "%%d@%%zd.%%06zd:%(name)s " = %(fmt)s "\\n",', - ' getpid(),', - ' (size_t)_now.tv_sec, (size_t)_now.tv_us= ec', - ' %(argnames)s);', - ' }', + out(' if (%(cond)s) {', + ' struct timeval _now;', + ' gettimeofday(&_now, NULL);', + ' qemu_log_mask(LOG_TRACE,', + ' "%%d@%%zd.%%06zd:%(name)s " %(fmt)s "\\n",', + ' getpid(),', + ' (size_t)_now.tv_sec, (size_t)_now.tv_usec', + ' %(argnames)s);', + ' }', cond=3Dcond, name=3Devent.name, fmt=3Devent.fmt.rstrip("\n"), diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backen= d/simple.py index 4acc06e..f983670 100644 --- a/scripts/tracetool/backend/simple.py +++ b/scripts/tracetool/backend/simple.py @@ -6,7 +6,7 @@ Simple built-in backend. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2014, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -37,7 +37,7 @@ def generate_h_begin(events, group): =20 =20 def generate_h(event, group): - out(' _simple_%(api)s(%(args)s);', + out(' _simple_%(api)s(%(args)s);', api=3Devent.api(), args=3D", ".join(event.args.names())) =20 diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backen= d/syslog.py index b8ff279..1ce627f 100644 --- a/scripts/tracetool/backend/syslog.py +++ b/scripts/tracetool/backend/syslog.py @@ -35,9 +35,9 @@ def generate_h(event, group): else: cond =3D "trace_event_get_state(%s)" % ("TRACE_" + event.name.uppe= r()) =20 - out(' if (%(cond)s) {', - ' syslog(LOG_INFO, "%(name)s " %(fmt)s %(argnames)s);', - ' }', + out(' if (%(cond)s) {', + ' syslog(LOG_INFO, "%(name)s " %(fmt)s %(argnames)s);', + ' }', cond=3Dcond, name=3Devent.name, fmt=3Devent.fmt.rstrip("\n"), diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/u= st.py index 52ce892..2adaf54 100644 --- a/scripts/tracetool/backend/ust.py +++ b/scripts/tracetool/backend/ust.py @@ -6,7 +6,7 @@ LTTng User Space Tracing backend. """ =20 __author__ =3D "Llu=C3=ADs Vilanova " -__copyright__ =3D "Copyright 2012-2016, Llu=C3=ADs Vilanova " +__copyright__ =3D "Copyright 2012-2017, Llu=C3=ADs Vilanova " __license__ =3D "GPL version 2 or (at your option) any later version" =20 __maintainer__ =3D "Stefan Hajnoczi" @@ -35,6 +35,6 @@ def generate_h(event, group): if len(event.args) > 0: argnames =3D ", " + argnames =20 - out(' tracepoint(qemu, %(name)s%(tp_args)s);', + out(' tracepoint(qemu, %(name)s%(tp_args)s);', name=3Devent.name, tp_args=3Dargnames) --=20 2.7.4 From nobody Sun Feb 8 22:01:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496975229542919.0689930141352; Thu, 8 Jun 2017 19:27:09 -0700 (PDT) Received: from localhost ([::1]:52301 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9di-0001Q7-U0 for importer@patchew.org; Thu, 08 Jun 2017 22:27:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51674) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJ9cC-0000Xz-4A for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJ9c9-00069p-DV for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:32 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:44757) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dJ9c9-00069R-8Z for qemu-devel@nongnu.org; Thu, 08 Jun 2017 22:25:29 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 675D820983; Thu, 8 Jun 2017 22:25:27 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Thu, 08 Jun 2017 22:25:27 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 283BE7E7A3; Thu, 8 Jun 2017 22:25:27 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=NX1v0SXiQwvINOz 2nfHDDTXTolUN74aOtTHcl0gmA1M=; b=EjJsQP7dTeOfUBDJCH8c9gE8/DA+CCP VQaeKqmgPWDqtBZ3+9EQwJjAtf9pQYPxuEWM+zShtthAJzMxBic7xn1aTzhAmKm9 aGalzOU7tWDgmzQ91dRVr5a0qWfMo4yC0SBnI4vn/R9fzlUMGKo5VLNLvDd2zfOY e/GdOMxKMxe8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=NX1v0SXiQwvINOz2nfHDDTXTolUN74aOtTHcl0gmA1M=; b=XUnqVz0e PRiM6agcAAX8dFVzL22fv772F05+wLoPrKCBLBxIZgcFopOsyx8F+Pbmh1uDhQ1w z7H8BeJABWRKDI5Fy3/ydTLepkUExQLjF47wULR40IEulTzE94K32JGJCDlqERfJ kG60w+WWVcmz54MGW8nLry5+rw5sKMVAfwH4Nzkt+NbqyoiQgEg2mZK/Kd3hPUwA zZi+9yvfCysrwhPto/zXF7RmCSc4m/zcDLD3FLZiQaGncCqYUuOhLQ2u4zGfxHsB Ba1SgoNaHb0yBaopob7yn6ry72Boog3XMFWGA6e8G0YV9mvH36fuTx4ZNJpRvkiQ RwHSPrcbNVJrNA== X-ME-Sender: X-Sasl-enc: kZrfdAGkR5Af6YEASWoltdgcaskw0+2H13Rh5MSPOBWS 1496975127 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Thu, 8 Jun 2017 22:25:22 -0400 Message-Id: <1496975122-16999-8-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1496975122-16999-1-git-send-email-cota@braap.org> References: <1496975122-16999-1-git-send-email-cota@braap.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 v8 7/7] trace: [trivial] Statically enable all guest events 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: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= , Stefan Hajnoczi , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 From: Llu=C3=ADs Vilanova The optimizations of this series makes it feasible to have them available on all builds. Signed-off-by: Llu=C3=ADs Vilanova Signed-off-by: Emilio G. Cota --- trace-events | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/trace-events b/trace-events index d7a4d94..b040d7e 100644 --- a/trace-events +++ b/trace-events @@ -125,7 +125,7 @@ vcpu guest_cpu_reset(void) # # Mode: user, softmmu # Targets: TCG(all) -disable vcpu tcg guest_mem_before(TCGv vaddr, uint8_t info) "info=3D%d", "= vaddr=3D0x%016"PRIx64" info=3D%d" +vcpu tcg guest_mem_before(TCGv vaddr, uint8_t info) "info=3D%d", "vaddr=3D= 0x%016"PRIx64" info=3D%d" =20 # @num: System call number. # @arg*: System call argument value. @@ -134,7 +134,7 @@ disable vcpu tcg guest_mem_before(TCGv vaddr, uint8_t i= nfo) "info=3D%d", "vaddr=3D0x # # Mode: user # Targets: TCG(all) -disable vcpu guest_user_syscall(uint64_t num, uint64_t arg1, uint64_t arg2= , uint64_t arg3, uint64_t arg4, uint64_t arg5, uint64_t arg6, uint64_t arg7= , uint64_t arg8) "num=3D0x%016"PRIx64" arg1=3D0x%016"PRIx64" arg2=3D0x%016"= PRIx64" arg3=3D0x%016"PRIx64" arg4=3D0x%016"PRIx64" arg5=3D0x%016"PRIx64" a= rg6=3D0x%016"PRIx64" arg7=3D0x%016"PRIx64" arg8=3D0x%016"PRIx64 +vcpu guest_user_syscall(uint64_t num, uint64_t arg1, uint64_t arg2, uint64= _t arg3, uint64_t arg4, uint64_t arg5, uint64_t arg6, uint64_t arg7, uint64= _t arg8) "num=3D0x%016"PRIx64" arg1=3D0x%016"PRIx64" arg2=3D0x%016"PRIx64" = arg3=3D0x%016"PRIx64" arg4=3D0x%016"PRIx64" arg5=3D0x%016"PRIx64" arg6=3D0x= %016"PRIx64" arg7=3D0x%016"PRIx64" arg8=3D0x%016"PRIx64 =20 # @num: System call number. # @ret: System call result value. @@ -143,4 +143,4 @@ disable vcpu guest_user_syscall(uint64_t num, uint64_t = arg1, uint64_t arg2, uint # # Mode: user # Targets: TCG(all) -disable vcpu guest_user_syscall_ret(uint64_t num, uint64_t ret) "num=3D0x%= 016"PRIx64" ret=3D0x%016"PRIx64 +vcpu guest_user_syscall_ret(uint64_t num, uint64_t ret) "num=3D0x%016"PRIx= 64" ret=3D0x%016"PRIx64 --=20 2.7.4