Re: [PATCH 1/1] Perf: fix overwritten of free running PEBSv3 timestamp

From: Peter Zijlstra
Date: Thu Feb 11 2016 - 09:57:11 EST


On Wed, Feb 10, 2016 at 05:38:02PM -0500, Tong Zhang wrote:
> commit a7b58d211ba18c9175b139e18b68c86a6bcc3c3f introduced feature of
> timestamp on free running PEBSv3, however, the timestamp is later
> overwritten, which makes the effort in vain.
>
> This patch fixed this problem by detecting whether timestamp is provided.
>
> Signed-off-by: Tong Zhang <ztong@xxxxxx>
> ---
> include/linux/perf_event.h | 1 +
> kernel/events/core.c | 45 +++++++++++++++++++++++++++++++++------------
> kernel/events/ring_buffer.c | 4 +++-
> 3 files changed, 37 insertions(+), 13 deletions(-)
>
> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> index f9828a4..12d7b95 100644
> --- a/include/linux/perf_event.h
> +++ b/include/linux/perf_event.h
> @@ -815,6 +815,7 @@ static inline void perf_sample_data_init(struct perf_sample_data *data,
> data->weight = 0;
> data->data_src.val = PERF_MEM_NA;
> data->txn = 0;
> + data->time = 0;
> }

Argh, you just touched a new cacheline and made _every_ single event
slower.