Re: [GIT PULL 00/27] perf/core2 improvements and fixes
From: Ingo Molnar
Date: Tue Sep 15 2015 - 02:53:47 EST
* Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
> From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> Hi Ingo,
>
> Please consider pulling, this should have all the issues related to
> that 'socket' sort order/filter fixed. I reordered some patches I did to
> get the right infrastructure in place and merged a few fixes from me, Jiri,
> so that we have a clean bisect history wrt this feature.
>
> I tested it using old perf.data files with no cpu->socket_id header,
> perf top, and the reported problems from you, from Wang, the ones I found seem
> to be all fixed. I also built tested it in a few systems, fixing problems, for
> instance with using a 'socket' variable name that was shadowing a glibc decl.
>
> We still have problems tho when there are offline CPUs, but that is a
> longstanding problem from the days when Stephane added that code and only
> affects the perf.data case, i.e. when generating the CPU topology perf.data
> header it bails out (but doesn't segfaults, its just the mapping that is lost)
> as soon as it fails to find files that don't exist when a CPU is offline.
>
> I.e.:
>
> perf record -a usleep 1; perf report -s socket
>
> Will show -1 for the socket info, but at least that doesn't cause
> a segfault anymore ;-)
>
> perf top -s socket
>
> Works tho when CPUs are offline.
>
> I will try and fix that other problem, but I wanted to get what is
> in perf/core2 flushed so that I can process some more outstanding patches, to
> avoid stalling too many downstreamers.
>
> Some of these other patches I want to process include fixes for
> perf/urgent, like some from Wang, etc.
>
> - Arnaldo
>
> The following changes since commit 8f3e5684d3fbd91ead283916676fa3dac22615e5:
>
> perf/core: Drop PERF_EVENT_TXN (2015-09-13 11:27:30 +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-2
>
> for you to fetch changes up to 92d424ae898e0d04ac34263aa33e40acc1e1f3d1:
>
> perf test: Add entry for hists socket filter (2015-09-14 13:04:10 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Add 'socket' sort entry, to sort by the processor socket in
> 'perf top' and 'perf report' (Kan Liang)
>
> - Introduce --socket-filter to 'perf report', for filtering by processor
> socket (Kan Liang)
>
> - Add new "Zoom into Processor Socket" operation in the perf hists browser,
> used in 'perf top' and 'perf report' (Kan Liang)
>
> - Fix the 'CPU' hist browser column width calculation (Arnaldo Carvalho de Melo)
>
> Infrastructure:
>
> - 'perf test' fixes for the object code reading entry (Jan Stancek)
>
> - Add processor socket and cpu topology 'perf test' entries (Kan Liang)
>
> - Introduce more sysfs__read_TYPE() helpers (Arnaldo Carvalho de Melo)
>
> - Group cpu information reading functions in tools/lib/api/cpu.[ch],
> starting with cpu__get_max_freq() from a patchkit by Kan Liang
> (Arnaldo Carvalho de Melo)
>
> - Retrieve the MSR PMU type from a perf.data file header and store it
> in struct perf_env (Kan Liang)
>
> - Add tools/include into CTAGS file list (Jiri Olsa)
>
> - Add iterator function for perf tests (Matt Fleming)
>
> - Switch to tracing_patch interface (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (10):
> perf env: Move perf_env out of header.h and session.c into separate object
> perf env: Rename some leftovers from rename to perf_env
> perf env: Adopt perf_header__set_cmdline
> perf hists browser: Fixup the "cpu" column width calculation
> perf evsel: Remove forward declaration of 'struct perf_evlist'
> tools lib api fs: Introduce sysfs__read_{int,ull}()
> tools lib api cpu: Introduce cpu.[ch] to obtain cpu related information
> perf cpu_map: Use sysfs__read_int in get_{core,socket}_id()
> perf env: Introduce read_cpu_topology_map() method
> perf machine: Add pointer to sample's environment
>
> Jan Stancek (4):
> perf tests: Take into account address of each objdump line
> perf tests: Make objdump disassemble zero blocks
> perf tests: Stop reading if objdump output crossed sections
> perf tests: Print objdump/dso buffers if they don't match
>
> Jiri Olsa (5):
> tools lib api fs: Make tracing_path_strerror_open message generic
> tools lib api fs: Replace debugfs/tracefs objects interface with fs.c
> tools lib api fs: Remove debugfs, tracefs and findfs objects
> perf tools: Switch to tracing_path interface on appropriate places
> perf tools: Add tools/include into tags directories
>
> Kan Liang (7):
> perf test: Add entry to test cpu topology
> perf env: Read msr pmu type from header
> perf tools: Add processor socket info to hist_entry and addr_location
> perf tools: Introduce new sort type "socket" for the processor socket
> perf report: Introduce --socket-filter option
> perf hists browser: Zoom in/out for processor socket
> perf test: Add entry for hists socket filter
>
> Matt Fleming (1):
> perf tests: Introduce iterator function for tests
>
> tools/lib/api/Build | 1 +
> tools/lib/api/cpu.c | 18 +++++
> tools/lib/api/cpu.h | 6 ++
> tools/lib/api/fs/Build | 3 -
> tools/lib/api/fs/debugfs.c | 77 -------------------
> tools/lib/api/fs/debugfs.h | 23 ------
> tools/lib/api/fs/findfs.c | 63 ----------------
> tools/lib/api/fs/findfs.h | 23 ------
> tools/lib/api/fs/fs.c | 46 +++++++++++-
> tools/lib/api/fs/fs.h | 4 +
> tools/lib/api/fs/tracefs.c | 78 -------------------
> tools/lib/api/fs/tracefs.h | 21 ------
> tools/lib/api/fs/tracing_path.c | 35 +++++----
> tools/perf/Documentation/perf-report.txt | 6 +-
> tools/perf/Makefile.perf | 2 +-
> tools/perf/arch/common.c | 10 +--
> tools/perf/arch/common.h | 4 +-
> tools/perf/builtin-annotate.c | 2 +-
> tools/perf/builtin-kvm.c | 1 -
> tools/perf/builtin-probe.c | 1 -
> tools/perf/builtin-report.c | 11 +++
> tools/perf/builtin-top.c | 17 ++++-
> tools/perf/perf.c | 2 +
> tools/perf/tests/Build | 1 +
> tools/perf/tests/builtin-test.c | 36 +++++----
> tools/perf/tests/code-reading.c | 74 +++++++++++++++----
> tools/perf/tests/hists_filter.c | 55 +++++++++++---
> tools/perf/tests/openat-syscall-all-cpus.c | 10 +--
> tools/perf/tests/openat-syscall.c | 10 +--
> tools/perf/tests/parse-events.c | 19 +----
> tools/perf/tests/tests.h | 1 +
> tools/perf/tests/topology.c | 115 +++++++++++++++++++++++++++++
> tools/perf/ui/browsers/hists.c | 61 +++++++++++++--
> tools/perf/util/Build | 1 +
> tools/perf/util/cpumap.c | 46 +++---------
> tools/perf/util/env.c | 86 +++++++++++++++++++++
> tools/perf/util/env.h | 44 +++++++++++
> tools/perf/util/event.c | 8 ++
> tools/perf/util/evsel.c | 2 +-
> tools/perf/util/evsel.h | 1 -
> tools/perf/util/header.c | 76 ++++++-------------
> tools/perf/util/header.h | 33 +--------
> tools/perf/util/hist.c | 38 ++++++++++
> tools/perf/util/hist.h | 6 +-
> tools/perf/util/machine.c | 1 +
> tools/perf/util/machine.h | 1 +
> tools/perf/util/parse-options.c | 2 +-
> tools/perf/util/probe-event.c | 5 +-
> tools/perf/util/probe-file.c | 15 +---
> tools/perf/util/session.c | 22 +-----
> tools/perf/util/sort.c | 25 +++++++
> tools/perf/util/sort.h | 3 +
> tools/perf/util/symbol.h | 1 +
> tools/perf/util/util.h | 3 +-
> 54 files changed, 700 insertions(+), 555 deletions(-)
> create mode 100644 tools/lib/api/cpu.c
> create mode 100644 tools/lib/api/cpu.h
> delete mode 100644 tools/lib/api/fs/debugfs.c
> delete mode 100644 tools/lib/api/fs/debugfs.h
> delete mode 100644 tools/lib/api/fs/findfs.c
> delete mode 100644 tools/lib/api/fs/findfs.h
> delete mode 100644 tools/lib/api/fs/tracefs.c
> delete mode 100644 tools/lib/api/fs/tracefs.h
> create mode 100644 tools/perf/tests/topology.c
> create mode 100644 tools/perf/util/env.c
> create mode 100644 tools/perf/util/env.h
Pulled, thanks a lot Arnaldo!
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/