Am 12.03.2012 12:39, schrieb Stefan Hajnoczi: > On Wed, Dec 21, 2011 at 3:35 PM, Stefan Hajnoczi > <stefa...@linux.vnet.ibm.com> wrote: > > Ping? Do you want to take this through the block tree?
Sorry, I completely missed this one. >> It can be useful to enable QEMU tracing when trying out block layer >> interfaces via qemu-io. Tracing can be enabled using the new -t FILE >> option where the given file contains a list of trace events to enable >> (just like the qemu --trace events=FILE option). >> >> $ echo qemu_vfree >my-events >> $ ./qemu-io -t my-events ... >> >> Remember to use ./configure --enable-trace-backend=BACKEND when building >> qemu-io. >> >> Signed-off-by: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> >> --- >> qemu-io.c | 8 +++++++- >> 1 files changed, 7 insertions(+), 1 deletions(-) >> >> diff --git a/qemu-io.c b/qemu-io.c >> index ffa62fb..ad91fd6 100644 >> --- a/qemu-io.c >> +++ b/qemu-io.c >> @@ -17,6 +17,7 @@ >> #include "qemu-common.h" >> #include "block_int.h" >> #include "cmd.h" >> +#include "trace/control.h" >> >> #define VERSION "0.0.1" >> >> @@ -1722,6 +1723,7 @@ static void usage(const char *name) >> " -g, --growable allow file to grow (only applies to protocols)\n" >> " -m, --misalign misalign allocations for O_DIRECT\n" >> " -k, --native-aio use kernel AIO implementation (on Linux only)\n" >> +" -t, --trace FILE enable trace events listed in the given file\n" >> " -h, --help display this help and exit\n" >> " -V, --version output version information and exit\n" >> "\n", >> @@ -1733,7 +1735,7 @@ int main(int argc, char **argv) >> { >> int readonly = 0; >> int growable = 0; >> - const char *sopt = "hVc:rsnmgk"; >> + const char *sopt = "hVc:rsnmgkt:"; >> const struct option lopt[] = { >> { "help", 0, NULL, 'h' }, >> { "version", 0, NULL, 'V' }, >> @@ -1745,6 +1747,7 @@ int main(int argc, char **argv) >> { "misalign", 0, NULL, 'm' }, >> { "growable", 0, NULL, 'g' }, >> { "native-aio", 0, NULL, 'k' }, >> + { "trace", 1, NULL, 't' }, >> { NULL, 0, NULL, 0 } >> }; >> int c; >> @@ -1776,6 +1779,9 @@ int main(int argc, char **argv) >> case 'k': >> flags |= BDRV_O_NATIVE_AIO; >> break; >> + case 't': >> + trace_backend_init(optarg, NULL); >> + break; vl.c checks the return value of trace_backend_init. Shouldn't we do the same here? Also, I was considering adding a -t for the cache mode (option name for consistency with qemu-img). Conversely, we'll probably want to add a tracing option to qemu-img and -t isn't available any more there. Maybe we should use a different letter? Kevin