From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bgv6O-0001P5-Rc for qemu-devel@nongnu.org; Mon, 05 Sep 2016 10:42:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bgv6K-00053h-MJ for qemu-devel@nongnu.org; Mon, 05 Sep 2016 10:42:23 -0400 Received: from roura.ac.upc.edu ([147.83.33.10]:58661 helo=roura.ac.upc.es) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bgv6K-00053E-BW for qemu-devel@nongnu.org; Mon, 05 Sep 2016 10:42:20 -0400 From: =?utf-8?Q?Llu=C3=ADs_Vilanova?= References: <147041636348.2523.2954972609232949598.stgit@fimbulvetr.bsc.es> <20160818105424.GD4850@stefanha-x1.localdomain> <8737lypajh.fsf@fimbulvetr.bsc.es> <20160823155430.GB3948@stefanha-x1.localdomain> <87lgzm4g5p.fsf@fimbulvetr.bsc.es> <20160829134502.GA26282@stefanha-x1.localdomain> <87a8fvjtw5.fsf@fimbulvetr.bsc.es> <20160831163547.GD18281@stefanha-x1.localdomain> Date: Mon, 05 Sep 2016 16:37:01 +0200 In-Reply-To: <20160831163547.GD18281@stefanha-x1.localdomain> (Stefan Hajnoczi's message of "Wed, 31 Aug 2016 12:35:47 -0400") Message-ID: <87y436mn02.fsf@fimbulvetr.bsc.es> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 0/6] hypertrace: Lightweight guest-to-QEMU trace channel List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Stefan Hajnoczi , qemu-devel@nongnu.org, Steven Rostedt , Luiz Capitulino , lttng-dev@lists.lttng.org, Masami Hiramatsu Stefan Hajnoczi writes: > On Mon, Aug 29, 2016 at 08:46:02PM +0200, Llu=C3=ADs Vilanova wrote: >> >> Also, I'm still not sure how to interact with QEMU's monitor interfac= e from >> >> within the probe code (probes execute in kernel mode, including "guru= mode" >> >> code). >>=20 >> > When SystemTap is used the QEMU monitor interface does nothing. >>=20 >> That's not what I've experienced. I was able to use a stap script to cha= nge the >> tracing state of events: >>=20 >> #!/usr/bin/env stap >>=20 >> %{ >> #include >> %} >>=20 >> function event:long(cpu:long, addr:long, info:long) >> %{ >> char *argv[4] =3D {"/bin/sh", "-c", "echo 'trace-event * off' | telnet l= ocalhost 1234", NULL}; >> call_usermodehelper(argv[0], argv, NULL, UMH_WAIT_EXEC); >> STAP_RETURN(0); >> %} >>=20 >> probe begin { >> printf("hello\n") >> } >> probe process("./install/vanilla/bin/qemu-system-i386").mark("guest_mem_= before_exec") >> { >> printf("%x %d %d\n", $arg1, $arg2, $arg3) >> event($arg1, $arg2, $arg3) >> exit() >> } >>=20 >> The only caveat is that you must pass the "-g" argument to stap. >>=20 >> Also, for some reason the printf in the probe always prints zeros, no ma= tter >> what the actual event receives (I've debugged QEMU down to the call to t= he >> auto-generated stap functions). Could this be an error in systemtap? > It's strange that arguments do not have valid values. Debugging the > stap functions is the next step if you want to figure out what happened. > I've never had this issue before so maybe something with Debian > SystemTap userspace probes is broken. I already debugged it, to the point where QEMU executes the trap injected by systemtap, and the register values that were supposed to hold the arguments= are correct. I suppose that if you execute the stap script I pasted it will show the pro= per values. Then it's definitely a problem with Debian's userspace probes. Thanks, Lluis