Message ID | 20240912164909.2083093-1-paul.elder@ideasonboard.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
Quoting Paul Elder (2024-09-12 17:49:09) > Add -finstrument-functions to debug (and debugoptimized) build types. > This will mainly be used for tracing functions with lttng by > LD_PRELOADing liblttng-ust-cyg-profile.so (or > liblttng-ust-cyg-profile-fast.so). > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > --- > meson.build | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/meson.build b/meson.build > index 432ae1337..e8014e77f 100644 > --- a/meson.build > +++ b/meson.build > @@ -109,6 +109,12 @@ common_arguments = [ > '-include', meson.current_build_dir() / 'config.h', > ] > > +if get_option('buildtype').startswith('debug') Why is this added to debug builds rather than any build with 'tracing enabled' ? meson_options has: option('tracing', type : 'feature', value : 'auto', description : 'Enable tracing (based on lttng)') so this could be 'if get_option('tracing') ? > + common_arguments += [ > + '-finstrument-functions', > + ] > +endif > + > c_arguments = [] > cpp_arguments = [] > > -- > 2.39.2 >
On Thu, Sep 12, 2024 at 05:58:54PM +0100, Kieran Bingham wrote: > Quoting Paul Elder (2024-09-12 17:49:09) > > Add -finstrument-functions to debug (and debugoptimized) build types. > > This will mainly be used for tracing functions with lttng by > > LD_PRELOADing liblttng-ust-cyg-profile.so (or > > liblttng-ust-cyg-profile-fast.so). > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > --- > > meson.build | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/meson.build b/meson.build > > index 432ae1337..e8014e77f 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -109,6 +109,12 @@ common_arguments = [ > > '-include', meson.current_build_dir() / 'config.h', > > ] > > > > +if get_option('buildtype').startswith('debug') > > Why is this added to debug builds rather than any build with 'tracing > enabled' ? On one hand, good point. On the other hand, the function tracing *should* work without tracing enabled in libcamera. So technically they can be used separately. It's a matter of if we think there's an actual purpose for enabling it. Paul > > meson_options has: > > option('tracing', > type : 'feature', > value : 'auto', > description : 'Enable tracing (based on lttng)') > > so this could be 'if get_option('tracing') ? > > > > + common_arguments += [ > > + '-finstrument-functions', > > + ] > > +endif > > + > > c_arguments = [] > > cpp_arguments = [] > > > > -- > > 2.39.2 > >
On Fri, Sep 13, 2024 at 01:00:35AM +0200, Paul Elder wrote: > On Thu, Sep 12, 2024 at 05:58:54PM +0100, Kieran Bingham wrote: > > Quoting Paul Elder (2024-09-12 17:49:09) > > > Add -finstrument-functions to debug (and debugoptimized) build types. > > > This will mainly be used for tracing functions with lttng by > > > LD_PRELOADing liblttng-ust-cyg-profile.so (or > > > liblttng-ust-cyg-profile-fast.so). > > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > > --- > > > meson.build | 6 ++++++ > > > 1 file changed, 6 insertions(+) > > > > > > diff --git a/meson.build b/meson.build > > > index 432ae1337..e8014e77f 100644 > > > --- a/meson.build > > > +++ b/meson.build > > > @@ -109,6 +109,12 @@ common_arguments = [ > > > '-include', meson.current_build_dir() / 'config.h', > > > ] > > > > > > +if get_option('buildtype').startswith('debug') > > > > Why is this added to debug builds rather than any build with 'tracing > > enabled' ? > > On one hand, good point. > > On the other hand, the function tracing *should* work without tracing > enabled in libcamera. So technically they can be used separately. It's a > matter of if we think there's an actual purpose for enabling it. Do you envision function tracing to be used in production, or should debugging issues in production rely on trace points only ? > > meson_options has: > > > > option('tracing', > > type : 'feature', > > value : 'auto', > > description : 'Enable tracing (based on lttng)') > > > > so this could be 'if get_option('tracing') ? > > > > > > > + common_arguments += [ > > > + '-finstrument-functions', > > > + ] > > > +endif > > > + > > > c_arguments = [] > > > cpp_arguments = [] > > >
On Fri, Sep 13, 2024 at 02:07:14AM +0300, Laurent Pinchart wrote: > On Fri, Sep 13, 2024 at 01:00:35AM +0200, Paul Elder wrote: > > On Thu, Sep 12, 2024 at 05:58:54PM +0100, Kieran Bingham wrote: > > > Quoting Paul Elder (2024-09-12 17:49:09) > > > > Add -finstrument-functions to debug (and debugoptimized) build types. > > > > This will mainly be used for tracing functions with lttng by > > > > LD_PRELOADing liblttng-ust-cyg-profile.so (or > > > > liblttng-ust-cyg-profile-fast.so). > > > > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > > > --- > > > > meson.build | 6 ++++++ > > > > 1 file changed, 6 insertions(+) > > > > > > > > diff --git a/meson.build b/meson.build > > > > index 432ae1337..e8014e77f 100644 > > > > --- a/meson.build > > > > +++ b/meson.build > > > > @@ -109,6 +109,12 @@ common_arguments = [ > > > > '-include', meson.current_build_dir() / 'config.h', > > > > ] > > > > > > > > +if get_option('buildtype').startswith('debug') > > > > > > Why is this added to debug builds rather than any build with 'tracing > > > enabled' ? > > > > On one hand, good point. > > > > On the other hand, the function tracing *should* work without tracing > > enabled in libcamera. So technically they can be used separately. It's a > > matter of if we think there's an actual purpose for enabling it. > > Do you envision function tracing to be used in production, or should > debugging issues in production rely on trace points only ? tbh I'm not sure. But taking inspiration from the kernel, isn't ftrace usually disabled on production builds? Paul > > > > meson_options has: > > > > > > option('tracing', > > > type : 'feature', > > > value : 'auto', > > > description : 'Enable tracing (based on lttng)') > > > > > > so this could be 'if get_option('tracing') ? > > > > > > > > > > + common_arguments += [ > > > > + '-finstrument-functions', > > > > + ] > > > > +endif > > > > + > > > > c_arguments = [] > > > > cpp_arguments = [] > > > >
On Wed, Nov 20, 2024 at 11:24:31PM +0900, Paul Elder wrote: > On Fri, Sep 13, 2024 at 02:07:14AM +0300, Laurent Pinchart wrote: > > On Fri, Sep 13, 2024 at 01:00:35AM +0200, Paul Elder wrote: > > > On Thu, Sep 12, 2024 at 05:58:54PM +0100, Kieran Bingham wrote: > > > > Quoting Paul Elder (2024-09-12 17:49:09) > > > > > Add -finstrument-functions to debug (and debugoptimized) build types. > > > > > This will mainly be used for tracing functions with lttng by > > > > > LD_PRELOADing liblttng-ust-cyg-profile.so (or > > > > > liblttng-ust-cyg-profile-fast.so). > > > > > > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > > > > --- > > > > > meson.build | 6 ++++++ > > > > > 1 file changed, 6 insertions(+) > > > > > > > > > > diff --git a/meson.build b/meson.build > > > > > index 432ae1337..e8014e77f 100644 > > > > > --- a/meson.build > > > > > +++ b/meson.build > > > > > @@ -109,6 +109,12 @@ common_arguments = [ > > > > > '-include', meson.current_build_dir() / 'config.h', > > > > > ] > > > > > > > > > > +if get_option('buildtype').startswith('debug') > > > > > > > > Why is this added to debug builds rather than any build with 'tracing > > > > enabled' ? > > > > > > On one hand, good point. > > > > > > On the other hand, the function tracing *should* work without tracing > > > enabled in libcamera. So technically they can be used separately. It's a > > > matter of if we think there's an actual purpose for enabling it. > > > > Do you envision function tracing to be used in production, or should > > debugging issues in production rely on trace points only ? > > tbh I'm not sure. But taking inspiration from the kernel, isn't ftrace > usually disabled on production builds? ftrace seems to be enabled in Debian kernels, so that would point to making it usable in production. I lack enough experience with tracing to tell what the best option is. > > > > meson_options has: > > > > > > > > option('tracing', > > > > type : 'feature', > > > > value : 'auto', > > > > description : 'Enable tracing (based on lttng)') > > > > > > > > so this could be 'if get_option('tracing') ? > > > > > > > > > > > > > + common_arguments += [ > > > > > + '-finstrument-functions', > > > > > + ] > > > > > +endif > > > > > + > > > > > c_arguments = [] > > > > > cpp_arguments = [] > > > > >
diff --git a/meson.build b/meson.build index 432ae1337..e8014e77f 100644 --- a/meson.build +++ b/meson.build @@ -109,6 +109,12 @@ common_arguments = [ '-include', meson.current_build_dir() / 'config.h', ] +if get_option('buildtype').startswith('debug') + common_arguments += [ + '-finstrument-functions', + ] +endif + c_arguments = [] cpp_arguments = []
Add -finstrument-functions to debug (and debugoptimized) build types. This will mainly be used for tracing functions with lttng by LD_PRELOADing liblttng-ust-cyg-profile.so (or liblttng-ust-cyg-profile-fast.so). Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> --- meson.build | 6 ++++++ 1 file changed, 6 insertions(+)