Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-23 Thread Alexey Budankov
On 22.08.2017 23:47, Peter Zijlstra wrote: > On Thu, Aug 10, 2017 at 06:57:43PM +0300, Alexey Budankov wrote: >> The key thing in the patch is explicit updating of tstamp fields for >> INACTIVE events in update_event_times(). > >> @@ -1405,6 +1426,9 @@ static void update_event_times(struct perf_ev

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-22 Thread Peter Zijlstra
On Thu, Aug 10, 2017 at 06:57:43PM +0300, Alexey Budankov wrote: > The key thing in the patch is explicit updating of tstamp fields for > INACTIVE events in update_event_times(). > @@ -1405,6 +1426,9 @@ static void update_event_times(struct perf_event *event) > event->group_leader->state

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-10 Thread Alexey Budankov
Well, Ok. I re-implemented this patch of patch set and also implemented a unit test that IMHO mimics the case mentioned above to check if it solves the issue. The test is a single thread application that creates 272 fds for every of two INSTRUCTIONS_RETIRED events covering 272 cores of Intel X

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-04 Thread Alexey Budankov
On 04.08.2017 15:51, Peter Zijlstra wrote: > On Fri, Aug 04, 2017 at 02:35:34PM +0200, Peter Zijlstra wrote: >> Something like: >> >> __update_state_and_time(event, new_state) >> { >> u64 delta, now = perf_event_time(event); >> int old_state = event->state; >> >> event->tstamp = now;

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-04 Thread Alexey Budankov
On 04.08.2017 15:35, Peter Zijlstra wrote: > On Thu, Aug 03, 2017 at 09:47:56PM +0300, Alexey Budankov wrote: >> On 03.08.2017 18:00, Peter Zijlstra wrote: > >>> Are the magic spots, right? And I'm not convinced its right. >>> >>> Suppose I have two events in my context, and I created them 1 minut

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-04 Thread Peter Zijlstra
On Fri, Aug 04, 2017 at 02:35:34PM +0200, Peter Zijlstra wrote: > Something like: > > __update_state_and_time(event, new_state) > { > u64 delta, now = perf_event_time(event); > int old_state = event->state; > > event->tstamp = now; > event->state = new_state; > > d

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-04 Thread Peter Zijlstra
On Thu, Aug 03, 2017 at 06:58:41PM +0300, Alexey Budankov wrote: > On 03.08.2017 17:00, Peter Zijlstra wrote: > > And I don't think I fully agree with your description of running. > > I copied this comment from the previous place without any change. Ah, my bad, I often look at patches with all -

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-04 Thread Peter Zijlstra
On Thu, Aug 03, 2017 at 09:47:56PM +0300, Alexey Budankov wrote: > On 03.08.2017 18:00, Peter Zijlstra wrote: > > Are the magic spots, right? And I'm not convinced its right. > > > > Suppose I have two events in my context, and I created them 1 minute > > apart. Then their respective tstamp_enabl

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-03 Thread Alexey Budankov
On 03.08.2017 18:00, Peter Zijlstra wrote: > On Wed, Aug 02, 2017 at 11:15:39AM +0300, Alexey Budankov wrote: >> @@ -772,6 +780,10 @@ struct perf_event_context { >> */ >> u64 time; >> u64 timestamp; >> +/* >> + * Contex

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-03 Thread Alexey Budankov
On 03.08.2017 17:00, Peter Zijlstra wrote: > On Wed, Aug 02, 2017 at 11:15:39AM +0300, Alexey Budankov wrote: >> +struct perf_event_tstamp { >> +/* >> + * These are timestamps used for computing total_time_enabled >> + * and total_time_running when the event is in INACTIVE or >> + *

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-03 Thread Peter Zijlstra
On Wed, Aug 02, 2017 at 11:15:39AM +0300, Alexey Budankov wrote: > @@ -772,6 +780,10 @@ struct perf_event_context { >*/ > u64 time; > u64 timestamp; > + /* > + * Context cache for filtered out events; > + */ >

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-03 Thread Peter Zijlstra
On Wed, Aug 02, 2017 at 11:15:39AM +0300, Alexey Budankov wrote: > +struct perf_event_tstamp { > + /* > + * These are timestamps used for computing total_time_enabled > + * and total_time_running when the event is in INACTIVE or > + * ACTIVE state, measured in nanoseconds from an

Re: [PATCH v6 2/3]: perf/core: use context tstamp_data for skipped events on mux interrupt

2017-08-03 Thread Peter Zijlstra
On Wed, Aug 02, 2017 at 11:15:39AM +0300, Alexey Budankov wrote: > Event groups allocated for CPU's different from the one that handles > multiplexing > hrtimer interrupt may be skipped by interrupt handler however the events > tstamp_enabled, tstamp_running and tstamp_stopped fields still need