Revision 583feb08e7f7ac9d533b446882eb3a54737a6dbb authored by Stephane Eranian on 06 March 2019, 19:50:48 UTC, committed by Ingo Molnar on 03 April 2019, 07:57:43 UTC
When an event is programmed with attr.wakeup_events=N (N>0), it means the caller is interested in getting a user level notification after N samples have been recorded in the kernel sampling buffer. With precise events on Intel processors, the kernel uses PEBS. The kernel tries minimize sampling overhead by verifying if the event configuration is compatible with multi-entry PEBS mode. If so, the kernel is notified only when the buffer has reached its threshold. Other PEBS operates in single-entry mode, the kenrel is notified for each PEBS sample. The problem is that the current implementation look at frequency mode and event sample_type but ignores the wakeup_events field. Thus, it may not be possible to receive a notification after each precise event. This patch fixes this problem by disabling multi-entry PEBS if wakeup_events is non-zero. Signed-off-by: Stephane Eranian <eranian@google.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Andi Kleen <ak@linux.intel.com> 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: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Cc: kan.liang@intel.com Link: https://lkml.kernel.org/r/20190306195048.189514-1-eranian@google.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 5e7a8ca
File | Mode | Size |
---|---|---|
.gitignore | -rw-r--r-- | 44 bytes |
Kconfig | -rw-r--r-- | 3.4 KB |
Makefile | -rw-r--r-- | 4.1 KB |
blacklist.c | -rw-r--r-- | 4.0 KB |
blacklist.h | -rw-r--r-- | 84 bytes |
blacklist_hashes.c | -rw-r--r-- | 166 bytes |
blacklist_nohashes.c | -rw-r--r-- | 122 bytes |
system_certificates.S | -rw-r--r-- | 828 bytes |
system_keyring.c | -rw-r--r-- | 8.0 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...