Re: [PATCH 0/6] Add sample_flags to improve the perf_sample_data struct

From: Liang, Kan
Date: Thu Sep 01 2022 - 08:47:55 EST




On 2022-08-31 6:42 p.m., Namhyung Kim wrote:
> (Adding Ravi to CC)
>
> On Wed, Aug 31, 2022 at 07:55:08AM -0700, kan.liang@xxxxxxxxxxxxxxx wrote:
>> From: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>
>>
>> The patch series is to fix PEBS timestamps overwritten and improve the
>> perf_sample_data struct. The detailed discussion can be found at
>> https://lore.kernel.org/lkml/YwXvGe4%2FQdgGYOKJ@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
>>
>> The patch series has two changes compared with the suggestions in the
>> above discussion.
>> - Only clear the sample flags for the perf_prepare_sample().
>> The __perf_event_header__init_id is shared between perf_prepare_sample()
>> (used by PERF_RECORD_SAMPLE) and perf_event_header__init_id() (used by
>> other PERF_RECORD_* event type). The sample data is only available
>> for the PERF_RECORD_SAMPLE.
>> - The CALLCHAIN_EARLY hack is still required for the BPF, especially
>> perf_event_set_bpf_handler(). The sample data is not available when
>> the function is invoked.
>
> In general, looks good! I'd like to work on the BPF side so that it can
> get the sample data for filtering.

Thanks Namhyung. I will send out the V2 shortly. I think the BPF work
can be on top of it.

Thanks,
Kan
> The previous discussion was at
>
> https://lore.kernel.org/all/CAM9d7cjj0X90=NsvdwaLMGCDVkMJBLAGF_q-+Eqj6b44OAnzoQ@xxxxxxxxxxxxxx/
>
> Thanks,
> Namhyung
>
>>
>> Kan Liang (6):
>> perf: Add sample_flags to indicate the PMU-filled sample data
>> perf/x86/intel/pebs: Fix PEBS timestamps overwritten
>> perf: Use sample_flags for branch stack
>> perf: Use sample_flags for weight
>> perf: Use sample_flags for data_src
>> perf: Use sample_flags for txn
>>
>> arch/powerpc/perf/core-book3s.c | 10 ++++++---
>> arch/x86/events/core.c | 4 +++-
>> arch/x86/events/intel/core.c | 4 +++-
>> arch/x86/events/intel/ds.c | 39 ++++++++++++++++++++++++---------
>> include/linux/perf_event.h | 15 ++++++-------
>> kernel/events/core.c | 33 +++++++++++++++++++---------
>> 6 files changed, 72 insertions(+), 33 deletions(-)
>>
>> --
>> 2.35.1
>>
>>