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

kan.liang@linux.intel.com posted 6 patches 3 years, 7 months ago
There is a newer version of this series
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(-)
[PATCH 0/6] Add sample_flags to improve the perf_sample_data struct
Posted by kan.liang@linux.intel.com 3 years, 7 months ago
From: Kan Liang <kan.liang@linux.intel.com>

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@worktop.programming.kicks-ass.net/

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.

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
Re: [PATCH 0/6] Add sample_flags to improve the perf_sample_data struct
Posted by Namhyung Kim 3 years, 7 months ago
(Adding Ravi to CC)

On Wed, Aug 31, 2022 at 07:55:08AM -0700, kan.liang@linux.intel.com wrote:
> From: Kan Liang <kan.liang@linux.intel.com>
> 
> 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@worktop.programming.kicks-ass.net/
> 
> 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.  The previous discussion was at

  https://lore.kernel.org/all/CAM9d7cjj0X90=NsvdwaLMGCDVkMJBLAGF_q-+Eqj6b44OAnzoQ@mail.gmail.com/

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
> 
>
Re: [PATCH 0/6] Add sample_flags to improve the perf_sample_data struct
Posted by Liang, Kan 3 years, 7 months ago

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@linux.intel.com wrote:
>> From: Kan Liang <kan.liang@linux.intel.com>
>>
>> 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@worktop.programming.kicks-ass.net/
>>
>> 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@mail.gmail.com/
> 
> 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
>>
>>
Re: [PATCH 0/6] Add sample_flags to improve the perf_sample_data struct
Posted by Namhyung Kim 3 years, 7 months ago
On Thu, Sep 1, 2022 at 5:47 AM Liang, Kan <kan.liang@linux.intel.com> wrote:
>
>
>
> 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@linux.intel.com wrote:
> >> From: Kan Liang <kan.liang@linux.intel.com>
> >>
> >> 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@worktop.programming.kicks-ass.net/
> >>
> >> 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.

Yep, I'll work on it once this patchset is merged.

Thanks,
Namhyung