lkml.org 
[lkml]   [2018]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RESEND PATCH V2 3/4] perf/x86/intel: drain PEBS buffer in event read
On Thu, Jan 11, 2018 at 10:21:25AM -0500, Liang, Kan wrote:

SNIP

> >
> > hum, but the PEBS drain is specific just for
> > PERF_X86_EVENT_AUTO_RELOAD events, right?
>
> Accurately, PEBS drain is specific for PERF_X86_EVENT_FREERUNNING here.
> PERF_X86_EVENT_FREERUNNING event must be _AUTO_RELOAD event.
> But in some cases, _AUTO_RELOAD event cannot be _FREERUNNING event.
>
> Only the event which is both _FREERUNNING and _AUTO_RELOAD need to do PEBS
> drain in _read().
>
> So it does the check in intel_pmu_pebs_read()
> + if (pebs_needs_sched_cb(cpuc))
> + return intel_pmu_drain_pebs_buffer();
>
> >
> > wrt readability maybe you could add function like:
>
> The existing function pebs_needs_sched_cb() can do the check.
> We just need to expose it, and also the intel_pmu_drain_pebs_buffer().
>
> But to be honest, I still cannot see a reason for that.
> It could save a call to intel_pmu_pebs_read(), but _read() is not critical
> path. It doesn't save much.

hum, pmu->read is also called for PERF_SAMPLE_READ for sample,
check perf_output_read

for non sampling event you shouldn't be able to create PEBS
event, there's check in x86_pmu_hw_config

I agree it does not save much, it just confused me while
I was reading the code, like why is this needed for all
events with precise_ip

jirka

\
 
 \ /
  Last update: 2018-01-14 23:23    [W:0.111 / U:0.296 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site