{"id":813312,"url":"http://patchwork.ozlabs.org/api/1.2/patches/813312/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/150529787476.10902.6384634683395635747.stgit@frigg.lan/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","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":"<150529787476.10902.6384634683395635747.stgit@frigg.lan>","list_archive_url":null,"date":"2017-09-13T10:17:54","name":"[v6,06/22] instrument: [softmmu] Add command line library loader","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"5274e78f9b7a4cedc81a744a25bd41b518609c5b","submitter":{"id":9099,"url":"http://patchwork.ozlabs.org/api/1.2/people/9099/?format=json","name":"Lluís Vilanova","email":"vilanova@ac.upc.edu"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/150529787476.10902.6384634683395635747.stgit@frigg.lan/mbox/","series":[{"id":2857,"url":"http://patchwork.ozlabs.org/api/1.2/series/2857/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2857","date":"2017-09-13T09:53:43","name":"instrument: Add basic event instrumentation","version":6,"mbox":"http://patchwork.ozlabs.org/series/2857/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/813312/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/813312/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>)","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 3xsd0v1LSNz9sBW\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 20:18:39 +1000 (AEST)","from localhost ([::1]:41352 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 1ds4ke-0000y7-5r\n\tfor incoming@patchwork.ozlabs.org; Wed, 13 Sep 2017 06:18:36 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:45119)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <vilanova@ac.upc.edu>) id 1ds4kE-0000wR-PO\n\tfor qemu-devel@nongnu.org; Wed, 13 Sep 2017 06:18:12 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <vilanova@ac.upc.edu>) id 1ds4k8-0000u7-Ma\n\tfor qemu-devel@nongnu.org; Wed, 13 Sep 2017 06:18:10 -0400","from roura.ac.upc.es ([147.83.33.10]:33743)\n\tby eggs.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <vilanova@ac.upc.edu>) id 1ds4k8-0000tl-BY\n\tfor qemu-devel@nongnu.org; Wed, 13 Sep 2017 06:18:04 -0400","from correu-2.ac.upc.es (correu-2.ac.upc.es [147.83.30.92])\n\tby roura.ac.upc.es (8.13.8/8.13.8) with ESMTP id v8DAI1xq008422;\n\tWed, 13 Sep 2017 12:18:01 +0200","from localhost (unknown [132.68.137.204])\n\tby correu-2.ac.upc.es (Postfix) with ESMTPSA id E87C73A4;\n\tWed, 13 Sep 2017 12:17:55 +0200 (CEST)"],"From":"=?utf-8?b?TGx1w61z?= Vilanova <vilanova@ac.upc.edu>","To":"qemu-devel@nongnu.org","Date":"Wed, 13 Sep 2017 13:17:54 +0300","Message-Id":"<150529787476.10902.6384634683395635747.stgit@frigg.lan>","X-Mailer":"git-send-email 2.14.1","In-Reply-To":"<150529642278.10902.18234057937634437857.stgit@frigg.lan>","References":"<150529642278.10902.18234057937634437857.stgit@frigg.lan>","User-Agent":"StGit/0.18","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"quoted-printable","X-MIME-Autoconverted":"from 8bit to quoted-printable by roura.ac.upc.es id\n\tv8DAI1xq008422","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.6.x [fuzzy]","X-Received-From":"147.83.33.10","Subject":"[Qemu-devel] [PATCH v6 06/22] instrument: [softmmu] Add command\n\tline library loader","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":"Paolo Bonzini <pbonzini@redhat.com>, \"Emilio G. Cota\" <cota@braap.org>, \n\tMarkus Armbruster <armbru@redhat.com>,\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":"Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>\n---\n qemu-options.hx |   19 +++++++++++++++++++\n vl.c            |   15 +++++++++++++++\n 2 files changed, 34 insertions(+)","diff":"diff --git a/qemu-options.hx b/qemu-options.hx\nindex 9f6e2adfff..6947388aab 100644\n--- a/qemu-options.hx\n+++ b/qemu-options.hx\n@@ -4077,6 +4077,25 @@ HXCOMM HX does not support conditional compilation of text.\n @findex -trace\n @include qemu-option-trace.texi\n ETEXI\n+#if defined(CONFIG_INSTRUMENT)\n+DEF(\"instr\", HAS_ARG, QEMU_OPTION_instr,\n+    \"-instr [file=]<file>[,arg=<string>]\\n\"\n+    \"                load an instrumentation library\\n\",\n+    QEMU_ARCH_ALL)\n+#endif\n+STEXI\n+@item -instr file=@var{file}[,arg=@var{string}]\n+@findex -instr\n+\n+Load a dynamic trace instrumentation library.\n+\n+@table @option\n+@item file=@var{file}\n+Load the given dynamic trace instrumentation library.\n+@item arg=@var{string}\n+String argument passed as to the library's @code{qi_init} routine (can be given multiple times).\n+@end table\n+ETEXI\n \n HXCOMM Internal use\n DEF(\"qtest\", HAS_ARG, QEMU_OPTION_qtest, \"\", QEMU_ARCH_ALL)\ndiff --git a/vl.c b/vl.c\nindex fb1f05b937..aea05ed4cc 100644\n--- a/vl.c\n+++ b/vl.c\n@@ -118,6 +118,7 @@ int main(int argc, char **argv)\n \n #include \"trace-root.h\"\n #include \"trace/control.h\"\n+#include \"instrument/cmdline.h\"\n #include \"qemu/queue.h\"\n #include \"sysemu/arch_init.h\"\n \n@@ -3037,6 +3038,9 @@ int main(int argc, char **argv, char **envp)\n     } BlockdevOptions_queue;\n     QSIMPLEQ_HEAD(, BlockdevOptions_queue) bdo_queue\n         = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue);\n+    char *instrument_path = NULL;\n+    int instrument_argc = 0;\n+    const char **instrument_argv = NULL;\n \n     module_call_init(MODULE_INIT_TRACE);\n \n@@ -3064,6 +3068,9 @@ int main(int argc, char **argv, char **envp)\n     qemu_add_opts(&qemu_global_opts);\n     qemu_add_opts(&qemu_mon_opts);\n     qemu_add_opts(&qemu_trace_opts);\n+#if defined(CONFIG_INSTRUMENT)\n+    qemu_add_opts(&qemu_instr_opts);\n+#endif\n     qemu_add_opts(&qemu_option_rom_opts);\n     qemu_add_opts(&qemu_machine_opts);\n     qemu_add_opts(&qemu_accel_opts);\n@@ -4009,6 +4016,12 @@ int main(int argc, char **argv, char **envp)\n                 g_free(trace_file);\n                 trace_file = trace_opt_parse(optarg);\n                 break;\n+#if defined(CONFIG_INSTRUMENT)\n+            case QEMU_OPTION_instr:\n+                instr_opt_parse(optarg, &instrument_path,\n+                                &instrument_argc, &instrument_argv);\n+                break;\n+#endif\n             case QEMU_OPTION_readconfig:\n                 {\n                     int ret = qemu_read_config_file(optarg);\n@@ -4196,6 +4209,8 @@ int main(int argc, char **argv, char **envp)\n     }\n     trace_init_file(trace_file);\n \n+    instr_init(instrument_path, instrument_argc, instrument_argv);\n+\n     /* Open the logfile at this point and set the log mask if necessary.\n      */\n     if (log_file) {\n","prefixes":["v6","06/22"]}