Messages in this thread | | | Date | Tue, 14 Mar 2023 20:27:40 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH] perf core: apply calculated padding to PERF_SAMPLE_RAW output |
| |
On Tue, May 19, 2020 at 03:26:16PM +0200, Timo Beckers wrote: > Zero the amount of padding bytes determined in perf_prepare_sample(). > This prevents garbage being read from the ring buffer after it has wrapped > the page boundary at least once.
But it's user garbage, right? And they should be unconsumed anyway.
> Signed-off-by: Timo Beckers <timo@incline.eu> > --- > kernel/events/core.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/kernel/events/core.c b/kernel/events/core.c > index 80cf996a7f19..d4e0b003ece0 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -6807,8 +6807,16 @@ void perf_output_sample(struct perf_output_handle *handle, > break; > frag = frag->next; > } while (1); > - if (frag->pad) > - __output_skip(handle, NULL, frag->pad); > + /* > + * The padding value is determined in > + * perf_prepare_sample() and is not > + * expected to exceed u64. > + */ > + if (frag->pad) { > + u64 zero = 0; > + > + __output_copy(handle, &zero, frag->pad); > + } > } else { > struct { > u32 size; > -- > 2.26.2 >
| |