diff options
author | Peter Zijlstra <peterz@infradead.org> | 2020-10-30 17:50:32 +0300 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2020-11-09 20:12:33 +0300 |
commit | 267fb27352b6fc9fdbad753127a239f75618ecbc (patch) | |
tree | 2f99dd2dedf21e53d329e16cdb615e2c234202bb /include/linux | |
parent | 7bdb157cdebbf95a1cd94ed2e01b338714075d00 (diff) | |
download | linux-267fb27352b6fc9fdbad753127a239f75618ecbc.tar.xz |
perf: Reduce stack usage of perf_output_begin()
__perf_output_begin() has an on-stack struct perf_sample_data in the
unlikely case it needs to generate a LOST record. However, every call
to perf_output_begin() must already have a perf_sample_data on-stack.
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20201030151954.985416146@infradead.org
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/perf_event.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 0c19d279b97f..b775ae0a8c87 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -1400,11 +1400,14 @@ perf_event_addr_filters(struct perf_event *event) extern void perf_event_addr_filters_sync(struct perf_event *event); extern int perf_output_begin(struct perf_output_handle *handle, + struct perf_sample_data *data, struct perf_event *event, unsigned int size); extern int perf_output_begin_forward(struct perf_output_handle *handle, - struct perf_event *event, - unsigned int size); + struct perf_sample_data *data, + struct perf_event *event, + unsigned int size); extern int perf_output_begin_backward(struct perf_output_handle *handle, + struct perf_sample_data *data, struct perf_event *event, unsigned int size); |