[PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests

carsten.haitzler@foss.arm.com posted 13 patches 3 years, 6 months ago
[PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by carsten.haitzler@foss.arm.com 3 years, 6 months ago
From: Carsten Haitzler <carsten.haitzler@arm.com>

This adds the initial build infrastructure (makefiles maintainers
information) for adding follow-on tests for CoreSight.

Signed-off-by: Carsten Haitzler <carsten.haitzler@arm.com>
---
 MAINTAINERS                                   |  1 +
 tools/perf/Makefile.config                    |  2 ++
 tools/perf/Makefile.perf                      | 15 +++++++++--
 tools/perf/tests/shell/coresight/Makefile     | 25 +++++++++++++++++++
 .../tests/shell/coresight/Makefile.miniconfig | 14 +++++++++++
 5 files changed, 55 insertions(+), 2 deletions(-)
 create mode 100644 tools/perf/tests/shell/coresight/Makefile
 create mode 100644 tools/perf/tests/shell/coresight/Makefile.miniconfig

diff --git a/MAINTAINERS b/MAINTAINERS
index 9d7f64dc0efe..c8ae5a6638b6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2029,6 +2029,7 @@ F:	drivers/hwtracing/coresight/*
 F:	include/dt-bindings/arm/coresight-cti-dt.h
 F:	include/linux/coresight*
 F:	samples/coresight/*
+F:	tools/perf/tests/shell/coresight/*
 F:	tools/perf/arch/arm/util/auxtrace.c
 F:	tools/perf/arch/arm/util/cs-etm.c
 F:	tools/perf/arch/arm/util/cs-etm.h
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 0661a1cf9855..e3e28b3481f9 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -1291,6 +1291,8 @@ perf_examples_instdir_SQ = $(subst ','\'',$(perf_examples_instdir))
 STRACE_GROUPS_INSTDIR_SQ = $(subst ','\'',$(STRACE_GROUPS_INSTDIR))
 tip_instdir_SQ = $(subst ','\'',$(tip_instdir))
 
+export perfexec_instdir_SQ
+
 # If we install to $(HOME) we keep the traceevent default:
 # $(HOME)/.traceevent/plugins
 # Otherwise we install plugins into the global $(libdir).
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index e5921b347153..cef2a06c8f54 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -629,7 +629,15 @@ sync_file_range_tbls := $(srctree)/tools/perf/trace/beauty/sync_file_range.sh
 $(sync_file_range_arrays): $(linux_uapi_dir)/fs.h $(sync_file_range_tbls)
 	$(Q)$(SHELL) '$(sync_file_range_tbls)' $(linux_uapi_dir) > $@
 
-all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
+TESTS_CORESIGHT_DIR := $(srctree)/tools/perf/tests/shell/coresight
+
+tests-coresight-targets: FORCE
+	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR)
+
+tests-coresight-targets-clean:
+	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) clean
+
+all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
 
 # Create python binding output directory if not already present
 _dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
@@ -1007,6 +1015,9 @@ install-tests: all install-gtk
 		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
 		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
 		$(INSTALL) tests/shell/lib/*.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
+		$(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
+	$(Q)$(MAKE) -C tests/shell/coresight install-tests
 
 install-bin: install-tools install-tests install-traceevent-plugins
 
@@ -1077,7 +1088,7 @@ endif # BUILD_BPF_SKEL
 bpf-skel-clean:
 	$(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS)
 
-clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean
+clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-coresight-targets-clean
 	$(call QUIET_CLEAN, core-objs)  $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive $(OUTPUT)perf-iostat $(LANG_BINDINGS)
 	$(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
 	$(Q)$(RM) $(OUTPUT).config-detected
diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
new file mode 100644
index 000000000000..3fee05cfcb0e
--- /dev/null
+++ b/tools/perf/tests/shell/coresight/Makefile
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: GPL-2.0-only
+# Carsten Haitzler <carsten.haitzler@arm.com>, 2021
+include ../../../../../tools/scripts/Makefile.include
+include ../../../../../tools/scripts/Makefile.arch
+include ../../../../../tools/scripts/utilities.mak
+
+SUBDIRS =
+
+all: $(SUBDIRS)
+$(SUBDIRS):
+	$(Q)$(MAKE) -C $@
+
+INSTALLDIRS = $(SUBDIRS:%=install-%)
+
+install-tests: $(INSTALLDIRS)
+$(INSTALLDIRS):
+	$(Q)$(MAKE) -C $(@:install-%=%) install-tests
+
+CLEANDIRS = $(SUBDIRS:%=clean-%)
+
+clean: $(CLEANDIRS)
+$(CLEANDIRS):
+	$(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
+
+.PHONY: all clean $(SUBDIRS) $(CLEANDIRS) $(INSTALLDIRS)
diff --git a/tools/perf/tests/shell/coresight/Makefile.miniconfig b/tools/perf/tests/shell/coresight/Makefile.miniconfig
new file mode 100644
index 000000000000..5f72a9cb43f3
--- /dev/null
+++ b/tools/perf/tests/shell/coresight/Makefile.miniconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
+# Carsten Haitzler <carsten.haitzler@arm.com>, 2021
+
+ifndef DESTDIR
+prefix ?= $(HOME)
+endif
+
+DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
+INSTALL = install
+INSTDIR_SUB = tests/shell/coresight
+
+include ../../../../../scripts/Makefile.include
+include ../../../../../scripts/Makefile.arch
+include ../../../../../scripts/utilities.mak
-- 
2.32.0
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 6 months ago
Em Fri, Sep 09, 2022 at 04:27:52PM +0100, carsten.haitzler@foss.arm.com escreveu:
> From: Carsten Haitzler <carsten.haitzler@arm.com>
> 
> This adds the initial build infrastructure (makefiles maintainers
> information) for adding follow-on tests for CoreSight.
> 
> Signed-off-by: Carsten Haitzler <carsten.haitzler@arm.com>
> ---
>  MAINTAINERS                                   |  1 +
>  tools/perf/Makefile.config                    |  2 ++
>  tools/perf/Makefile.perf                      | 15 +++++++++--
>  tools/perf/tests/shell/coresight/Makefile     | 25 +++++++++++++++++++
>  .../tests/shell/coresight/Makefile.miniconfig | 14 +++++++++++
>  5 files changed, 55 insertions(+), 2 deletions(-)
>  create mode 100644 tools/perf/tests/shell/coresight/Makefile
>  create mode 100644 tools/perf/tests/shell/coresight/Makefile.miniconfig
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 9d7f64dc0efe..c8ae5a6638b6 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2029,6 +2029,7 @@ F:	drivers/hwtracing/coresight/*
>  F:	include/dt-bindings/arm/coresight-cti-dt.h
>  F:	include/linux/coresight*
>  F:	samples/coresight/*
> +F:	tools/perf/tests/shell/coresight/*
>  F:	tools/perf/arch/arm/util/auxtrace.c
>  F:	tools/perf/arch/arm/util/cs-etm.c
>  F:	tools/perf/arch/arm/util/cs-etm.h
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index 0661a1cf9855..e3e28b3481f9 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -1291,6 +1291,8 @@ perf_examples_instdir_SQ = $(subst ','\'',$(perf_examples_instdir))
>  STRACE_GROUPS_INSTDIR_SQ = $(subst ','\'',$(STRACE_GROUPS_INSTDIR))
>  tip_instdir_SQ = $(subst ','\'',$(tip_instdir))
>  
> +export perfexec_instdir_SQ
> +
>  # If we install to $(HOME) we keep the traceevent default:
>  # $(HOME)/.traceevent/plugins
>  # Otherwise we install plugins into the global $(libdir).
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index e5921b347153..cef2a06c8f54 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -629,7 +629,15 @@ sync_file_range_tbls := $(srctree)/tools/perf/trace/beauty/sync_file_range.sh
>  $(sync_file_range_arrays): $(linux_uapi_dir)/fs.h $(sync_file_range_tbls)
>  	$(Q)$(SHELL) '$(sync_file_range_tbls)' $(linux_uapi_dir) > $@
>  
> -all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
> +TESTS_CORESIGHT_DIR := $(srctree)/tools/perf/tests/shell/coresight
> +
> +tests-coresight-targets: FORCE
> +	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR)
> +
> +tests-coresight-targets-clean:
> +	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) clean
> +
> +all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>  
>  # Create python binding output directory if not already present
>  _dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> @@ -1007,6 +1015,9 @@ install-tests: all install-gtk
>  		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>  		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>  		$(INSTALL) tests/shell/lib/*.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> +		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> +		$(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> +	$(Q)$(MAKE) -C tests/shell/coresight install-tests

Added a missing ;\ on the line installing the *.py and adjusted use -m
644 for the .sh files to follow what was done in:

  0a9eaf616f29ca32 ("perf tools: Don't install data files with x permissions")

@@ -1006,7 +1014,10 @@ install-tests: all install-gtk
                $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
                $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
                $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
-               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
+               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
+               $(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
+       $(Q)$(MAKE) -C tests/shell/coresight install-tests

  
>  install-bin: install-tools install-tests install-traceevent-plugins
>  
> @@ -1077,7 +1088,7 @@ endif # BUILD_BPF_SKEL
>  bpf-skel-clean:
>  	$(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS)
>  
> -clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean
> +clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-coresight-targets-clean
>  	$(call QUIET_CLEAN, core-objs)  $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive $(OUTPUT)perf-iostat $(LANG_BINDINGS)
>  	$(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
>  	$(Q)$(RM) $(OUTPUT).config-detected
> diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
> new file mode 100644
> index 000000000000..3fee05cfcb0e
> --- /dev/null
> +++ b/tools/perf/tests/shell/coresight/Makefile
> @@ -0,0 +1,25 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +# Carsten Haitzler <carsten.haitzler@arm.com>, 2021
> +include ../../../../../tools/scripts/Makefile.include
> +include ../../../../../tools/scripts/Makefile.arch
> +include ../../../../../tools/scripts/utilities.mak
> +
> +SUBDIRS =
> +
> +all: $(SUBDIRS)
> +$(SUBDIRS):
> +	$(Q)$(MAKE) -C $@
> +
> +INSTALLDIRS = $(SUBDIRS:%=install-%)
> +
> +install-tests: $(INSTALLDIRS)
> +$(INSTALLDIRS):
> +	$(Q)$(MAKE) -C $(@:install-%=%) install-tests
> +
> +CLEANDIRS = $(SUBDIRS:%=clean-%)
> +
> +clean: $(CLEANDIRS)
> +$(CLEANDIRS):
> +	$(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
> +
> +.PHONY: all clean $(SUBDIRS) $(CLEANDIRS) $(INSTALLDIRS)
> diff --git a/tools/perf/tests/shell/coresight/Makefile.miniconfig b/tools/perf/tests/shell/coresight/Makefile.miniconfig
> new file mode 100644
> index 000000000000..5f72a9cb43f3
> --- /dev/null
> +++ b/tools/perf/tests/shell/coresight/Makefile.miniconfig
> @@ -0,0 +1,14 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +# Carsten Haitzler <carsten.haitzler@arm.com>, 2021
> +
> +ifndef DESTDIR
> +prefix ?= $(HOME)
> +endif
> +
> +DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
> +INSTALL = install
> +INSTDIR_SUB = tests/shell/coresight
> +
> +include ../../../../../scripts/Makefile.include
> +include ../../../../../scripts/Makefile.arch
> +include ../../../../../scripts/utilities.mak
> -- 
> 2.32.0

-- 

- Arnaldo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 6 months ago
Em Thu, Oct 06, 2022 at 08:26:00AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Sep 09, 2022 at 04:27:52PM +0100, carsten.haitzler@foss.arm.com escreveu:
> > +all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
> >  
> >  # Create python binding output directory if not already present
> >  _dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> > @@ -1007,6 +1015,9 @@ install-tests: all install-gtk
> >  		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> >  		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> >  		$(INSTALL) tests/shell/lib/*.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > +		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > +		$(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > +	$(Q)$(MAKE) -C tests/shell/coresight install-tests
> 
> Added a missing ;\ on the line installing the *.py and adjusted use -m
> 644 for the .sh files to follow what was done in:
> 
>   0a9eaf616f29ca32 ("perf tools: Don't install data files with x permissions")
> 
> @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
>                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
>                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> +               $(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> 

Also had to remove:

		$(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'

from this patch, as it makes install fail at this point in the patchset:

  DESCEND plugins
  GEN     /tmp/build/perf/python/perf.so
  INSTALL trace_plugins
  INSTALL binaries
  INSTALL tests
install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
make[2]: *** [Makefile.perf:1007: install-tests] Error 1
make[2]: *** Waiting for unfinished jobs....

I'll add it back when the first .sh gets added to tests/shell/coresight/

- Arnaldo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Leo Yan 3 years, 6 months ago
Hi Arnaldo,

On Thu, Oct 06, 2022 at 08:45:18AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Oct 06, 2022 at 08:26:00AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Fri, Sep 09, 2022 at 04:27:52PM +0100, carsten.haitzler@foss.arm.com escreveu:
> > > +all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
> > >  
> > >  # Create python binding output directory if not already present
> > >  _dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> > > @@ -1007,6 +1015,9 @@ install-tests: all install-gtk
> > >  		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > >  		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > >  		$(INSTALL) tests/shell/lib/*.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > > +		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > > +		$(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > > +	$(Q)$(MAKE) -C tests/shell/coresight install-tests
> > 
> > Added a missing ;\ on the line installing the *.py and adjusted use -m
> > 644 for the .sh files to follow what was done in:
> > 
> >   0a9eaf616f29ca32 ("perf tools: Don't install data files with x permissions")
> > 
> > @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
> >                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
> >                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> >                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > +               $(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> > 
> 
> Also had to remove:
> 
> 		$(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> 
> from this patch, as it makes install fail at this point in the patchset:

Thanks a lot!

James and me had found the merging conflict and planned to send out
email for reminding it, the right change for above section would be:

@@ -1006,7 +1014,10 @@ install-tests: all install-gtk
                $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
                $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
                $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
-               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
+               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
+               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
+               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
+       $(Q)$(MAKE) -C tests/shell/coresight install-tests

It's deliberately to not add '-m 644' when install coresight test
shell scripts under the folder tests/shell/coresight/ so that we can
keep the executable permission for these scripts.  On the other flip,
we set 644 mode for the scripts under tests/shell/lib/ so these
scripts will not be executed directly by perf test framework.

@Carsten, if have chance could you confirm for above change?

>   DESCEND plugins
>   GEN     /tmp/build/perf/python/perf.so
>   INSTALL trace_plugins
>   INSTALL binaries
>   INSTALL tests
> install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
> make[2]: *** [Makefile.perf:1007: install-tests] Error 1
> make[2]: *** Waiting for unfinished jobs....
> 
> I'll add it back when the first .sh gets added to tests/shell/coresight/

Sorry for introducing extra efforts for you and thanks!

Leo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Carsten Haitzler 3 years, 6 months ago

On 10/6/22 13:58, Leo Yan wrote:
> Hi Arnaldo,
> 
> On Thu, Oct 06, 2022 at 08:45:18AM -0300, Arnaldo Carvalho de Melo wrote:
>> Em Thu, Oct 06, 2022 at 08:26:00AM -0300, Arnaldo Carvalho de Melo escreveu:
>>> Em Fri, Sep 09, 2022 at 04:27:52PM +0100, carsten.haitzler@foss.arm.com escreveu:
>>>> +all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>>>>   
>>>>   # Create python binding output directory if not already present
>>>>   _dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
>>>> @@ -1007,6 +1015,9 @@ install-tests: all install-gtk
>>>>   		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>>   		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>>   		$(INSTALL) tests/shell/lib/*.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
>>>> +		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
>>>> +		$(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
>>>> +	$(Q)$(MAKE) -C tests/shell/coresight install-tests
>>>
>>> Added a missing ;\ on the line installing the *.py and adjusted use -m
>>> 644 for the .sh files to follow what was done in:
>>>
>>>    0a9eaf616f29ca32 ("perf tools: Don't install data files with x permissions")
>>>
>>> @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
>>>                  $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
>>>                  $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>                  $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>> -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
>>> +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>> +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
>>> +               $(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
>>> +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
>>>
>>
>> Also had to remove:
>>
>> 		$(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
>>
>> from this patch, as it makes install fail at this point in the patchset:
> 
> Thanks a lot!
> 
> James and me had found the merging conflict and planned to send out
> email for reminding it, the right change for above section would be:
> 
> @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
>                  $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
>                  $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>                  $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> 
> It's deliberately to not add '-m 644' when install coresight test
> shell scripts under the folder tests/shell/coresight/ so that we can
> keep the executable permission for these scripts.  On the other flip,
> we set 644 mode for the scripts under tests/shell/lib/ so these
> scripts will not be executed directly by perf test framework.
> 
> @Carsten, if have chance could you confirm for above change?
> 
>>    DESCEND plugins
>>    GEN     /tmp/build/perf/python/perf.so
>>    INSTALL trace_plugins
>>    INSTALL binaries
>>    INSTALL tests
>> install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
>> make[2]: *** [Makefile.perf:1007: install-tests] Error 1
>> make[2]: *** Waiting for unfinished jobs....
>>
>> I'll add it back when the first .sh gets added to tests/shell/coresight/
> 
> Sorry for introducing extra efforts for you and thanks!

oh sorry - indeed i didn't see this problem coming after fixing the 
conflicts. i've got an update of the patches that fix that. should i 
just send through the 2 updates patches as a v10 or the whole series?
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 6 months ago
Em Fri, Oct 07, 2022 at 12:34:51PM +0100, Carsten Haitzler escreveu:
> On 10/6/22 13:58, Leo Yan wrote:
> > On Thu, Oct 06, 2022 at 08:45:18AM -0300, Arnaldo Carvalho de Melo wrote:
> > > Em Thu, Oct 06, 2022 at 08:26:00AM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Also had to remove:

> > > 		$(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'

> > > from this patch, as it makes install fail at this point in the patchset:

> > Thanks a lot!

> > James and me had found the merging conflict and planned to send out
> > email for reminding it, the right change for above section would be:

> > @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
> >                  $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
> >                  $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> >                  $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > +       $(Q)$(MAKE) -C tests/shell/coresight install-tests

> > It's deliberately to not add '-m 644' when install coresight test
> > shell scripts under the folder tests/shell/coresight/ so that we can
> > keep the executable permission for these scripts.  On the other
> > flip, we set 644 mode for the scripts under tests/shell/lib/ so
> > these scripts will not be executed directly by perf test framework.

> > @Carsten, if have chance could you confirm for above change?

> > >    DESCEND plugins
> > >    GEN     /tmp/build/perf/python/perf.so
> > >    INSTALL trace_plugins
> > >    INSTALL binaries
> > >    INSTALL tests
> > > install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
> > > make[2]: *** [Makefile.perf:1007: install-tests] Error 1
> > > make[2]: *** Waiting for unfinished jobs....

> > > I'll add it back when the first .sh gets added to tests/shell/coresight/

> > Sorry for introducing extra efforts for you and thanks!
 
> oh sorry - indeed i didn't see this problem coming after fixing the
> conflicts. i've got an update of the patches that fix that. should i just
> send through the 2 updates patches as a v10 or the whole series?

No need, I did some fixes taking into account the comments on this
thread, we can go on and fix things from what I have now at
acme/perf/core, which I'll send to Linus today.

- Arnaldo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Carsten Haitzler 3 years, 5 months ago

On 10/7/22 13:44, Arnaldo Carvalho de Melo wrote:
> Em Fri, Oct 07, 2022 at 12:34:51PM +0100, Carsten Haitzler escreveu:
>> On 10/6/22 13:58, Leo Yan wrote:
>>> On Thu, Oct 06, 2022 at 08:45:18AM -0300, Arnaldo Carvalho de Melo wrote:
>>>> Em Thu, Oct 06, 2022 at 08:26:00AM -0300, Arnaldo Carvalho de Melo escreveu:
>>>> Also had to remove:
> 
>>>> 		$(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> 
>>>> from this patch, as it makes install fail at this point in the patchset:
> 
>>> Thanks a lot!
> 
>>> James and me had found the merging conflict and planned to send out
>>> email for reminding it, the right change for above section would be:
> 
>>> @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
>>>                   $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
>>>                   $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>                   $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>> -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
>>> +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>> +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
>>> +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
>>> +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> 
>>> It's deliberately to not add '-m 644' when install coresight test
>>> shell scripts under the folder tests/shell/coresight/ so that we can
>>> keep the executable permission for these scripts.  On the other
>>> flip, we set 644 mode for the scripts under tests/shell/lib/ so
>>> these scripts will not be executed directly by perf test framework.
> 
>>> @Carsten, if have chance could you confirm for above change?
> 
>>>>     DESCEND plugins
>>>>     GEN     /tmp/build/perf/python/perf.so
>>>>     INSTALL trace_plugins
>>>>     INSTALL binaries
>>>>     INSTALL tests
>>>> install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
>>>> make[2]: *** [Makefile.perf:1007: install-tests] Error 1
>>>> make[2]: *** Waiting for unfinished jobs....
> 
>>>> I'll add it back when the first .sh gets added to tests/shell/coresight/
> 
>>> Sorry for introducing extra efforts for you and thanks!
>   
>> oh sorry - indeed i didn't see this problem coming after fixing the
>> conflicts. i've got an update of the patches that fix that. should i just
>> send through the 2 updates patches as a v10 or the whole series?
> 
> No need, I did some fixes taking into account the comments on this
> thread, we can go on and fix things from what I have now at
> acme/perf/core, which I'll send to Linus today.

oh cool. i'll let patches sit for now - let me know if there's anything 
you want/need from me.
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 5 months ago
Em Mon, Oct 10, 2022 at 08:02:29AM +0100, Carsten Haitzler escreveu:
> On 10/7/22 13:44, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Oct 07, 2022 at 12:34:51PM +0100, Carsten Haitzler escreveu:
> > > On 10/6/22 13:58, Leo Yan wrote:
> > > oh sorry - indeed i didn't see this problem coming after fixing the
> > > conflicts. i've got an update of the patches that fix that. should i just
> > > send through the 2 updates patches as a v10 or the whole series?

> > No need, I did some fixes taking into account the comments on this
> > thread, we can go on and fix things from what I have now at
> > acme/perf/core, which I'll send to Linus today.
 
> oh cool. i'll let patches sit for now - let me know if there's anything you
> want/need from me.

Not right now, I'm now just waiting for Linus to merge what I sent, then
you can continue from upstream.

- Arnaldo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Carsten Haitzler 3 years, 5 months ago

On 10/10/22 14:54, Arnaldo Carvalho de Melo wrote:
> Em Mon, Oct 10, 2022 at 08:02:29AM +0100, Carsten Haitzler escreveu:
>> On 10/7/22 13:44, Arnaldo Carvalho de Melo wrote:
>>> Em Fri, Oct 07, 2022 at 12:34:51PM +0100, Carsten Haitzler escreveu:
>>>> On 10/6/22 13:58, Leo Yan wrote:
>>>> oh sorry - indeed i didn't see this problem coming after fixing the
>>>> conflicts. i've got an update of the patches that fix that. should i just
>>>> send through the 2 updates patches as a v10 or the whole series?
> 
>>> No need, I did some fixes taking into account the comments on this
>>> thread, we can go on and fix things from what I have now at
>>> acme/perf/core, which I'll send to Linus today.
>   
>> oh cool. i'll let patches sit for now - let me know if there's anything you
>> want/need from me.
> 
> Not right now, I'm now just waiting for Linus to merge what I sent, then
> you can continue from upstream.

I'm not sure what you have sent to Linus? The patch series? Specific 
patches?
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Leo Yan 3 years, 5 months ago
On Wed, Oct 19, 2022 at 09:11:20AM +0100, Carsten Haitzler wrote:
> 
> 
> On 10/10/22 14:54, Arnaldo Carvalho de Melo wrote:
> > Em Mon, Oct 10, 2022 at 08:02:29AM +0100, Carsten Haitzler escreveu:
> > > On 10/7/22 13:44, Arnaldo Carvalho de Melo wrote:
> > > > Em Fri, Oct 07, 2022 at 12:34:51PM +0100, Carsten Haitzler escreveu:
> > > > > On 10/6/22 13:58, Leo Yan wrote:
> > > > > oh sorry - indeed i didn't see this problem coming after fixing the
> > > > > conflicts. i've got an update of the patches that fix that. should i just
> > > > > send through the 2 updates patches as a v10 or the whole series?
> > 
> > > > No need, I did some fixes taking into account the comments on this
> > > > thread, we can go on and fix things from what I have now at
> > > > acme/perf/core, which I'll send to Linus today.
> > > oh cool. i'll let patches sit for now - let me know if there's anything you
> > > want/need from me.
> > 
> > Not right now, I'm now just waiting for Linus to merge what I sent, then
> > you can continue from upstream.
> 
> I'm not sure what you have sent to Linus? The patch series? Specific
> patches?

I think the whole patch set has been merged into Linux mainline;
after git pull the Linux mainline code and you could see:

$ git log --oneline --author="Carsten Haitzle"
dc2e0fb00bb2 perf test coresight: Add relevant documentation about ARM64 CoreSight testing
43c688cb3241 perf test: Add git ignore for tmp and output files of ARM CoreSight tests
b65c6477f6bb perf test coresight: Add unroll thread test shell script
fc0a0ea03980 perf test coresight: Add unroll thread test tool
74c62b8d6161 perf test coresight: Add thread loop test shell scripts
e9664b96c6c0 perf test coresight: Add thread loop test tool
b76692fea7f2 perf test coresight: Add memcpy thread test shell script
f1288bdb6d48 perf test coresight: Add memcpy thread test tool
6ea586b1e3dc perf test: Add git ignore for perf data generated by the ARM CoreSight tests
fdc25cc59c71 perf test: Add arm64 asm pureloop test shell script
8b97519711c3 perf test: Add asm pureloop test tool
34bec35cbbb2 perf test: Add build infra for perf test tools for ARM CoreSight tests
c63317ab14b0 perf test: Add CoreSight shell lib shared code for future tests
7391db645938 perf test: Refactor shell tests allowing subdirs

Thanks,
Leo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 5 months ago
Em Wed, Oct 19, 2022 at 04:51:25PM +0800, Leo Yan escreveu:
> On Wed, Oct 19, 2022 at 09:11:20AM +0100, Carsten Haitzler wrote:
> > 
> > 
> > On 10/10/22 14:54, Arnaldo Carvalho de Melo wrote:
> > > Em Mon, Oct 10, 2022 at 08:02:29AM +0100, Carsten Haitzler escreveu:
> > > > On 10/7/22 13:44, Arnaldo Carvalho de Melo wrote:
> > > > > Em Fri, Oct 07, 2022 at 12:34:51PM +0100, Carsten Haitzler escreveu:
> > > > > > On 10/6/22 13:58, Leo Yan wrote:
> > > > > > oh sorry - indeed i didn't see this problem coming after fixing the
> > > > > > conflicts. i've got an update of the patches that fix that. should i just
> > > > > > send through the 2 updates patches as a v10 or the whole series?
> > > 
> > > > > No need, I did some fixes taking into account the comments on this
> > > > > thread, we can go on and fix things from what I have now at
> > > > > acme/perf/core, which I'll send to Linus today.
> > > > oh cool. i'll let patches sit for now - let me know if there's anything you
> > > > want/need from me.
> > > 
> > > Not right now, I'm now just waiting for Linus to merge what I sent, then
> > > you can continue from upstream.
> > 
> > I'm not sure what you have sent to Linus? The patch series? Specific
> > patches?
> 
> I think the whole patch set has been merged into Linux mainline;
> after git pull the Linux mainline code and you could see:
> 
> $ git log --oneline --author="Carsten Haitzle"
> dc2e0fb00bb2 perf test coresight: Add relevant documentation about ARM64 CoreSight testing
> 43c688cb3241 perf test: Add git ignore for tmp and output files of ARM CoreSight tests
> b65c6477f6bb perf test coresight: Add unroll thread test shell script
> fc0a0ea03980 perf test coresight: Add unroll thread test tool
> 74c62b8d6161 perf test coresight: Add thread loop test shell scripts
> e9664b96c6c0 perf test coresight: Add thread loop test tool
> b76692fea7f2 perf test coresight: Add memcpy thread test shell script
> f1288bdb6d48 perf test coresight: Add memcpy thread test tool
> 6ea586b1e3dc perf test: Add git ignore for perf data generated by the ARM CoreSight tests
> fdc25cc59c71 perf test: Add arm64 asm pureloop test shell script
> 8b97519711c3 perf test: Add asm pureloop test tool
> 34bec35cbbb2 perf test: Add build infra for perf test tools for ARM CoreSight tests
> c63317ab14b0 perf test: Add CoreSight shell lib shared code for future tests
> 7391db645938 perf test: Refactor shell tests allowing subdirs

Thanks, Leo, Carsten, are we on the same page now? :-)

- Arnaldo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 6 months ago
Em Thu, Oct 06, 2022 at 08:58:42PM +0800, Leo Yan escreveu:
> Hi Arnaldo,
> 
> On Thu, Oct 06, 2022 at 08:45:18AM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Oct 06, 2022 at 08:26:00AM -0300, Arnaldo Carvalho de Melo escreveu:
> > > Em Fri, Sep 09, 2022 at 04:27:52PM +0100, carsten.haitzler@foss.arm.com escreveu:
> > > > +all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
> > > >  
> > > >  # Create python binding output directory if not already present
> > > >  _dummy := $(shell [ -d '$(OUTPUT)python' ] || mkdir -p '$(OUTPUT)python')
> > > > @@ -1007,6 +1015,9 @@ install-tests: all install-gtk
> > > >  		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > >  		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > >  		$(INSTALL) tests/shell/lib/*.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > > > +		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > > > +		$(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > > > +	$(Q)$(MAKE) -C tests/shell/coresight install-tests
> > > 
> > > Added a missing ;\ on the line installing the *.py and adjusted use -m
> > > 644 for the .sh files to follow what was done in:
> > > 
> > >   0a9eaf616f29ca32 ("perf tools: Don't install data files with x permissions")
> > > 
> > > @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
> > >                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
> > >                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > >                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > > +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > > +               $(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > > +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> > > 
> > 
> > Also had to remove:
> > 
> > 		$(INSTALL) tests/shell/coresight/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > 
> > from this patch, as it makes install fail at this point in the patchset:
> 
> Thanks a lot!
> 
> James and me had found the merging conflict and planned to send out
> email for reminding it, the right change for above section would be:

Not at this patch, in this patch there are no tests/shell/coresight/*.sh
which makes 'make install' to fail _at this point_, for bisectability we
can't just test at the end of the patchkit.
 
> @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
>                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
>                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> 
> It's deliberately to not add '-m 644' when install coresight test
> shell scripts under the folder tests/shell/coresight/ so that we can
> keep the executable permission for these scripts.  On the other flip,
> we set 644 mode for the scripts under tests/shell/lib/ so these
> scripts will not be executed directly by perf test framework.
> 
> @Carsten, if have chance could you confirm for above change?

If you need for some .sh, coresight test's to have x set while all of
the others don't have, and you have a good reason for that, ok, we just
add a comment.
 
> >   DESCEND plugins
> >   GEN     /tmp/build/perf/python/perf.so
> >   INSTALL trace_plugins
> >   INSTALL binaries
> >   INSTALL tests
> > install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
> > make[2]: *** [Makefile.perf:1007: install-tests] Error 1
> > make[2]: *** Waiting for unfinished jobs....
> > 
> > I'll add it back when the first .sh gets added to tests/shell/coresight/
> 
> Sorry for introducing extra efforts for you and thanks!

This also has to go, I'll check and fix this loop that doesn't follow
the existing output style, happens with ´make install', etc too:

⬢[acme@toolbox perf]$ make -C tools/perf clean
make: Entering directory '/var/home/acme/git/perf/tools/perf'
  CLEAN   x86
  CLEAN   libtraceevent
  CLEAN   libapi
  CLEAN   libbpf
  CLEAN   libsubcmd
  CLEAN   libperf
  CLEAN   fixdep
  CLEAN   feature-detect
  CLEAN   python
  CLEAN   bpf-skel
make -C asm_pure_loop clean >/dev/null        <-------------------
make -C memcpy_thread clean >/dev/null        <-------------------
make -C thread_loop clean >/dev/null          <-------------------
make -C unroll_loop_thread clean >/dev/null   <-------------------
  CLEAN   core-objs
  CLEAN   core-progs
  CLEAN   core-gen
  CLEAN   Documentation
make: Leaving directory '/var/home/acme/git/perf/tools/perf'
⬢[acme@toolbox perf]$
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Leo Yan 3 years, 6 months ago
On Thu, Oct 06, 2022 at 11:22:13AM -0300, Arnaldo Carvalho de Melo wrote:

[...]

> > @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
> >                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
> >                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> >                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> > 
> > It's deliberately to not add '-m 644' when install coresight test
> > shell scripts under the folder tests/shell/coresight/ so that we can
> > keep the executable permission for these scripts.  On the other flip,
> > we set 644 mode for the scripts under tests/shell/lib/ so these
> > scripts will not be executed directly by perf test framework.
> > 
> > @Carsten, if have chance could you confirm for above change?
> 
> If you need for some .sh, coresight test's to have x set while all of
> the others don't have, and you have a good reason for that, ok, we just
> add a comment.

Simply to say, all lib scripts are not needed for execute permission.
Yes, it's good to add a comment for the installation steps.

> > >   DESCEND plugins
> > >   GEN     /tmp/build/perf/python/perf.so
> > >   INSTALL trace_plugins
> > >   INSTALL binaries
> > >   INSTALL tests
> > > install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
> > > make[2]: *** [Makefile.perf:1007: install-tests] Error 1
> > > make[2]: *** Waiting for unfinished jobs....
> > > 
> > > I'll add it back when the first .sh gets added to tests/shell/coresight/
> > 
> > Sorry for introducing extra efforts for you and thanks!
> 
> This also has to go, I'll check and fix this loop that doesn't follow
> the existing output style, happens with ´make install', etc too:
> 
> ⬢[acme@toolbox perf]$ make -C tools/perf clean
> make: Entering directory '/var/home/acme/git/perf/tools/perf'
>   CLEAN   x86
>   CLEAN   libtraceevent
>   CLEAN   libapi
>   CLEAN   libbpf
>   CLEAN   libsubcmd
>   CLEAN   libperf
>   CLEAN   fixdep
>   CLEAN   feature-detect
>   CLEAN   python
>   CLEAN   bpf-skel
> make -C asm_pure_loop clean >/dev/null        <-------------------
> make -C memcpy_thread clean >/dev/null        <-------------------
> make -C thread_loop clean >/dev/null          <-------------------
> make -C unroll_loop_thread clean >/dev/null   <-------------------

Ouch, if we can update the file tests/shell/coresight/Makefile as below:

$(CLEANDIRS):
        $(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null

Then we can get output as:

  # make clean
  CLEAN   arm64
  CLEAN   libtraceevent
  CLEAN   libapi
  CLEAN   libbpf
  CLEAN   libsubcmd
  CLEAN   libperf
  CLEAN   fixdep
  CLEAN   feature-detect
  CLEAN   python
  CLEAN   bpf-skel
  CLEAN   test-asm_pure_loop
  CLEAN   test-memcpy_thread
  CLEAN   test-thread_loop
  CLEAN   test-unroll_loop_thread
  CLEAN   core-objs
  CLEAN   core-progs
  CLEAN   core-gen
  CLEAN   Documentation

Sorry for inconvenience.

Thanks,
Leo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 6 months ago
Em Thu, Oct 06, 2022 at 11:07:19PM +0800, Leo Yan escreveu:
> On Thu, Oct 06, 2022 at 11:22:13AM -0300, Arnaldo Carvalho de Melo wrote:
> 
> [...]
> 
> > > @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
> > >                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
> > >                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > >                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > > +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > > +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > > +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> > > 
> > > It's deliberately to not add '-m 644' when install coresight test
> > > shell scripts under the folder tests/shell/coresight/ so that we can
> > > keep the executable permission for these scripts.  On the other flip,
> > > we set 644 mode for the scripts under tests/shell/lib/ so these
> > > scripts will not be executed directly by perf test framework.
> > > 
> > > @Carsten, if have chance could you confirm for above change?
> > 
> > If you need for some .sh, coresight test's to have x set while all of
> > the others don't have, and you have a good reason for that, ok, we just
> > add a comment.
> 
> Simply to say, all lib scripts are not needed for execute permission.
> Yes, it's good to add a comment for the installation steps.
> 
> > > >   DESCEND plugins
> > > >   GEN     /tmp/build/perf/python/perf.so
> > > >   INSTALL trace_plugins
> > > >   INSTALL binaries
> > > >   INSTALL tests
> > > > install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
> > > > make[2]: *** [Makefile.perf:1007: install-tests] Error 1
> > > > make[2]: *** Waiting for unfinished jobs....
> > > > 
> > > > I'll add it back when the first .sh gets added to tests/shell/coresight/
> > > 
> > > Sorry for introducing extra efforts for you and thanks!
> > 
> > This also has to go, I'll check and fix this loop that doesn't follow
> > the existing output style, happens with ´make install', etc too:
> > 
> > ⬢[acme@toolbox perf]$ make -C tools/perf clean
> > make: Entering directory '/var/home/acme/git/perf/tools/perf'
> >   CLEAN   x86
> >   CLEAN   libtraceevent
> >   CLEAN   libapi
> >   CLEAN   libbpf
> >   CLEAN   libsubcmd
> >   CLEAN   libperf
> >   CLEAN   fixdep
> >   CLEAN   feature-detect
> >   CLEAN   python
> >   CLEAN   bpf-skel
> > make -C asm_pure_loop clean >/dev/null        <-------------------
> > make -C memcpy_thread clean >/dev/null        <-------------------
> > make -C thread_loop clean >/dev/null          <-------------------
> > make -C unroll_loop_thread clean >/dev/null   <-------------------
> 
> Ouch, if we can update the file tests/shell/coresight/Makefile as below:
> 
> $(CLEANDIRS):
>         $(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null

I had to do it, so far, at the time that the above line is first added
as:

diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index a20b4adb5e3451f1..194e582e70c2c766 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -635,7 +635,8 @@ tests-coresight-targets: FORCE
 	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR)
 
 tests-coresight-targets-clean:
-	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) clean
+	$(call QUIET_CLEAN, coresight)
+	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) O=$(OUTPUT) clean >/dev/null
 
 all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
 
diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
index 3fee05cfcb0e73f6..6baab5cbaa9aa3b1 100644
--- a/tools/perf/tests/shell/coresight/Makefile
+++ b/tools/perf/tests/shell/coresight/Makefile
@@ -20,6 +20,6 @@ CLEANDIRS = $(SUBDIRS:%=clean-%)
 
 clean: $(CLEANDIRS)
 $(CLEANDIRS):
-	$(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
+	$(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
 
 .PHONY: all clean $(SUBDIRS) $(CLEANDIRS) $(INSTALLDIRS)
 
> Then we can get output as:
> 
>   # make clean
>   CLEAN   arm64
>   CLEAN   libtraceevent
>   CLEAN   libapi
>   CLEAN   libbpf
>   CLEAN   libsubcmd
>   CLEAN   libperf
>   CLEAN   fixdep
>   CLEAN   feature-detect
>   CLEAN   python
>   CLEAN   bpf-skel
>   CLEAN   test-asm_pure_loop
>   CLEAN   test-memcpy_thread
>   CLEAN   test-thread_loop
>   CLEAN   test-unroll_loop_thread
>   CLEAN   core-objs
>   CLEAN   core-progs
>   CLEAN   core-gen
>   CLEAN   Documentation
> 
> Sorry for inconvenience.
> 
> Thanks,
> Leo

-- 

- Arnaldo
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Arnaldo Carvalho de Melo 3 years, 6 months ago
Em Thu, Oct 06, 2022 at 02:12:11PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Oct 06, 2022 at 11:07:19PM +0800, Leo Yan escreveu:
> > On Thu, Oct 06, 2022 at 11:22:13AM -0300, Arnaldo Carvalho de Melo wrote:
> > 
> > [...]
> > 
> > > > @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
> > > >                 $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
> > > >                 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > >                 $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > > -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
> > > > +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
> > > > +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
> > > > +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
> > > > +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
> > > > 
> > > > It's deliberately to not add '-m 644' when install coresight test
> > > > shell scripts under the folder tests/shell/coresight/ so that we can
> > > > keep the executable permission for these scripts.  On the other flip,
> > > > we set 644 mode for the scripts under tests/shell/lib/ so these
> > > > scripts will not be executed directly by perf test framework.
> > > > 
> > > > @Carsten, if have chance could you confirm for above change?
> > > 
> > > If you need for some .sh, coresight test's to have x set while all of
> > > the others don't have, and you have a good reason for that, ok, we just
> > > add a comment.
> > 
> > Simply to say, all lib scripts are not needed for execute permission.
> > Yes, it's good to add a comment for the installation steps.
> > 
> > > > >   DESCEND plugins
> > > > >   GEN     /tmp/build/perf/python/perf.so
> > > > >   INSTALL trace_plugins
> > > > >   INSTALL binaries
> > > > >   INSTALL tests
> > > > > install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
> > > > > make[2]: *** [Makefile.perf:1007: install-tests] Error 1
> > > > > make[2]: *** Waiting for unfinished jobs....
> > > > > 
> > > > > I'll add it back when the first .sh gets added to tests/shell/coresight/
> > > > 
> > > > Sorry for introducing extra efforts for you and thanks!
> > > 
> > > This also has to go, I'll check and fix this loop that doesn't follow
> > > the existing output style, happens with ´make install', etc too:
> > > 
> > > ⬢[acme@toolbox perf]$ make -C tools/perf clean
> > > make: Entering directory '/var/home/acme/git/perf/tools/perf'
> > >   CLEAN   x86
> > >   CLEAN   libtraceevent
> > >   CLEAN   libapi
> > >   CLEAN   libbpf
> > >   CLEAN   libsubcmd
> > >   CLEAN   libperf
> > >   CLEAN   fixdep
> > >   CLEAN   feature-detect
> > >   CLEAN   python
> > >   CLEAN   bpf-skel
> > > make -C asm_pure_loop clean >/dev/null        <-------------------
> > > make -C memcpy_thread clean >/dev/null        <-------------------
> > > make -C thread_loop clean >/dev/null          <-------------------
> > > make -C unroll_loop_thread clean >/dev/null   <-------------------
> > 
> > Ouch, if we can update the file tests/shell/coresight/Makefile as below:
> > 
> > $(CLEANDIRS):
> >         $(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
> 
> I had to do it, so far, at the time that the above line is first added
> as:
> 
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index a20b4adb5e3451f1..194e582e70c2c766 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -635,7 +635,8 @@ tests-coresight-targets: FORCE
>  	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR)
>  
>  tests-coresight-targets-clean:
> -	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) clean
> +	$(call QUIET_CLEAN, coresight)
> +	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) O=$(OUTPUT) clean >/dev/null
>  
>  all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>  
> diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
> index 3fee05cfcb0e73f6..6baab5cbaa9aa3b1 100644
> --- a/tools/perf/tests/shell/coresight/Makefile
> +++ b/tools/perf/tests/shell/coresight/Makefile
> @@ -20,6 +20,6 @@ CLEANDIRS = $(SUBDIRS:%=clean-%)
>  
>  clean: $(CLEANDIRS)
>  $(CLEANDIRS):
> -	$(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
> +	$(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
>  
>  .PHONY: all clean $(SUBDIRS) $(CLEANDIRS) $(INSTALLDIRS)

And for the normal build and install, somehow that $(Q) is not being
obeyed there, so I'm using straight @ for now so that we have a clean
output, someone more knowledgeable in the Makefile voodoo can then fix
it.

⬢[acme@toolbox perf]$ git log --oneline -1
e1700b67a41092a5 (HEAD) perf test: Add build infra for perf test tools for ARM CoreSight tests
⬢[acme@toolbox perf]$ git diff
diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
index 6baab5cbaa9aa3b1..6f3b3f07049c2d53 100644
--- a/tools/perf/tests/shell/coresight/Makefile
+++ b/tools/perf/tests/shell/coresight/Makefile
@@ -8,13 +8,13 @@ SUBDIRS =

 all: $(SUBDIRS)
 $(SUBDIRS):
-       $(Q)$(MAKE) -C $@
+       @$(MAKE) -C $@

 INSTALLDIRS = $(SUBDIRS:%=install-%)

 install-tests: $(INSTALLDIRS)
 $(INSTALLDIRS):
-       $(Q)$(MAKE) -C $(@:install-%=%) install-tests
+       @$(MAKE) -C $(@:install-%=%) install-tests >/dev/null

 CLEANDIRS = $(SUBDIRS:%=clean-%)

⬢[acme@toolbox perf]$
Re: [PATCH v9 02/13] perf test: Add build infra for perf test tools for CoreSight tests
Posted by Jiri Slaby 3 years, 6 months ago
On 06. 10. 22, 19:42, Arnaldo Carvalho de Melo wrote:
> Em Thu, Oct 06, 2022 at 02:12:11PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Thu, Oct 06, 2022 at 11:07:19PM +0800, Leo Yan escreveu:
>>> On Thu, Oct 06, 2022 at 11:22:13AM -0300, Arnaldo Carvalho de Melo wrote:
>>>
>>> [...]
>>>
>>>>> @@ -1006,7 +1014,10 @@ install-tests: all install-gtk
>>>>>                  $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
>>>>>                  $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>>>                  $(INSTALL) tests/shell/lib/*.sh -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>>> -               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'
>>>>> +               $(INSTALL) tests/shell/lib/*.py -m 644 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
>>>>> +               $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'; \
>>>>> +               $(INSTALL) tests/shell/coresight/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/coresight'
>>>>> +       $(Q)$(MAKE) -C tests/shell/coresight install-tests
>>>>>
>>>>> It's deliberately to not add '-m 644' when install coresight test
>>>>> shell scripts under the folder tests/shell/coresight/ so that we can
>>>>> keep the executable permission for these scripts.  On the other flip,
>>>>> we set 644 mode for the scripts under tests/shell/lib/ so these
>>>>> scripts will not be executed directly by perf test framework.
>>>>>
>>>>> @Carsten, if have chance could you confirm for above change?
>>>>
>>>> If you need for some .sh, coresight test's to have x set while all of
>>>> the others don't have, and you have a good reason for that, ok, we just
>>>> add a comment.
>>>
>>> Simply to say, all lib scripts are not needed for execute permission.
>>> Yes, it's good to add a comment for the installation steps.
>>>
>>>>>>    DESCEND plugins
>>>>>>    GEN     /tmp/build/perf/python/perf.so
>>>>>>    INSTALL trace_plugins
>>>>>>    INSTALL binaries
>>>>>>    INSTALL tests
>>>>>> install: cannot stat 'tests/shell/coresight/*.sh': No such file or directory
>>>>>> make[2]: *** [Makefile.perf:1007: install-tests] Error 1
>>>>>> make[2]: *** Waiting for unfinished jobs....
>>>>>>
>>>>>> I'll add it back when the first .sh gets added to tests/shell/coresight/
>>>>>
>>>>> Sorry for introducing extra efforts for you and thanks!
>>>>
>>>> This also has to go, I'll check and fix this loop that doesn't follow
>>>> the existing output style, happens with ´make install', etc too:
>>>>
>>>> ⬢[acme@toolbox perf]$ make -C tools/perf clean
>>>> make: Entering directory '/var/home/acme/git/perf/tools/perf'
>>>>    CLEAN   x86
>>>>    CLEAN   libtraceevent
>>>>    CLEAN   libapi
>>>>    CLEAN   libbpf
>>>>    CLEAN   libsubcmd
>>>>    CLEAN   libperf
>>>>    CLEAN   fixdep
>>>>    CLEAN   feature-detect
>>>>    CLEAN   python
>>>>    CLEAN   bpf-skel
>>>> make -C asm_pure_loop clean >/dev/null        <-------------------
>>>> make -C memcpy_thread clean >/dev/null        <-------------------
>>>> make -C thread_loop clean >/dev/null          <-------------------
>>>> make -C unroll_loop_thread clean >/dev/null   <-------------------
>>>
>>> Ouch, if we can update the file tests/shell/coresight/Makefile as below:
>>>
>>> $(CLEANDIRS):
>>>          $(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
>>
>> I had to do it, so far, at the time that the above line is first added
>> as:
>>
>> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
>> index a20b4adb5e3451f1..194e582e70c2c766 100644
>> --- a/tools/perf/Makefile.perf
>> +++ b/tools/perf/Makefile.perf
>> @@ -635,7 +635,8 @@ tests-coresight-targets: FORCE
>>   	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR)
>>   
>>   tests-coresight-targets-clean:
>> -	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) clean
>> +	$(call QUIET_CLEAN, coresight)
>> +	$(Q)$(MAKE) -C $(TESTS_CORESIGHT_DIR) O=$(OUTPUT) clean >/dev/null
>>   
>>   all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) tests-coresight-targets
>>   
>> diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
>> index 3fee05cfcb0e73f6..6baab5cbaa9aa3b1 100644
>> --- a/tools/perf/tests/shell/coresight/Makefile
>> +++ b/tools/perf/tests/shell/coresight/Makefile
>> @@ -20,6 +20,6 @@ CLEANDIRS = $(SUBDIRS:%=clean-%)
>>   
>>   clean: $(CLEANDIRS)
>>   $(CLEANDIRS):
>> -	$(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
>> +	$(call QUIET_CLEAN, test-$(@:clean-%=%)) $(Q)$(MAKE) -C $(@:clean-%=%) clean >/dev/null
>>   
>>   .PHONY: all clean $(SUBDIRS) $(CLEANDIRS) $(INSTALLDIRS)
> 
> And for the normal build and install, somehow that $(Q) is not being
> obeyed there, so I'm using straight @ for now so that we have a clean
> output, someone more knowledgeable in the Makefile voodoo can then fix
> it.
> 
> ⬢[acme@toolbox perf]$ git log --oneline -1
> e1700b67a41092a5 (HEAD) perf test: Add build infra for perf test tools for ARM CoreSight tests
> ⬢[acme@toolbox perf]$ git diff
> diff --git a/tools/perf/tests/shell/coresight/Makefile b/tools/perf/tests/shell/coresight/Makefile
> index 6baab5cbaa9aa3b1..6f3b3f07049c2d53 100644
> --- a/tools/perf/tests/shell/coresight/Makefile
> +++ b/tools/perf/tests/shell/coresight/Makefile
> @@ -8,13 +8,13 @@ SUBDIRS =
> 
>   all: $(SUBDIRS)
>   $(SUBDIRS):
> -       $(Q)$(MAKE) -C $@
> +       @$(MAKE) -C $@

DOn't you want to prefix this with + too (to preserve jobserver, i.e. 
parallel builds)?

Re the Q -- is it exported? What is printed with echo $(Q).

> 
>   INSTALLDIRS = $(SUBDIRS:%=install-%)
> 
>   install-tests: $(INSTALLDIRS)
>   $(INSTALLDIRS):
> -       $(Q)$(MAKE) -C $(@:install-%=%) install-tests
> +       @$(MAKE) -C $(@:install-%=%) install-tests >/dev/null
> 
>   CLEANDIRS = $(SUBDIRS:%=clean-%)
> 
> ⬢[acme@toolbox perf]$

-- 
js