[ovs-dev] [PATCH V14] Function tracer to trace all functioncalls

Ryan Moats rmoats at us.ibm.com
Tue Aug 9 20:24:03 UTC 2016


"dev" <dev-bounces at openvswitch.org> wrote on 08/08/2016 11:41:21 PM:

> >
> > There is a python file [generate_ft_report.py] with the patch,
> > that may be used to convert this trace output to a human readable
> > format with symbol names instead of address and their execution
> > times. This tool uses addr2line that expects the executable to
> > be built with -g flag.

After further review, I'm going to call this paragraph into question.
The compile flags already include "-g", so I can have symbols
already (at least enough to use gdb).  Therefore, I'm going to ask
what happens if the following diff:

> > diff --git a/utilities/automake.mk b/utilities/automake.mk
> > index 9d5b425..c12d279 100644
> > --- a/utilities/automake.mk
> > +++ b/utilities/automake.mk
> > @@ -1,3 +1,11 @@
> > +if ENABLE_FT
> > +CFLAGS += -g -finstrument-functions \
> > +          -ldl -export-dynamic -lrt -DENABLE_FT \
> > +
> -f"instrument-functions-exclude-function-list=fprintf,time_init,\
> > +
> xclock_gettime,time_timespec__,timespec_to_msec,timespec_to_msec,\
> > +          time_msec__,time_msec,gettimeofday"
> > +endif
> > +
> >  bin_PROGRAMS += \
> >     utilities/ovs-appctl \
> >     utilities/ovs-testcontroller \

only defines "-finstrument-functions -DENABLE_FT \" from the first
two lines of CFLAGS.

Note: I've tried this out in a small cloud and removing "-g" and
"-ldl -export-dynamic -lrt" significantly improves rally-measured
performance, both for a single network containing 200 ports and
for 60 networks, each with 10 ports.

Ryan



More information about the dev mailing list