From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37075) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHa24-0004zj-Jx for qemu-devel@nongnu.org; Fri, 08 Jan 2016 11:36:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aHa21-0003fQ-7L for qemu-devel@nongnu.org; Fri, 08 Jan 2016 11:36:56 -0500 Received: from mail.uni-paderborn.de ([131.234.142.9]:53448) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aHa20-0003eK-Qo for qemu-devel@nongnu.org; Fri, 08 Jan 2016 11:36:53 -0500 Received: from magmaria.uni-paderborn.de ([131.234.189.24] helo=localhost.localdomain) by mail.uni-paderborn.de with esmtp (Exim 4.84 telepax) id 1aHa1v-0001Ky-3n for qemu-devel@nongnu.org; Fri, 08 Jan 2016 17:36:47 +0100 Received: from mail.uni-paderborn.de by magmaria with queue id 1003566-3 for qemu-devel@nongnu.org; Fri, 08 Jan 2016 16:36:45 GMT From: Peer Adelt Message-ID: <568FE59C.5020902@c-lab.de> Date: Fri, 8 Jan 2016 17:36:44 +0100 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060303040304080802040007" Subject: [Qemu-devel] [RFC PATCH 0/3] TranslationBlock annotation mechanism List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Bastian Koppelmann This is a multi-part message in MIME format. --------------060303040304080802040007 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hey guys We have developed a generic concept to annotate TranslationBlocks during runtime. The initial idea was to use it for time annotation with data from static analysis tools. However, we have kept this approach as generic as possible to allow other kinds of annotation (e.g. power consumption, etc.). Our extension expects an XML file specifying the CFG of the program (similar to what you get from "gcc -ftree-dump-cfg"), where the edges are annotated with the data, that QEMU ought to accumulate during program execution. Each edge has a source and target context in which it is executed. For example: a for-loop that runs several times has its own context dependent edge for each iteration. We plan on making this more flexible by allowing to specify iterative context edges, i.e. from context n to context n+1. This approach is not limited to one target architecture but we only tested it for ARM and TriCore so far. To show the current state of this patch we have attached a very small example consisting of an ARM STM32F205 program and a timing annotation XML file. You can provide the XML file to QEMU with the "-annotation " option. During execution, the "value_sum" field of the CPUState data structure will accumulate a total value of 70 (cycles). Are there any comments? Is this in general a good idea to be added to upstream QEMU? All the best, Peer Peer Adelt (3): tb-annotation: Added annotation XML file parser tb-annotation: Add control flow graph mapper tb-annotation: Activate annotation extension Makefile | 5 +- Makefile.objs | 4 + Makefile.target | 4 +- configure | 13 ++ include/exec/gen-icount.h | 18 +++ include/qom/cpu.h | 9 ++ include/tb-annotation/tb-annotation-parser.h | 29 +++++ include/tb-annotation/tb-annotation.h | 64 ++++++++++ qemu-options.hx | 8 ++ tb-annotation/Makefile.objs | 1 + tb-annotation/tb-annotation-parser.c | 174 +++++++++++++++++++++++++++ tcg-runtime.c | 99 +++++++++++++++ tcg/tcg-runtime.h | 4 + vl.c | 25 ++++ 14 files changed, 454 insertions(+), 3 deletions(-) create mode 100644 include/tb-annotation/tb-annotation-parser.h create mode 100644 include/tb-annotation/tb-annotation.h create mode 100644 tb-annotation/Makefile.objs create mode 100644 tb-annotation/tb-annotation-parser.c -- 2.5.0 --------------060303040304080802040007 Content-Type: application/x-bzip; name="annotation-example-project.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="annotation-example-project.tar.bz2" QlpoOTFBWSZTWYJi5iEAHJH////////////////////////t7+f/Xz/++97919//v2ff4Bpg +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 --------------060303040304080802040007--