From: Lluís <xscript@gmx.net>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [RFC][PATCH v2 0/6] backdoor: instruction-based guest-to-QEMU backdoor communication channel
Date: Thu, 04 Nov 2010 23:34:52 +0100 [thread overview]
Message-ID: <20101104223452.16669.25092.stgit@ginnungagap.bsc.es> (raw)
Provides the ability for the guest to communicate with user-provided code inside
QEMU itself.
This backdoor communication channel is based on using instructions, as opposed
to methods based on MMIO/PIO or virtproxy/virtagent.
Then, these instructions are redirected to a set of user-provided routines,
which are expected to be in the static library "libbackdoor.a", identified by
the "--with-backdoor" configuration parameter.
The advantages of this method are:
* Minimal setup for the guest. Can be used with a simple library using
LD_PRELOAD, or simply adding calls to the macros in "backdoor/guest.h".
* Low-overhead. Using instructions does not go through any OS abstraction, not
even for the setup of the communication channel.
* Non-intrusive wrt OS. It can be used on any OS without prior modifications.
When possible, this will overload unused/meaningless instructions in order to
let the modified guest application to run natively without errors (e.g., using
the CPUID instruction in x86 systems).
v2:
Rebase onto latest QEMU version (d33ea50a958b2e050d2b28e5f17e3b55e91c6d74).
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
Lluís Vilanova (6):
[arm m68k] move helpers.h to helper.h
backdoor: handle config-time activation
backdoor: declare host-side backdoor helpers
backdoor: declare guest-side interface macros
backdoor: [i386] provide and implement intruction-based backdoor interface
backdoor: add a simple example
.gitignore | 1
Makefile.target | 40 +++
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 | 54 ++++
backdoor/helper.h | 21 +
configure | 21 +
target-arm/helper.c | 2
target-arm/helper.h | 450 ++++++++++++++++++++++++++++++++
target-arm/helpers.h | 450 --------------------------------
target-arm/iwmmxt_helper.c | 2
target-arm/neon_helper.c | 2
target-arm/op_helper.c | 2
target-arm/translate.c | 6
target-i386/cpuid.c | 27 ++
target-i386/helper.h | 4
target-i386/translate.c | 4
target-m68k/helper.c | 2
target-m68k/helper.h | 54 ++++
target-m68k/helpers.h | 54 ----
target-m68k/op_helper.c | 2
target-m68k/translate.c | 6
25 files changed, 786 insertions(+), 520 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 target-arm/helper.h
delete mode 100644 target-arm/helpers.h
create mode 100644 target-m68k/helper.h
delete mode 100644 target-m68k/helpers.h
next reply other threads:[~2010-11-04 22:34 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-04 22:34 Lluís [this message]
2010-11-04 22:35 ` [Qemu-devel] [PATCH v2 1/6] [arm m68k] move helpers.h to helper.h Lluís
2010-11-04 22:35 ` [Qemu-devel] [PATCH v2 2/6] backdoor: handle config-time activation Lluís
2010-11-04 22:35 ` [Qemu-devel] [PATCH v2 3/6] backdoor: declare host-side backdoor helpers Lluís
2010-11-04 22:35 ` [Qemu-devel] [PATCH v2 4/6] backdoor: declare guest-side interface macros Lluís
2010-11-04 22:36 ` [Qemu-devel] [PATCH v2 5/6] backdoor: [i386] provide and implement intruction-based backdoor interface Lluís
2010-11-07 12:36 ` Gleb Natapov
2010-11-08 14:16 ` Lluís
2010-11-04 22:36 ` [Qemu-devel] [PATCH v2 6/6] backdoor: add a simple example Lluís
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101104223452.16669.25092.stgit@ginnungagap.bsc.es \
--to=xscript@gmx.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).