Web lists-archives.com

Re: [GIT PULL 00/28] perf/core fixes and cleanups




* Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:

> Hi Ingo,
> 
> 	Please consider pulling,
> 
> - Arnaldo
> 
> Test results at the end of this message, as usual.
> 
> The following changes since commit e720c19e0d5412f45736d62258d21dc7b056c4ad:
> 
>   Merge tag 'perf-core-for-mingo-4.12-20170413' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-04-17 10:11:09 +0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170419
> 
> for you to fetch changes up to 1b5ad16c7aa7177512ce141e345ff36b9f1a6136:
> 
>   perf tools: Ditch unused strchrnul() reimplementation (2017-04-19 13:01:57 -0300)
> 
> ----------------------------------------------------------------
> perf/core cleanups: (Arnaldo Carvalho de Melo)
> 
> . Introduce new header files out of the hodge-podge that util/util.h
>   became, trying to disentangle the includes hell that all C projects
>   end up growing. This should help in build times, as changes to
>   seemingly unrelated files (util.h included tons of headers) won't
>   trigger a rebuild of most object files.
> 
> . Use equivalent facilities found in the kernel source code base
>   originated tools/include/ header files, such as __stringify(),
>   ARRAY_SIZE, that has extra checks (__must_be_array()), etc.
> 
> . For that get some more files from the kernel sources, like
>   include/linux/bug.h, some just with the bits needed at this time.
> 
> . Use the headers where facilities declared in them are used, such
>   as PRIxu(32,64) macros (inttypes.h), errno defines (errno.h), etc.
> 
> . Remove various leftovers from the initial code base we copied from
>   git.git: FLEX_ARRAY, etc.
> 
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> 
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (28):
>       perf unwind arm64: Add missing errno.h header
>       perf tools: Remove FLEX_ARRAY definition
>       tools include: Introduce linux/bug.h, from the kernel sources
>       tools include: Adopt __same_type() and __must_be_array() from the kernel
>       tools include: Move ARRAY_SIZE() to linux/kernel.h
>       perf tools: Add include <linux/kernel.h> where ARRAY_SIZE() is used
>       objtool: Drop ARRAY_SIZE() definition, tools/include/linux/kernel.h has it now
>       tools include: Drop ARRAY_SIZE() definition from linux/hashtable.h
>       perf tools: Remove unused macros from util.h
>       perf tools: Including missing inttypes.h header
>       perf tools: Remove PRI[xu] macros from perf.h
>       perf tools: Replace STR() calls with __stringify()
>       perf tools: Ditch unused PATH_SEP, STRIP_EXTENSION
>       perf tools: Move sane ctype stuff from util.h to sane_ctype.h
>       tools include: Include missing headers for fls() and types in linux/log2.h
>       perf tools: Move print_binary definitions to separate files
>       perf tools: Move srcline definitions to separate header
>       perf tools: Move extra string util functions to util/string2.h
>       perf tools: Include errno.h where needed
>       perf str{filter,list}: Disentangle headers
>       perf tools: Don't include terminal handling headers in util.h
>       perf tools: Move path related functions to util/path.h
>       perf tools: No need to include bitops.h in util.h
>       perf tools: Use api/fs/tracing_path.h where needed
>       perf tools: Remove misplaced __maybe_unused in some functions
>       perf tools: Remove include dirent.h from util.h
>       perf tools: Remove regex.h and fnmatch.h from util.h
>       perf tools: Ditch unused strchrnul() reimplementation
> 
>  tools/include/linux/bug.h                          |  10 +
>  tools/include/linux/compiler-gcc.h                 |   3 +
>  tools/include/linux/compiler.h                     |   5 +
>  tools/include/linux/hashtable.h                    |   4 -
>  tools/include/linux/kernel.h                       |   3 +
>  tools/include/linux/log2.h                         |   3 +
>  tools/lib/symbol/kallsyms.c                        |   1 +
>  tools/objtool/builtin-check.c                      |   3 +-
>  tools/objtool/objtool.c                            |   3 +-
>  tools/perf/MANIFEST                                |   1 +
>  tools/perf/arch/arm/util/dwarf-regs.c              |   4 +-
>  tools/perf/arch/arm64/util/dwarf-regs.c            |   4 +-
>  tools/perf/arch/arm64/util/unwind-libunwind.c      |   2 +-
>  tools/perf/arch/common.c                           |   2 +
>  tools/perf/arch/powerpc/util/dwarf-regs.c          |   5 +-
>  tools/perf/arch/powerpc/util/kvm-stat.c            |   1 +
>  tools/perf/arch/powerpc/util/perf_regs.c           |   1 +
>  tools/perf/arch/s390/util/kvm-stat.c               |   1 +
>  tools/perf/arch/x86/tests/intel-cqm.c              |   1 +
>  tools/perf/arch/x86/tests/perf-time-to-tsc.c       |   2 +
>  tools/perf/arch/x86/util/auxtrace.c                |   1 +
>  tools/perf/arch/x86/util/intel-bts.c               |   1 +
>  tools/perf/arch/x86/util/intel-pt.c                |   1 +
>  tools/perf/arch/x86/util/kvm-stat.c                |   1 +
>  tools/perf/arch/x86/util/perf_regs.c               |   1 +
>  tools/perf/bench/mem-functions.c                   |   1 +
>  tools/perf/bench/numa.c                            |   2 +
>  tools/perf/builtin-annotate.c                      |   1 +
>  tools/perf/builtin-buildid-cache.c                 |   1 +
>  tools/perf/builtin-buildid-list.c                  |   1 +
>  tools/perf/builtin-c2c.c                           |   2 +
>  tools/perf/builtin-diff.c                          |   2 +
>  tools/perf/builtin-ftrace.c                        |   2 +
>  tools/perf/builtin-help.c                          |   6 +-
>  tools/perf/builtin-inject.c                        |   1 +
>  tools/perf/builtin-kallsyms.c                      |   1 +
>  tools/perf/builtin-kmem.c                          |   5 +
>  tools/perf/builtin-kvm.c                           |   4 +
>  tools/perf/builtin-lock.c                          |   3 +
>  tools/perf/builtin-mem.c                           |   1 +
>  tools/perf/builtin-record.c                        |   2 +
>  tools/perf/builtin-report.c                        |   4 +-
>  tools/perf/builtin-sched.c                         |   5 +
>  tools/perf/builtin-script.c                        |   8 +
>  tools/perf/builtin-stat.c                          |   5 +
>  tools/perf/builtin-timechart.c                     |   4 +-
>  tools/perf/builtin-top.c                           |   3 +
>  tools/perf/builtin-trace.c                         |   8 +
>  tools/perf/perf.c                                  |  12 +-
>  tools/perf/tests/attr.c                            |   2 +
>  tools/perf/tests/backward-ring-buffer.c            |   1 +
>  tools/perf/tests/bpf.c                             |   2 +
>  tools/perf/tests/builtin-test.c                    |   2 +
>  tools/perf/tests/clang.c                           |   1 +
>  tools/perf/tests/code-reading.c                    |   6 +-
>  tools/perf/tests/dso-data.c                        |   2 +
>  tools/perf/tests/dwarf-unwind.c                    |   1 +
>  tools/perf/tests/event-times.c                     |   2 +
>  tools/perf/tests/evsel-roundtrip-name.c            |   2 +
>  tools/perf/tests/hists_common.c                    |   2 +
>  tools/perf/tests/hists_cumulate.c                  |   1 +
>  tools/perf/tests/hists_filter.c                    |   1 +
>  tools/perf/tests/hists_link.c                      |   2 +
>  tools/perf/tests/hists_output.c                    |   1 +
>  tools/perf/tests/is_printable_array.c              |   3 +-
>  tools/perf/tests/mmap-basic.c                      |   3 +
>  tools/perf/tests/mmap-thread-lookup.c              |   2 +
>  tools/perf/tests/openat-syscall-all-cpus.c         |   6 +
>  tools/perf/tests/openat-syscall-tp-fields.c        |   1 +
>  tools/perf/tests/openat-syscall.c                  |   5 +
>  tools/perf/tests/parse-events.c                    |   5 +-
>  tools/perf/tests/parse-no-sample-id-all.c          |   1 +
>  tools/perf/tests/perf-record.c                     |   2 +
>  tools/perf/tests/pmu.c                             |   2 +
>  tools/perf/tests/sample-parsing.c                  |   2 +
>  tools/perf/tests/sdt.c                             |   1 +
>  tools/perf/tests/sw-clock.c                        |   2 +
>  tools/perf/tests/switch-tracking.c                 |   1 +
>  tools/perf/tests/task-exit.c                       |   1 +
>  tools/perf/tests/unit_number__scnprintf.c          |   1 +
>  tools/perf/tests/vmlinux-kallsyms.c                |   1 +
>  tools/perf/ui/browser.c                            |   2 +
>  tools/perf/ui/browsers/annotate.c                  |   3 +
>  tools/perf/ui/browsers/header.c                    |   2 +
>  tools/perf/ui/browsers/hists.c                     |   8 +
>  tools/perf/ui/browsers/map.c                       |   2 +
>  tools/perf/ui/gtk/annotate.c                       |   2 +-
>  tools/perf/ui/gtk/hists.c                          |   1 +
>  tools/perf/ui/hist.c                               |   1 +
>  tools/perf/ui/setup.c                              |   1 +
>  tools/perf/ui/stdio/hist.c                         |   4 +-
>  tools/perf/ui/tui/setup.c                          |   1 +
>  tools/perf/util/Build                              |   1 +
>  tools/perf/util/annotate.c                         |   6 +
>  tools/perf/util/auxtrace.c                         |   6 +-
>  tools/perf/util/auxtrace.h                         |   1 +
>  tools/perf/util/bpf-loader.c                       |   3 +
>  tools/perf/util/bpf-loader.h                       |   2 +
>  tools/perf/util/bpf-prologue.c                     |   1 +
>  tools/perf/util/bpf-prologue.h                     |   2 +
>  tools/perf/util/build-id.c                         |   9 +-
>  tools/perf/util/build-id.h                         |   4 +-
>  tools/perf/util/c++/clang-c.h                      |   1 +
>  tools/perf/util/callchain.c                        |   1 +
>  tools/perf/util/cgroup.c                           |   5 +-
>  tools/perf/util/cloexec.c                          |   1 +
>  tools/perf/util/comm.c                             |   1 +
>  tools/perf/util/config.c                           |   3 +
>  tools/perf/util/counts.c                           |   2 +
>  tools/perf/util/cpumap.c                           |   3 +
>  tools/perf/util/ctype.c                            |   2 +-
>  tools/perf/util/data-convert-bt.c                  |   4 +
>  tools/perf/util/data.c                             |   1 +
>  tools/perf/util/debug.c                            |   4 +
>  tools/perf/util/demangle-java.c                    |   2 +
>  tools/perf/util/drv_configs.c                      |   1 +
>  tools/perf/util/dso.c                              |   4 +
>  tools/perf/util/dwarf-aux.c                        |   3 +
>  tools/perf/util/dwarf-regs.c                       |   1 +
>  tools/perf/util/env.c                              |   1 +
>  tools/perf/util/event.c                            |   7 +-
>  tools/perf/util/evlist.c                           |   2 +
>  tools/perf/util/evlist.h                           |   1 +
>  tools/perf/util/evsel.c                            |   4 +
>  tools/perf/util/evsel_fprintf.c                    |   2 +
>  tools/perf/util/header.c                           |   5 +
>  tools/perf/util/hist.c                             |   2 +
>  tools/perf/util/intel-bts.c                        |   2 +
>  tools/perf/util/intel-pt.c                         |   1 +
>  tools/perf/util/jitdump.c                          |   7 +-
>  tools/perf/util/lzma.c                             |   1 +
>  tools/perf/util/machine.c                          |   8 +-
>  tools/perf/util/map.c                              |   2 +-
>  tools/perf/util/mem-events.c                       |   1 +
>  tools/perf/util/ordered-events.c                   |   2 +
>  tools/perf/util/parse-events.c                     |   7 +-
>  tools/perf/util/path.c                             |  28 ++-
>  tools/perf/util/path.h                             |   9 +
>  tools/perf/util/perf-hooks.c                       |   1 +
>  tools/perf/util/pmu.c                              |   2 +
>  tools/perf/util/print_binary.c                     |  55 +++++
>  tools/perf/util/print_binary.h                     |  28 +++
>  tools/perf/util/probe-event.c                      |   5 +
>  tools/perf/util/probe-event.h                      |   7 +-
>  tools/perf/util/probe-file.c                       |   3 +
>  tools/perf/util/probe-file.h                       |   6 +-
>  tools/perf/util/probe-finder.c                     |   3 +
>  tools/perf/util/probe-finder.h                     |   2 +-
>  tools/perf/util/python-ext-sources                 |   1 +
>  tools/perf/util/python.c                           |   1 +
>  tools/perf/util/quote.c                            |   1 +
>  tools/perf/util/record.c                           |   1 +
>  tools/perf/util/sane_ctype.h                       |  51 +++++
>  .../perf/util/scripting-engines/trace-event-perl.c |   1 +
>  .../util/scripting-engines/trace-event-python.c    |   2 +
>  tools/perf/util/session.c                          |   2 +
>  tools/perf/util/session.h                          |   1 +
>  tools/perf/util/sort.c                             |   5 +
>  tools/perf/util/sort.h                             |   4 +-
>  tools/perf/util/srcline.c                          |   2 +
>  tools/perf/util/srcline.h                          |  34 +++
>  tools/perf/util/stat.c                             |   2 +
>  tools/perf/util/strbuf.c                           |   1 +
>  tools/perf/util/strfilter.c                        |   5 +-
>  tools/perf/util/string.c                           |  18 +-
>  tools/perf/util/string2.h                          |  42 ++++
>  tools/perf/util/symbol-elf.c                       |   3 +-
>  tools/perf/util/symbol-minimal.c                   |   1 +
>  tools/perf/util/symbol.c                           |   3 +
>  tools/perf/util/symbol.h                           |   2 +-
>  tools/perf/util/term.c                             |   6 +-
>  tools/perf/util/thread-stack.c                     |   1 +
>  tools/perf/util/thread.c                           |   2 +
>  tools/perf/util/thread_map.c                       |   2 +
>  tools/perf/util/trace-event-parse.c                |   3 +-
>  tools/perf/util/unwind-libdw.c                     |   1 +
>  tools/perf/util/unwind-libunwind-local.c           |   2 +
>  tools/perf/util/util.c                             |  64 +-----
>  tools/perf/util/util.h                             | 249 +--------------------
>  tools/perf/util/vdso.c                             |   2 +-
>  180 files changed, 659 insertions(+), 376 deletions(-)
>  create mode 100644 tools/include/linux/bug.h
>  create mode 100644 tools/perf/util/path.h
>  create mode 100644 tools/perf/util/print_binary.c
>  create mode 100644 tools/perf/util/print_binary.h
>  create mode 100644 tools/perf/util/sane_ctype.h
>  create mode 100644 tools/perf/util/srcline.h
>  create mode 100644 tools/perf/util/string2.h

Pulled, thanks a lot Arnaldo!

> For this specific pull request the samples/bpf/ was disabled, as 'make headers_install'
> is failing with the following error, in this case in fedora:rawhide:
>   
>     INSTALL usr/include/uapi/ (0 file)
>   /git/linux/scripts/Makefile.headersinst:62: *** Missing generated UAPI file 
./arch/x86/include/generated/uapi/asm/unistd_32.h.  Stop.
>   make[1]: *** [/git/linux/Makefile:1151: headers_install] Error 2
>   make[1]: Leaving directory '/tmp/build/linux'
>   make: *** [Makefile:152: sub-make] Error 2
>   make: Leaving directory '/git/linux'

Beyond this build fix, could we also do a header file synchronization round:

 Warning: include/uapi/linux/stat.h differs from kernel
 Warning: arch/x86/include/asm/cpufeatures.h differs from kernel
 Warning: arch/x86/lib/memcpy_64.S differs from kernel

... so that Linus does not see these warnings when pulling these bits in the merge 
window?

Thanks,

	Ingo