summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/linux/perf_counter.h6
-rw-r--r--kernel/perf_counter.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h
index 7f5d353d78ac..5bd8817b12d4 100644
--- a/include/linux/perf_counter.h
+++ b/include/linux/perf_counter.h
@@ -201,9 +201,13 @@ struct perf_counter_mmap_page {
__u32 data_head; /* head in the data section */
};
+#define PERF_EVENT_MISC_KERNEL (1 << 0)
+#define PERF_EVENT_MISC_USER (1 << 1)
+
struct perf_event_header {
__u32 type;
- __u32 size;
+ __u16 misc;
+ __u16 size;
};
enum perf_event_type {
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c
index 84a39081344c..4af98f943d3b 100644
--- a/kernel/perf_counter.c
+++ b/kernel/perf_counter.c
@@ -1831,6 +1831,9 @@ static void perf_counter_output(struct perf_counter *counter,
header.type = PERF_EVENT_COUNTER_OVERFLOW;
header.size = sizeof(header);
+ header.misc = user_mode(regs) ?
+ PERF_EVENT_MISC_USER : PERF_EVENT_MISC_KERNEL;
+
if (record_type & PERF_RECORD_IP) {
ip = instruction_pointer(regs);
header.type |= __PERF_EVENT_IP;