From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45152) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOoSk-0001yS-6h for qemu-devel@nongnu.org; Thu, 28 Jan 2016 10:26:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aOoSg-00017i-VZ for qemu-devel@nongnu.org; Thu, 28 Jan 2016 10:26:22 -0500 Received: from greensocs.com ([193.104.36.180]:53226) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOoSg-00017b-JI for qemu-devel@nongnu.org; Thu, 28 Jan 2016 10:26:18 -0500 Message-ID: <56AA3317.4010200@greensocs.com> Date: Thu, 28 Jan 2016 16:26:15 +0100 From: Frederic Konrad MIME-Version: 1.0 References: <1452768923-13787-1-git-send-email-peer.adelt@c-lab.de> In-Reply-To: <1452768923-13787-1-git-send-email-peer.adelt@c-lab.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH 0/3] (Resend) TranslationBlock annotation mechanism List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peer Adelt , qemu-devel@nongnu.org Cc: Mark Burton , kbastian@mail.upb.de, Guillaume Delbergue Hi, Is there a git tree with this series somewhere? Looks nice. Thanks, Fred On 14/01/2016 11:55, Peer Adelt wrote: > 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 (see > reply to this letter). 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 >