Jiri Olsa
313ccb9615
perf: Allocate context task_ctx_data for child event
...
Currently we use perf_event_context::task_ctx_data to save and restore
the LBR status when the task is scheduled out and in.
We don't allocate it for child contexts, which results in shorter task's
LBR stack, because we don't save the history from previous run and start
over every time we schedule the task in.
I made a test to generate samples with LBR call stack and got higher
numbers on bigger chain depths:
before: after:
LBR call chain: nr: 1 60561 498127
LBR call chain: nr: 2 0 0
LBR call chain: nr: 3 107030 2172
LBR call chain: nr: 4 466685 62758
LBR call chain: nr: 5 2307319 878046
LBR call chain: nr: 6 48713 495218
LBR call chain: nr: 7 1040 4551
LBR call chain: nr: 8 481 172
LBR call chain: nr: 9 878 120
LBR call chain: nr: 10 2377 6698
LBR call chain: nr: 11 28830 151487
LBR call chain: nr: 12 29347 339867
LBR call chain: nr: 13 4 22
LBR call chain: nr: 14 3 53
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Fixes: 4af57ef28c ("perf: Add pmu specific data for perf task context")
Link: http://lkml.kernel.org/r/20180107160356.28203-4-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2018-01-08 12:26:46 -03:00
..
bpf
bpf: do not allow root to mangle valid pointers
2017-12-21 02:26:29 +01:00
cgroup
Revert "cgroup/cpuset: remove circular dependency deadlock"
2017-12-04 14:55:59 -08:00
configs
ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
2017-08-22 18:43:23 -07:00
debug
kdb: Fix handling of kallsyms_symbol_next() return value
2017-12-06 16:12:43 -06:00
events
perf: Allocate context task_ctx_data for child event
2018-01-08 12:26:46 -03:00
gcov
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
irq
genirq/msi, x86/vector: Prevent reservation mode for non maskable MSI
2017-12-29 21:13:05 +01:00
livepatch
Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching
2017-11-15 10:21:58 -08:00
locking
locking/lockdep: Remove the cross-release locking checks
2017-12-12 12:38:51 +01:00
power
Revert "cpuset: Make cpuset hotplug synchronous"
2017-12-04 14:41:11 -08:00
printk
remove task and stack pointer printout from oops dump
2017-12-05 08:23:20 -08:00
rcu
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-11-13 17:56:58 -08:00
sched
cpufreq: schedutil: Use idle_calls counter of the remote CPU
2017-12-28 12:26:54 +01:00
time
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-12-31 12:30:34 -08:00
trace
tracing: Fix possible double free on failure of allocating trace buffer
2017-12-27 14:21:27 -05:00
.gitignore
acct.c
kernel/acct.c: fix the acct->needcheck check in check_free_space()
2018-01-04 16:45:09 -08:00
async.c
audit.c
Audit: remove unused audit_log_secctx function
2017-11-10 16:08:47 -05:00
audit.h
audit/stable-4.15 PR 20171113
2017-11-15 13:28:48 -08:00
audit_fsnotify.c
audit_tree.c
Merge branch 'fsnotify' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
2017-11-14 14:08:20 -08:00
audit_watch.c
auditfilter.c
audit: filter PATH records keyed on filesystem magic
2017-11-10 16:08:56 -05:00
auditsc.c
audit/stable-4.15 PR 20171113
2017-11-15 13:28:48 -08:00
backtracetest.c
bounds.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
capability.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
compat.c
sched_rr_get_interval(): move compat to native, get rid of set_fs()
2017-09-20 00:30:57 -04:00
configs.c
context_tracking.c
cpu.c
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-12-31 12:30:34 -08:00
cpu_pm.c
crash_core.c
kdump: print a message in case parse_crashkernel_mem resulted in zero bytes
2017-11-17 16:10:03 -08:00
crash_dump.c
cred.c
delayacct.c
dma.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
elfcore.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
exec_domain.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
exit.c
kernel/exit.c: export abort() to modules
2018-01-04 16:45:09 -08:00
extable.c
kprobes, x86/alternatives: Use text_mutex to protect smp_alt_modules
2017-11-07 12:20:09 +01:00
fork.c
Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-12-23 11:53:04 -08:00
freezer.c
futex.c
futex: futex_wake_op, fix sign_extend32 sign bits
2017-12-10 12:50:57 -08:00
futex_compat.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
groups.c
kernel: make groups_sort calling a responsibility group_info allocators
2017-12-14 16:00:49 -08:00
hung_task.c
irq_work.c
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-11-13 17:33:11 -08:00
jump_label.c
jump_label: Invoke jump_label_test() via early_initcall()
2017-11-14 08:41:41 +01:00
kallsyms.c
kallsyms: take advantage of the new '%px' format
2017-11-29 10:30:13 -08:00
kcmp.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kcov: fix comparison callback signature
2017-12-14 16:00:48 -08:00
kexec.c
kexec_core.c
kexec_file.c
resource: Provide resource struct in resource walk callback
2017-11-07 15:35:57 +01:00
kexec_internal.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
kmod.c
kmod: move #ifdef CONFIG_MODULES wrapper to Makefile
2017-09-08 18:26:51 -07:00
kprobes.c
kprobes: Disable the jprobes APIs
2017-10-20 11:02:29 +02:00
ksysfs.c
kthread.c
treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts
2017-11-21 16:35:54 -08:00
latencytop.c
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
memremap.c
memremap: add scheduling point to devm_memremap_pages
2017-10-03 17:54:25 -07:00
module-internal.h
module.c
kallsyms: take advantage of the new '%px' format
2017-11-29 10:30:13 -08:00
module_signing.c
notifier.c
nsproxy.c
padata.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
panic.c
kernel/panic.c: add TAINT_AUX
2017-11-17 16:10:04 -08:00
params.c
kernel/params.c: improve STANDARD_PARAM_DEF readability
2017-10-03 17:54:26 -07:00
pid.c
pid: Handle failure to allocate the first pid in a pid namespace
2017-12-23 21:00:09 -06:00
pid_namespace.c
pid: remove pidhash
2017-11-17 16:10:04 -08:00
profile.c
ptrace.c
range.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
reboot.c
kernel/reboot.c: add devm_register_reboot_notifier()
2017-11-17 16:10:04 -08:00
relay.c
resource.c
x86/mm, resource: Use PAGE_KERNEL protection for ioremap of memory pages
2017-11-07 15:35:58 +01:00
seccomp.c
locking/barriers: Convert users of lockless_dereference() to READ_ONCE()
2017-12-17 13:57:15 +01:00
signal.c
Merge branch 'akpm' (patches from Andrew)
2017-11-17 16:56:17 -08:00
smp.c
smp/core: Use lockdep to assert IRQs are disabled/enabled
2017-11-08 11:13:50 +01:00
smpboot.c
watchdog/core, powerpc: Lock cpus across reconfiguration
2017-10-04 10:53:54 +02:00
smpboot.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
softirq.c
kmemcheck: rip it out
2017-11-15 18:21:05 -08:00
stacktrace.c
stop_machine.c
sys.c
arm64 updates for 4.15
2017-11-15 10:56:56 -08:00
sys_ni.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
sysctl.c
kernel/sysctl.c: code cleanups
2017-11-17 16:10:03 -08:00
sysctl_binary.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
task_work.c
locking/barriers: Convert users of lockless_dereference() to READ_ONCE()
2017-12-17 13:57:15 +01:00
taskstats.c
test_kprobes.c
kprobes: Disable the jprobes test code
2017-10-20 11:02:54 +02:00
torture.c
tracepoint.c
tsacct.c
ucount.c
uid16.c
kernel: make groups_sort calling a responsibility group_info allocators
2017-12-14 16:00:49 -08:00
umh.c
kernel/umh.c: optimize 'proc_cap_handler()'
2017-11-17 16:10:01 -08:00
up.c
smp: Avoid using two cache lines for struct call_single_data
2017-08-29 15:14:38 +02:00
user-return-notifier.c
user.c
userns: use union in {g,u}idmap struct
2017-10-31 17:22:58 -05:00
user_namespace.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2017-11-16 12:20:15 -08:00
utsname.c
utsname_sysctl.c
watchdog.c
Merge branch 'linus' into sched/core, to pick up fixes
2017-11-08 10:17:15 +01:00
watchdog_hld.c
Merge branch 'linus' into core/urgent, to pick up dependent commits
2017-11-04 08:53:04 +01:00
workqueue.c
workqueue: remove unneeded kallsyms include
2017-12-11 07:15:43 -08:00
workqueue_internal.h
Merge branch 'for-4.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2017-11-06 12:26:49 -08:00