Re: [PATCH] perf, tools, report: Add support for srcfile sort key

Arnaldo Carvalho de Melo
2015-08-08T00:02:34Z

Em Fri, Aug 07, 2015 at 08:51:45PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Aug 07, 2015 at 03:54:24PM -0700, Andi Kleen escreveu:
> > From: Andi Kleen <ak@linux.intel.com>
> >
> > In some cases it's useful to characterize samples by file. This is useful
> > to get a higher level categorization, for example to map cost to
> > subsystems.
> >
> > Add a srcfile sort key to perf report. It builds on top of the existing
> > srcline support.
>
> Applied

Humm, holding this up a bit, further testing showed some oddities,
fedora21, the width of the column is being limited to the lenght of the
header and there are some DWARF errors, have you noticed those?

[root@zoo ~]# rpm -q binutils-devel
binutils-devel-2.24-32.fc21.x86_64

# perf report --stdio -s srcfile
Failed to open /tmp/perf-2268.map, continuing without symbols
# To display the perf.data header info, please use --header/--header-only options.
#
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (111062) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (111062) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (22876).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (113124) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (58380) greater than or equal to .debug_str size (17648).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (70405) greater than or equal to .debug_str size (58106).
BFD: Dwarf Error: Offset (124839) greater than or equal to .debug_str size (58106).
#
# Total Lost Samples: 0
#
# Samples: 7K of event 'cycles'
# Event count (approx.): 1770111576
#
# Overhead Source File
# ........ ...........
#
31.99%
7.97% .
6.79% processor.h
3.69% fair.c
2.74% gmain.c
1.73% gtype.c
1.40% core.c
1.23% atomic64_64
1.22% qspinlock.h
1.16% i915_gem.c
1.09% ghash.c
1.07% gthread-pos
1.06% bitops.h
1.06% malloc.c
1.06% af_unix.c
1.03% select.c
0.99% gslice.c
0.80% hrtimer.c
0.78% socket.c
0.67% paravirt.h
0.66% entry_64.S
0.62% hooks.c
0.61% gsignal.c
0.57% intel_ringb
0.55% timekeeping
0.54% slub.c
0.53% timerqueue.
0.52% menu.c
0.52% file.c
0.50% tree.c
0.47% compiler.h
0.46% tick-sched.
0.46% msr.h
0.39% busy_poll.h
0.39% int_sqrt.c
0.36% atomic.h
0.35% gobject.c
0.35% read_write.
0.33% garray.c
0.32% xcb_io.c
0.32% wait.c
0.31% copy_user_6
0.30% dbus-marsha
0.29% rbtree.c
0.29% skbuff.c
0.28% dbus-marsha
0.27% spinlock.c
0.27% iov_iter.c
0.26% avc.c
0.26% list_debug.
0.26% giochannel.
0.24% cairo-gstat
0.24% dbus-string
0.23% cpuidle.c
0.23% page_alloc.
0.22% tsc.c
0.21% gvariant-co
0.20% process_64.
0.19% gbsearcharr
0.18% sock.c
0.18% timer.c
0.18% dbus-connec
0.18% dbus-marsha
0.17% fsnotify.c
0.17% iomap.c
0.17% gutf8.c
0.17% dbus-list.c
0.16% cairo-path-
0.16% gbitlock.c
0.16% srcu.c
0.16% gdataset.c
0.16% intel_uncor
0.16% gvarianttyp
0.15% futex.c
0.15% sched.h
0.15% gslist.c
0.15% clock.c
0.15% XlibInt.c
0.15% gclosure.c
0.14% gmem.c
0.14% n_tty.c
0.14% eventfd.c
0.14% datagram.c
0.14% security.c
0.14% mutex_64.h
0.14% sock.h
0.14% dbus-messag
0.14% idle.c
0.13% internal.h
0.13% page_64.h
0.12% current.h
0.12% vmalloc.c
0.12% notifier.c
0.12% gvariant.c
0.12% gdbusprivat
0.11% i915_drv.h
0.11% intel_idle.
0.11% rbtree_augm
0.11% mutex.c
0.11% gsimpleasyn
0.11% cairo-regio
0.10% cairo-hash.
0.10% gqueue.c
0.10% input.c
0.10% preempt.h
0.10% mm.h
0.10% cairo-clip-
0.10% dbus-mempoo
0.09% idle_task.c
0.09% rt.c
0.09% dbus-mainlo
0.09% tick-onesho
0.09% dbus-transp
0.09% softirq.c
0.09% cairo-xlib-
0.09% workqueue.c
0.09% cairo-matri
0.08% dbus-marsha
0.08% dbus-resour
0.08% seqlock.h
0.08% gvaluetypes
0.08% cairo-surfa
0.08% glist.c
0.08% connection.
0.08% giounix.c
0.08% tty_io.c
0.08% stats.h
0.08% i915_cmd_pa
0.08% cairo.c
0.08% gvalue.c
0.07% mmzone.h
0.07% apic.c
0.07% gvarianttyp
0.07% gdbusmessag
0.07% gdbusconnec
0.07% ktime.h
0.07% string3.h
0.07% mempolicy.c
0.07% list.h
0.07% desc.h
0.07% mmap.c
0.06% loadavg.c
0.06% tree_plugin
0.06% gstring.c
0.06% cputime.c
0.06% cairo-scale
0.06% perf_event_
0.06% mmu_context
0.06% FilterEv.c
0.06% signal.c
0.06% eventpoll.c
0.06% gparam.c
0.06% locking.c
0.06% garbage.c
0.06% uaccess.h
0.06% irq_work.c
0.06% namei.c
0.06% Pending.c
0.06% cairo-surfa
0.06% i915_gem_ex
0.06% nmi.c
0.06% dbus-timeou
0.06% avtab.c
0.05% fdtable.h
0.05% pango-layou
0.05% drm_crtc.c
0.05% cgroup.h
0.05% gquark.c
0.05% kthread.c
0.05% i915_gem_co
0.05% driver.c
0.05% i915_irq.c
0.05% rx.c
0.05% smp.c
0.05% scm.h
0.05% dcache.c
0.05% cairo-color
0.04% cairo-bentl
0.04% skbuff.h
0.04% gapplicatio
0.04% clockevents
0.04% file.h
0.04% drm_fops.c
0.04% slab_common
0.04% cairo-boxes
0.04% gwakeup.c
0.04% vmstat.c
0.04% crc32.c
0.04% find_bit.c
0.04% dbus-socket
0.04% qspinlock.c
0.04% memcpy_64.S
0.04% dbus-sysdep
0.04% vsprintf.c
0.04% file_table.
0.04% poll.h
0.04% cpuacct.c
0.04% stop_task.c
0.04% x86.c
0.04% fsnotify.h
0.04% policy.c
0.04% watchdog.c
0.04% math64.h
0.04% gsocket.c
0.04% gdbusinterf
0.04% ptthread.c
0.04% mmzone.c
0.04% time.c
0.04% cairoint.h
0.04% gdbusintros
0.03% s_sin-avx.c
0.03% spinlock.h
0.03% guniprop.c
0.03% unistd.h
0.03% gmarshal.c
0.03% cairo-traps
0.03% radix-tree.
0.03% signals.c
0.03% main.c
0.03% dbus-creden
0.03% hcd.c
0.03% gvariant-se
0.03% kernel_stat
0.03% bus.c
0.03% cairo-defau
0.03% cairo-freed
0.03% CrGC.c
0.03% posix-cpu-t
0.03% tty_ldsem.c
0.03% NextEvent.c
0.03% pty.c
0.03% JSAutoCompa
0.03% gprintf.c
0.03% poll2.h
0.03% context.h
0.03% pangofc-fon
0.03% af_netlink.
0.03% vsyscall_gt
0.03% hrtimer.h
0.03% printk.c
0.03% cairo-xlib-
0.03% seq_file.c
0.03% cairo-patte
0.03% process.c
0.03% deadline.c
0.03% intel_displ
0.03% jiffies.h
0.03% dl-lookup.c
0.03% flex_array.
0.03% services.c
0.02% prtpd.c
0.02% cairo-devic
0.02% dnotify.c
0.02% scan.c
0.02% cairo-clip.
0.02% profile.c
0.02% cairo-array
0.02% blkdev.h
0.02% uprobes.c
0.02% gfp.h
0.02% cairo-traps
0.02% cairo-strok
0.02% FillRect.c
0.02% mutex.h
0.02% ghook.c
0.02% dbus-transp
0.02% perf_event.
0.02% mprotect.c
0.02% pango-impl-
0.02% journal.c
0.02% rbtree.h
0.02% namespace.c
0.02% mwait.h
0.02% memset_64.S
0.02% gboxed.c
0.02% handle.c
0.02% Xrender.c
0.02% gthread.c
0.02% drm_irq.c
0.02% memory.c
0.02% ehci-hcd.c
0.02% dbus-errors
0.02% tlb.c
0.02% tsacct.c
0.02% hid-apple.c
0.02% qos.c
0.02% open.c
0.02% ErrHndlr.c
0.02% cpumask.h
0.02% gioerror.c
0.02% urb.c
0.02% pid.c
0.02% blk-core.c
0.02% cairo-bentl
0.02% wait.h
0.02% irq_regs.h
0.02% dma.c
0.02% topology.h
0.02% FreePix.c
0.02% selinux.c
0.02% intel_pstat
0.02% cairo-slope
0.02% pipe.c
0.02% fcntl.c
0.02% ntp.c
0.02% pangocairo-
0.02% atkplug.c
0.02% cfq-iosched
0.02% shmem.c
0.02% basic-fc.c
0.02% seccomp.c
0.02% ptrace.h
0.02% drm_gem.c
0.02% commoncap.c
0.02% cpumask.c
0.02% gtimer.c
0.02% dbus-thread
0.01% base.c
0.01% tty_buffer.
0.01% sysrq.c
0.01% iommu-helpe
0.01% cairo-boxes
0.01% drm_modeset
0.01% gdbusproxy.
0.01% atkobject.c
0.01% pgtable.c
0.01% ffi64.c
0.01% mac80211_if
0.01% cairo-gstat
0.01% cairo-arc.c
0.01% cairo-ft-fo
0.01% gbytes.c
0.01% hid-core.c
0.01% tick-broadc
0.01% scsi.c
0.01% dbus-datasl
0.01% page-io.c
0.01% intel_front
0.01% swap.c
0.01% XlibAsync.c
0.01% intel_pm.c
0.01% intel_ringb
0.01% sn-list.c
0.01% locks.c
0.01% putuser.S
0.01% dbus-signat
0.01% cairo-xlib-
0.01% cairo-misc.
0.01% highmem.h
0.01% blk-integri
0.01% random.c
0.01% cairo-recta
0.01% memmove_64.
0.01% gdk-pixbuf.
0.01% Picture.c
0.01% pango-attri
0.01% usercopy_64
0.01% hid-input.c
0.01% tty_ldisc.c
0.01% perf_event_
0.01% blk-throttl
0.01% time.h
0.01% gsourceclos
0.01% physaddr.c
0.01% drm_ioctl.c
0.01% pango-conte
0.01% drm_modes.c
0.01% avc.h
0.01% qrwlock.h
0.01% apic.h
0.01% spinlock_ap
0.01% crc16.c
0.01% i915_drv.c
0.01% cpufeature.
0.01% dbus-sysdep
0.01% mount.h
0.01% jump_label.
0.01% revoke.c
0.01% blk.h
0.01% signal.h
0.01% ehci-q.c
0.01% tlbflush.h
0.01% list.cc
0.01% dbus-gmain.
0.01% scsi_lib.c
0.01% dbus-hash.c
0.01% GetEventDat
0.01% mlme.c
0.01% iface.c
0.01% io.h
0.01% dbus-watch.
0.01% page-flags.
0.01% sn-monitor.
0.01% task_work.c
0.01% evdev.c
0.01% cairo-obser
0.01% Macros.c
0.01% drm_atomic_
0.01% dbus-socket
0.01% itimer.c
0.01% gtestutils.
0.01% spurious.c
0.01% super.c
0.01% inode.c
0.01% rtnetlink.c
0.01% physaddr.h
0.01% unix64.S