Re: [PATCH 1/3] tools lib traceevent: Add -O2 option to traceevent

From: Arnaldo Carvalho de Melo
Date: Wed Oct 19 2016 - 14:06:06 EST


Em Wed, Oct 19, 2016 at 02:48:45PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Oct 18, 2016 at 11:29:53AM -0400, Steven Rostedt escreveu:
> > On Tue, 18 Oct 2016 11:01:09 +0900
> > Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
> >
> > > Hi Honggyu,
> > >
> > > You need to CC relevant maintainers when you send patches to LKML.
> > > For the libtraceevent, they are Arnaldo and Steven. You can use
> > > scripts/get_maintainer.pl for this job later. In addition running
> > > scripts/checkpatch.pl before sending patches is a good habit.
> > >
> > > Arnaldo and Steve,
> > >
> > > This is from uftrace building libtraceevent with the optimization flag
> > > and we want to fix the upstream as well.
> > >
> >
> > Acked-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
>
> So right after applying this patch I get these new warnings, investigating...

Some are the compiler not grokking logic where the compiler gets
confused with logic that tests one variable to use another and thinks it
is using garbage (uninitialized stuff), I tried to follow the logic and
I think it got slightly more confused than me, as I _think_ its not a
problem, but the one on the case entry for

OLD_RINGBUF_TYPE_TIME_EXTEND

in old_update_pointers() looks like a bug, unless some macro magic is
taking place that updates that 'lenght' variable.

Rostedt, that -O2 unleashed some warnings, please check, I'll defer
applying those patches till it doesn't show these warnings, i.e. till
other patches fixing these issues or simply silencing the compiler with
a harmless init gets submitted,

Thanks,

- Arnaldo

> [acme@jouet linux]$ gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/6.2.1/lto-wrapper
> Target: x86_64-redhat-linux
> Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
> Thread model: posix
> gcc version 6.2.1 20160916 (Red Hat 6.2.1-2) (GCC)
> [acme@jouet linux]$
>
> LD /tmp/build/perf/plugin_mac80211-in.o
> kbuffer-parse.c: In function â__old_next_eventâ:
> kbuffer-parse.c:339:27: warning: âlengthâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> kbuf->next = kbuf->index + length;
> ~~~~~~~~~~~~^~~~~~~~
> kbuffer-parse.c:297:15: note: âlengthâ was declared here
> unsigned int length;
> ^~~~~~
> CC /tmp/build/perf/plugin_sched_switch.o
> CC /tmp/build/perf/run-command.o
> event-parse.c: In function âpevent_find_event_by_nameâ:
> event-parse.c:3513:21: warning: âeventâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> pevent->last_event = event;
> ~~~~~~~~~~~~~~~~~~~^~~~~~~
> CC /tmp/build/perf/sigchain.o
> LD /tmp/build/perf/plugin_sched_switch-in.o
> CC /tmp/build/perf/plugin_function.o
> event-parse.c: In function âpevent_data_lat_fmtâ:
> event-parse.c:5156:4: warning: âmigrate_disableâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> trace_seq_printf(s, "%d", migrate_disable);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> event-parse.c:5163:4: warning: âlock_depthâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> trace_seq_printf(s, "%d", lock_depth);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> plugin_function.c: In function âfunction_handlerâ:
> plugin_function.c:133:6: warning: âindexâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> int index;
> ^~~~~
> CC /tmp/build/perf/subcmd-config.o
> GEN perf-archive
> LD /tmp/build/perf/plugin_function-in.o
> GEN perf-with-kcore
> CC /tmp/build/perf/plugin_xen.o
> event-parse.c: In function âpevent_event_infoâ:
> event-parse.c:5003:7: warning: âlen_argâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> trace_seq_printf(s, format, len_arg, (char)val);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> event-parse.c:4846:6: note: âlen_argâ was declared here
> int len_arg;
> ^~~~~~~
> MKDIR /tmp/build/perf/util/
>