[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [ltt-dev] [PATCH 2/3] trace: [ust] Do not use 'm' in ev
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [ltt-dev] [PATCH 2/3] trace: [ust] Do not use 'm' in event argument names (used by ust macros) |
Date: |
Tue, 20 Sep 2011 15:41:02 +0100 |
2011/9/20 Mathieu Desnoyers <address@hidden>:
> * Lluís Vilanova (address@hidden) wrote:
>> Stefan Hajnoczi writes:
>>
>> > On Fri, Sep 16, 2011 at 06:59:38PM +0200, Lluís Vilanova wrote:
>> >> Signed-off-by: Lluís Vilanova <address@hidden>
>> >> ---
>> >> trace-events | 4 ++--
>> >> 1 files changed, 2 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/trace-events b/trace-events
>> >> index 9d1fbbb..b653d70 100644
>> >> --- a/trace-events
>> >> +++ b/trace-events
>> >> @@ -418,8 +418,8 @@ milkymist_pfpu_pulse_irq(void) "Pulse IRQ"
>> >> # hw/milkymist-softusb.c
>> >> milkymist_softusb_memory_read(uint32_t addr, uint32_t value) "addr %08x
>> >> value %08x"
>> >> milkymist_softusb_memory_write(uint32_t addr, uint32_t value) "addr %08x
>> >> value %08x"
>> >> -milkymist_softusb_mevt(uint8_t m) "m %d"
>> >> -milkymist_softusb_kevt(uint8_t m) "m %d"
>> >> +milkymist_softusb_mevt(uint8_t _m) "m %d"
>> >> +milkymist_softusb_kevt(uint8_t _m) "m %d"
>>
>> > The LTTng community has been very responsive in addressing namespace
>> > issues with libust. Let's post more details and see if it can be fixed
>> > in libust.
>>
>> > Could you please post your gcc and libust versions?
>>
>> > I have not been able to reproduce the problem on Debian libust-dev
>> > 0.15-3. My gcc version is Debian gcc 4.6.1-4.
>>
>> Yup, I was using libust-dev 0.5 (debian stable). After switching to 0.15
>> (debian
>> testing) other problems arise.
>>
>> For example, in my box compiling osdep.c yields lots of "variable
>> ‘__tp_cb_data’
>> set but not used", but using a minimal example does not raise such problems,
>> so
>> I'm assuming this is related to some namespace problems related to some other
>> code in qemu's headers.
>
> If you can find a few minutes to provide:
>
> 1) a link to the git repository/commit ID you are testing
> 2) the exact configuration you use (detailed way to reproduce the
> problem, as a sequence of commands from a pristine repository)
>
> It will allow me to look into this warning and fix it.
AFAICT the only problem with libust is the __tp_cb_data set but not
used warning that gcc 4.6 emits, see my test program:
#include <stdint.h>
#include <ust/tracepoint.h>
DECLARE_TRACE(ust_milkymist_softusb_mevt, TP_PROTO(uint8_t m),
TP_ARGS(m));
int main(int argc, char **argv)
{
return 0;
}
You will get an error with gcc 4.6 and libust 0.15:
$ gcc -o a -Wall a.c
QEMU itself does have one problem with libust 0.15. We do
DECLARE_TRACE(name, TP_PROTO(void), TP_ARGS()). This results in a
compiler error but we can fix this my changing our tracepoints to use
DECLARE_TRACE(name, TP_PROTO(), TP_ARGS()) I think. Perhaps libust's
behavior here has changed, it shouldn't be hard to update QEMU's
tracetool tracepoint generator though.
If you adapt the example program I used above to use TP_PROTO(void),
TP_ARGS() then you get this error:
a.c: In function ‘__trace_ust_milkymist_softusb_mevt’:
a.c:4:1: error: expected declaration specifiers or ‘...’ before ‘)’ token
a.c:4:1: error: expected ‘)’ before ‘__tp_it_func’
a.c:4:1: error: expected expression before ‘)’ token
a.c:4:1: warning: variable ‘__tp_it_func’ set but not used
[-Wunused-but-set-variable]
a.c: At top level:
a.c:4:1: error: expected declaration specifiers or ‘...’ before ‘)’ token
a.c:4:1: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
a.c:4:1: error: expected declaration specifiers or ‘...’ before ‘)’ token
a.c:4:1: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
a.c: In function ‘trace_ust_milkymist_softusb_mevt’:
a.c:4:1: warning: variable ‘__tp_cb_data’ set but not used
[-Wunused-but-set-variable]
I can't say for sure whether I ever tested old libust versions with
void tracepoints. Perhaps we simply never had any and the tracetool
generator has always been broken. Or perhaps libust changed its
behavior.
Stefan
Re: [Qemu-devel] [PATCH 2/3] trace: [ust] Do not use 'm' in event argument names (used by ust macros), Stefan Hajnoczi, 2011/09/20
[Qemu-devel] [PATCH 3/3] trace: [ust] Do not use zero-length format strings (avoid compiler warning), Lluís Vilanova, 2011/09/16
Re: [Qemu-devel] [PATCH 1/3] trace: Fix print format for "mipsnet_write", Stefan Hajnoczi, 2011/09/20