Jin Yao
e582b82c16
perf/core: Drop kernel samples even though :u is specified
commit cc1582c231ea041fbc68861dfaf957eaf902b829 upstream.
When doing sampling, for example:
perf record -e cycles:u ...
On workloads that do a lot of kernel entry/exits we see kernel
samples, even though :u is specified. This is due to skid existing.
This might be a security issue because it can leak kernel addresses even
though kernel sampling support is disabled.
The patch drops the kernel samples if exclude_kernel is specified.
For example, test on Haswell desktop:
perf record -e cycles:u <mgen>
perf report --stdio
Before patch applied:
99.77% mgen mgen [.] buf_read
0.20% mgen mgen [.] rand_buf_init
0.01% mgen [kernel.vmlinux] [k] apic_timer_interrupt
0.00% mgen mgen [.] last_free_elem
0.00% mgen libc-2.23.so [.] __random_r
0.00% mgen libc-2.23.so [.] _int_malloc
0.00% mgen mgen [.] rand_array_init
0.00% mgen [kernel.vmlinux] [k] page_fault
0.00% mgen libc-2.23.so [.] __random
0.00% mgen libc-2.23.so [.] __strcasestr
0.00% mgen ld-2.23.so [.] strcmp
0.00% mgen ld-2.23.so [.] _dl_start
0.00% mgen libc-2.23.so [.] sched_setaffinity@@GLIBC_2.3.4
0.00% mgen ld-2.23.so [.] _start
We can see kernel symbols apic_timer_interrupt and page_fault.
After patch applied:
99.79% mgen mgen [.] buf_read
0.19% mgen mgen [.] rand_buf_init
0.00% mgen libc-2.23.so [.] __random_r
0.00% mgen mgen [.] rand_array_init
0.00% mgen mgen [.] last_free_elem
0.00% mgen libc-2.23.so [.] vfprintf
0.00% mgen libc-2.23.so [.] rand
0.00% mgen libc-2.23.so [.] __random
0.00% mgen libc-2.23.so [.] _int_malloc
0.00% mgen libc-2.23.so [.] _IO_doallocbuf
0.00% mgen ld-2.23.so [.] do_lookup_x
0.00% mgen ld-2.23.so [.] open_verify.constprop.7
0.00% mgen ld-2.23.so [.] _dl_important_hwcaps
0.00% mgen libc-2.23.so [.] sched_setaffinity@@GLIBC_2.3.4
0.00% mgen ld-2.23.so [.] _start
There are only userspace symbols.
Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: acme@kernel.org
Cc: jolsa@kernel.org
Cc: kan.liang@intel.com
Cc: mark.rutland@arm.com
Cc: will.deacon@arm.com
Cc: yao.jin@intel.com
Link: http://lkml.kernel.org/r/1495706947-3744-1-git-send-email-yao.jin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-06-14 13:16:25 +02:00
..
2016-06-24 10:18:17 -07:00
2016-09-24 10:07:42 +02:00
2017-01-06 11:16:16 +01:00
2017-06-14 13:16:25 +02:00
2015-06-30 19:44:57 -07:00
2017-05-25 14:30:17 +02:00
2015-11-11 17:36:04 +01:00
2016-12-15 08:49:22 -08:00
2016-11-26 09:54:53 +01:00
2017-02-23 17:43:10 +01:00
2016-12-08 07:15:24 +01:00
2017-05-25 14:30:12 +02:00
2017-01-12 11:22:51 +01:00
2017-05-25 14:30:17 +02:00
2015-10-21 15:18:35 +01:00
2015-04-11 22:27:55 -04:00
2015-08-06 16:14:53 -04:00
2015-11-04 08:23:51 -05:00
2016-09-24 10:07:36 +02:00
2015-11-06 17:50:42 -08:00
2015-11-04 08:23:51 -05:00
2015-11-04 08:23:51 -05:00
2016-08-20 18:09:22 +02:00
2017-01-06 11:16:14 +01:00
2015-12-03 10:18:21 -05:00
2015-12-03 10:18:21 -05:00
2017-04-21 09:30:04 +02:00
2015-06-04 23:57:18 +02:00
2015-11-10 12:06:23 +01:00
2015-09-03 02:42:20 +02:00
2017-01-12 11:22:48 +01:00
2017-06-14 13:16:23 +02:00
2016-09-15 08:27:49 +02:00
2015-04-12 21:03:31 +02:00
2016-06-07 18:14:35 -07:00
2015-09-10 13:29:01 -07:00
2017-06-14 13:16:23 +02:00
2016-02-25 12:01:16 -08:00
2017-03-22 12:04:19 +01:00
2015-04-15 16:35:22 -07:00
2015-04-15 16:35:22 -07:00
2015-11-23 09:44:58 +01:00
2017-01-19 20:17:19 +01:00
2016-02-25 12:01:16 -08:00
2015-05-12 09:46:00 +02:00
2015-11-06 17:50:42 -08:00
2016-09-24 10:07:36 +02:00
2015-09-10 13:29:01 -07:00
2015-11-06 17:50:42 -08:00
2015-10-23 17:55:10 +09:00
2017-05-25 14:30:17 +02:00
2015-09-10 13:29:01 -07:00
2017-04-21 09:30:04 +02:00
2015-09-11 15:21:34 -07:00
2017-03-12 06:37:26 +01:00
2017-01-19 20:17:18 +01:00
2015-10-21 15:18:36 +01:00
2016-08-20 18:09:27 +02:00
2015-09-01 08:40:25 -07:00
2017-05-20 14:27:02 +02:00
2016-02-17 12:30:57 -08:00
2015-11-09 15:53:39 -08:00
2017-05-25 14:30:11 +02:00
2015-11-24 12:03:55 -08:00
2015-09-08 15:35:28 -07:00
2017-06-14 13:16:20 +02:00
2015-09-10 13:29:01 -07:00
2015-06-30 19:44:59 -07:00
2016-03-03 15:07:29 -08:00
2016-03-03 15:07:25 -08:00
2015-11-20 16:17:32 -08:00
2015-11-06 17:50:42 -08:00
2015-10-20 10:23:55 +02:00
2015-12-12 10:15:34 -08:00
2015-11-05 19:34:48 -08:00
2016-02-25 12:01:25 -08:00
2016-04-12 09:08:58 -07:00
2017-04-30 05:49:28 +02:00
2015-09-05 13:46:58 -07:00
2015-10-06 11:25:01 -07:00
2015-10-25 21:33:54 -04:00
2015-09-04 16:54:41 -07:00
2017-01-06 11:16:16 +01:00
2016-05-18 17:06:50 -07:00