From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=51620 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P9MVm-0005Eb-KP for qemu-devel@nongnu.org; Fri, 22 Oct 2010 14:38:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P9MVN-0000OU-To for qemu-devel@nongnu.org; Fri, 22 Oct 2010 14:38:20 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]:47407 helo=mail.gmx.net) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1P9MVN-0000O1-GF for qemu-devel@nongnu.org; Fri, 22 Oct 2010 14:38:17 -0400 From: xscript@gmx.net (=?utf-8?Q?Llu=C3=ADs?=) Date: Fri, 22 Oct 2010 20:32:02 +0200 Message-Id: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 00/17] [RFC] static instrumentation List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Here's a set of patches with the current state of static instrumentation. Hope that this organization will help understanding the point of it. Patch 9 describes the taken approach for instrumenting during code generation, which is the main point of this. Code can also be reached at: https://projects.gso.ac.upc.edu/projects/qemu-instrument https://code.gso.ac.upc.edu/git/qemu-instrument Llu=C3=ADs Vilanova (17): backdoor: Declare host-side backdoor helpers backdoor: [all] Include backdoor helper declarations backdoor: Declare guest-side interface macros backdoor: [i386] Decode backdoor instructions backdoor: [i386] Declare guest-side interface macros backdoor: Add a simple example instrument: Handle config-time activation instrument: Add initial instrumentation example instrument: Dynamic per-CPU state of static instrumentation points instrument: Code-generation macros instrument: [all] Include instrumentation helper declarations instrument: Add FETCH point instrument: [i386] Call FETCH point instrument: Add VMEM point instrument: [all] Call VMEM point instrument: Add PLVL point instrument: [i386] Call PLVL point .gitignore | 2 + Makefile.target | 35 +++++- backdoor/examples/print/README | 13 ++ backdoor/examples/print/guest/Makefile | 7 + backdoor/examples/print/guest/test.c | 33 +++++ backdoor/examples/print/host/Makefile | 13 ++ backdoor/examples/print/host/printcb.c | 36 +++++ backdoor/guest.h | 60 ++++++++ backdoor/helper.h | 21 +++ configure | 19 +++ cpu-all.h | 74 ++++++---- cpu-defs.h | 24 +++ cpu-exec.c | 8 +- cpus.c | 8 + exec-all.h | 7 +- exec.c | 50 +++++--- instrument/control.c | 74 ++++++++++ instrument/control.h | 44 ++++++ instrument/examples/dynprint/README | 16 ++ instrument/examples/dynprint/guest/Makefile | 7 + instrument/examples/dynprint/guest/test.c | 62 ++++++++ instrument/examples/dynprint/host/Makefile | 14 ++ instrument/examples/dynprint/host/backdoor.c | 61 ++++++++ instrument/examples/dynprint/host/helpers.c | 86 ++++++++++++ .../dynprint/host/instrument-host-helpers.h | 22 +++ .../examples/dynprint/host/instrument-host.h | 81 +++++++++++ instrument/gen-vmem-wrappers.h | 88 ++++++++++++ instrument/generate.h | 128 +++++++++++++++++ instrument/host-stub.h | 81 +++++++++++ instrument/state.h | 61 ++++++++ instrument/types.h | 44 ++++++ linux-user/main.c | 12 ++ qemu-common.h | 4 + softmmu_header.h | 15 ++ target-alpha/helper.h | 8 + target-alpha/translate.c | 4 + target-arm/helper.h | 8 + target-arm/translate.c | 4 + target-cris/helper.h | 8 + target-cris/translate.c | 4 + target-i386/cpu.h | 21 ++-- target-i386/helper.h | 8 + target-i386/translate.c | 147 ++++++++++++++++= ++++ target-m68k/helper.h | 8 + target-m68k/translate.c | 4 + target-microblaze/helper.h | 8 + target-microblaze/translate.c | 10 ++ target-mips/helper.h | 8 + target-mips/translate.c | 4 + target-ppc/helper.h | 8 + target-ppc/translate.c | 4 + target-s390x/translate.c | 4 + target-sh4/helper.h | 8 + target-sh4/translate.c | 4 + target-sparc/helper.h | 8 + target-sparc/translate.c | 4 + 56 files changed, 1543 insertions(+), 61 deletions(-) create mode 100644 backdoor/examples/print/README create mode 100644 backdoor/examples/print/guest/Makefile create mode 100644 backdoor/examples/print/guest/test.c create mode 100644 backdoor/examples/print/host/Makefile create mode 100644 backdoor/examples/print/host/printcb.c create mode 100644 backdoor/guest.h create mode 100644 backdoor/helper.h create mode 100644 instrument/control.c create mode 100644 instrument/control.h create mode 100644 instrument/examples/dynprint/README create mode 100644 instrument/examples/dynprint/guest/Makefile create mode 100644 instrument/examples/dynprint/guest/test.c create mode 100644 instrument/examples/dynprint/host/Makefile create mode 100644 instrument/examples/dynprint/host/backdoor.c create mode 100644 instrument/examples/dynprint/host/helpers.c create mode 100644 instrument/examples/dynprint/host/instrument-host-helpe= rs.h create mode 100644 instrument/examples/dynprint/host/instrument-host.h create mode 100644 instrument/gen-vmem-wrappers.h create mode 100644 instrument/generate.h create mode 100644 instrument/host-stub.h create mode 100644 instrument/state.h create mode 100644 instrument/types.h --=20 "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth