Message ID | 20210224213515.3331631-1-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC,v2] meson: Only generate trace files for selected targets | expand |
On Wed, Feb 24, 2021 at 10:35:15PM +0100, Philippe Mathieu-Daudé wrote: > We don't need to generate trace files for targets we > are not building. Restrict the the ones selected. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > meson.build | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/meson.build b/meson.build > index 05a67c20d93..8503aa1b628 100644 > --- a/meson.build > +++ b/meson.build > @@ -1826,16 +1826,16 @@ > trace_events_subdirs += [ > 'accel/tcg', > 'hw/core', > - 'target/arm', > - 'target/hppa', > - 'target/i386', > 'target/i386/kvm', Please add a comment explaining why an exception is needed here and the rest of the target directories are handled by the loop below when you send a non-RFC patch. That will help people who add sub-directories in the future. Thanks, Stefan
On 3/8/21 5:46 PM, Stefan Hajnoczi wrote: > On Wed, Feb 24, 2021 at 10:35:15PM +0100, Philippe Mathieu-Daudé wrote: >> We don't need to generate trace files for targets we >> are not building. Restrict the the ones selected. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> --- >> meson.build | 16 ++++++++-------- >> 1 file changed, 8 insertions(+), 8 deletions(-) >> >> diff --git a/meson.build b/meson.build >> index 05a67c20d93..8503aa1b628 100644 >> --- a/meson.build >> +++ b/meson.build >> @@ -1826,16 +1826,16 @@ >> trace_events_subdirs += [ >> 'accel/tcg', >> 'hw/core', >> - 'target/arm', >> - 'target/hppa', >> - 'target/i386', >> 'target/i386/kvm', > > Please add a comment explaining why an exception is needed here and the > rest of the target directories are handled by the loop below when you > send a non-RFC patch. Better would be a recursive function that adds the directory if necessary. But I'm happy adding a simple comment =) > > That will help people who add sub-directories in the future. Yes. Anyhow I expect this to clash with Claudio's work in progress (which split target/ and add multiple subdirectories).
On 3/8/21 6:48 PM, Philippe Mathieu-Daudé wrote: > On 3/8/21 5:46 PM, Stefan Hajnoczi wrote: >> On Wed, Feb 24, 2021 at 10:35:15PM +0100, Philippe Mathieu-Daudé wrote: >>> We don't need to generate trace files for targets we >>> are not building. Restrict the the ones selected. >>> >>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> --- >>> meson.build | 16 ++++++++-------- >>> 1 file changed, 8 insertions(+), 8 deletions(-) >>> >>> diff --git a/meson.build b/meson.build >>> index 05a67c20d93..8503aa1b628 100644 >>> --- a/meson.build >>> +++ b/meson.build >>> @@ -1826,16 +1826,16 @@ >>> trace_events_subdirs += [ >>> 'accel/tcg', >>> 'hw/core', >>> - 'target/arm', >>> - 'target/hppa', >>> - 'target/i386', >>> 'target/i386/kvm', >> >> Please add a comment explaining why an exception is needed here and the >> rest of the target directories are handled by the loop below when you >> send a non-RFC patch. > > Better would be a recursive function that adds the directory if > necessary. But I'm happy adding a simple comment =) > >> >> That will help people who add sub-directories in the future. > > Yes. Anyhow I expect this to clash with Claudio's work in progress > (which split target/ and add multiple subdirectories). > > np, just the tracedirs should be easy to solve; I personally don't see updating a simple list as difficult for the dev; does generating trace files for all require a lot of time? In any case, I agree that just recursing all directories in target/ looking for trace.h / traceevents files could be better. But how much time do we spare, compared with just generating all? Ciao, Claudio
On 3/9/21 9:41 AM, Claudio Fontana wrote: > On 3/8/21 6:48 PM, Philippe Mathieu-Daudé wrote: >> On 3/8/21 5:46 PM, Stefan Hajnoczi wrote: >>> On Wed, Feb 24, 2021 at 10:35:15PM +0100, Philippe Mathieu-Daudé wrote: >>>> We don't need to generate trace files for targets we >>>> are not building. Restrict the the ones selected. >>>> >>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>>> --- >>>> meson.build | 16 ++++++++-------- >>>> 1 file changed, 8 insertions(+), 8 deletions(-) >>>> >>>> diff --git a/meson.build b/meson.build >>>> index 05a67c20d93..8503aa1b628 100644 >>>> --- a/meson.build >>>> +++ b/meson.build >>>> @@ -1826,16 +1826,16 @@ >>>> trace_events_subdirs += [ >>>> 'accel/tcg', >>>> 'hw/core', >>>> - 'target/arm', >>>> - 'target/hppa', >>>> - 'target/i386', >>>> 'target/i386/kvm', >>> >>> Please add a comment explaining why an exception is needed here and the >>> rest of the target directories are handled by the loop below when you >>> send a non-RFC patch. >> >> Better would be a recursive function that adds the directory if >> necessary. But I'm happy adding a simple comment =) >> >>> >>> That will help people who add sub-directories in the future. >> >> Yes. Anyhow I expect this to clash with Claudio's work in progress >> (which split target/ and add multiple subdirectories). >> >> > > np, just the tracedirs should be easy to solve; > > I personally don't see updating a simple list as difficult for the dev; does generating trace files for all require a lot of time? > > In any case, I agree that just recursing all directories in target/ looking for trace.h / traceevents files could be better. > > But how much time do we spare, compared with just generating all? Well now on slow 32-bit hosts my impression is we spend more time in meson / generating trace boilerplate files (even if the python code is trivial, it is invoked many times) rather than compiling C. trace doesn't use Kconfig to filter, so everything is processed. Maybe the root problem is 'hw/core' actually, not the 'target/' directories... This is more noticeable for the user-only builds, which are the ones likely to be supported longer on 32-bit hosts (there are some discussions about keeping maintaining sysemu there). That said this is user experience feeling and I didn't care to benchmark it. Anyhow this doesn't seem to have big impact (yet) so let's postpone this series. Thanks, Phil.
On 09/03/21 09:41, Claudio Fontana wrote: > In any case, I agree that just recursing all directories in target/ > looking for trace.h / traceevents files could be better. Using the directory structure to find source files is a bad idea because you don't notice that you haven't "git add"ed a file until it's too late (typically the maintainer notices it for you...). We do it for default-configs/targets, but that's an exception and I'd rather not extend it more. In fact, Philippe, perhaps you can add the extra tracedirs for hw/ and target/ to the default-config/targets/*.mak file? Thanks, Paolo
On 3/9/21 11:26 AM, Paolo Bonzini wrote: > On 09/03/21 09:41, Claudio Fontana wrote: >> In any case, I agree that just recursing all directories in target/ >> looking for trace.h / traceevents files could be better. > > Using the directory structure to find source files is a bad idea because > you don't notice that you haven't "git add"ed a file until it's too late > (typically the maintainer notices it for you...). > > We do it for default-configs/targets, but that's an exception and I'd > rather not extend it more. > > In fact, Philippe, perhaps you can add the extra tracedirs for hw/ and > target/ to the default-config/targets/*.mak file? > > Thanks, > > Paolo > There was also the discussion of improving check-patch to detect missing updates to trace files, but my attempt to make a reliable patch at the time failed.. Ciao, Claudio
On 3/9/21 11:26 AM, Paolo Bonzini wrote: > On 09/03/21 09:41, Claudio Fontana wrote: >> In any case, I agree that just recursing all directories in target/ >> looking for trace.h / traceevents files could be better. > > Using the directory structure to find source files is a bad idea because > you don't notice that you haven't "git add"ed a file until it's too late > (typically the maintainer notices it for you...). > > We do it for default-configs/targets, but that's an exception and I'd > rather not extend it more. > > In fact, Philippe, perhaps you can add the extra tracedirs for hw/ and > target/ to the default-config/targets/*.mak file? Hmm interesting idea... I'll have a look, thanks!
diff --git a/meson.build b/meson.build index 05a67c20d93..8503aa1b628 100644 --- a/meson.build +++ b/meson.build @@ -1826,16 +1826,16 @@ trace_events_subdirs += [ 'accel/tcg', 'hw/core', - 'target/arm', - 'target/hppa', - 'target/i386', 'target/i386/kvm', - 'target/mips', - 'target/ppc', - 'target/riscv', - 'target/s390x', - 'target/sparc', ] + foreach target : target_dirs + arch = config_target_mak[target]['TARGET_BASE_ARCH'] + target_trace_events_subdir = 'target' / arch + if fs.exists(meson.current_source_dir() / target_trace_events_subdir / 'trace-events') and \ + target_trace_events_subdir not in trace_events_subdirs + trace_events_subdirs += [target_trace_events_subdir] + endif + endforeach endif vhost_user = not_found
We don't need to generate trace files for targets we are not building. Restrict the the ones selected. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- meson.build | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)