Re: [PATCH v2] perf: Rewrite core context handling

2022-10-17 Thread Ravi Bangoria
On 14-Oct-22 3:26 PM, Ravi Bangoria wrote: > On 13-Oct-22 4:29 PM, Peter Zijlstra wrote: >> On Thu, Oct 13, 2022 at 03:37:23PM +0530, Ravi Bangoria wrote: >> - refcount_t refcount; + refcount_t refcount; /* event <-> ctx */ >>> >>> Ok. We need

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-14 Thread Peter Zijlstra
On Fri, Oct 14, 2022 at 03:26:07PM +0530, Ravi Bangoria wrote: > On 13-Oct-22 4:29 PM, Peter Zijlstra wrote: > > On Thu, Oct 13, 2022 at 03:37:23PM +0530, Ravi Bangoria wrote: > > > >>> - refcount_t refcount; > >>> + refcount_t refcount; /* event <-> ctx

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-14 Thread Ravi Bangoria
On 13-Oct-22 4:29 PM, Peter Zijlstra wrote: > On Thu, Oct 13, 2022 at 03:37:23PM +0530, Ravi Bangoria wrote: > >>> - refcount_t refcount; >>> + refcount_t refcount; /* event <-> ctx */ >> >> Ok. We need to remove all those // XXX get/put_ctx() from

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-13 Thread Peter Zijlstra
On Thu, Oct 13, 2022 at 03:37:23PM +0530, Ravi Bangoria wrote: > > - refcount_t refcount; > > + refcount_t refcount; /* event <-> ctx */ > > Ok. We need to remove all those // XXX get/put_ctx() from code > which we added to make refcount a pmu_ctx

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-13 Thread Ravi Bangoria
On 13-Oct-22 2:17 AM, Peter Zijlstra wrote: > On Wed, Oct 12, 2022 at 02:16:29PM +0200, Peter Zijlstra wrote: > >> That's the intent yeah. But due to not always holding ctx->mutex over >> put_pmu_ctx() this might be moot. I'm almost through auditing epc usage >> and I think ctx->lock is

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-12 Thread Peter Zijlstra
On Wed, Oct 12, 2022 at 02:16:29PM +0200, Peter Zijlstra wrote: > That's the intent yeah. But due to not always holding ctx->mutex over > put_pmu_ctx() this might be moot. I'm almost through auditing epc usage > and I think ctx->lock is sufficient, fingers crossed. So the very last epc usage

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-12 Thread Peter Zijlstra
On Wed, Oct 12, 2022 at 02:09:00PM +0530, Ravi Bangoria wrote: > > @@ -3366,6 +3370,14 @@ static void perf_event_sync_stat(struct > > } > > } > > > > +#define list_for_each_entry_double(pos1, pos2, head1, head2, member) > > \ > > + for (pos1 = list_first_entry(head1,

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-12 Thread Ravi Bangoria
On 11-Oct-22 11:17 PM, Peter Zijlstra wrote: > On Tue, Oct 11, 2022 at 04:02:56PM +0200, Peter Zijlstra wrote: >> On Tue, Oct 11, 2022 at 06:49:55PM +0530, Ravi Bangoria wrote: >>> On 11-Oct-22 4:59 PM, Peter Zijlstra wrote: On Sat, Oct 08, 2022 at 11:54:24AM +0530, Ravi Bangoria wrote:

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-11 Thread Peter Zijlstra
On Tue, Oct 11, 2022 at 04:02:56PM +0200, Peter Zijlstra wrote: > On Tue, Oct 11, 2022 at 06:49:55PM +0530, Ravi Bangoria wrote: > > On 11-Oct-22 4:59 PM, Peter Zijlstra wrote: > > > On Sat, Oct 08, 2022 at 11:54:24AM +0530, Ravi Bangoria wrote: > > > > > >> +static void

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-11 Thread Peter Zijlstra
On Tue, Oct 11, 2022 at 06:49:55PM +0530, Ravi Bangoria wrote: > On 11-Oct-22 4:59 PM, Peter Zijlstra wrote: > > On Sat, Oct 08, 2022 at 11:54:24AM +0530, Ravi Bangoria wrote: > > > >> +static void perf_event_swap_task_ctx_data(struct perf_event_context > >> *prev_ctx, > >> +

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-11 Thread Ravi Bangoria
On 11-Oct-22 4:59 PM, Peter Zijlstra wrote: > On Sat, Oct 08, 2022 at 11:54:24AM +0530, Ravi Bangoria wrote: > >> +static void perf_event_swap_task_ctx_data(struct perf_event_context >> *prev_ctx, >> + struct perf_event_context *next_ctx) >> +{ >> +struct

Re: [PATCH v2] perf: Rewrite core context handling

2022-10-11 Thread Peter Zijlstra
On Sat, Oct 08, 2022 at 11:54:24AM +0530, Ravi Bangoria wrote: > +static void perf_event_swap_task_ctx_data(struct perf_event_context > *prev_ctx, > + struct perf_event_context *next_ctx) > +{ > + struct perf_event_pmu_context *prev_epc, *next_epc; > + >