Re: [PATCH] perf: Rewrite core context handling

2022-10-10 Thread Ravi Bangoria
On 10-Oct-22 3:53 PM, Peter Zijlstra wrote: > On Tue, Sep 06, 2022 at 11:20:53AM +0530, Ravi Bangoria wrote: > >> This one was simple enough so I prepared a patch for this. Let >> me know if you see any issues with below diff. > > I've extraed this as a separate patch since it's not strictly

Re: [PATCH] perf: Rewrite core context handling

2022-10-10 Thread Ravi Bangoria
On 10-Oct-22 3:44 PM, Peter Zijlstra wrote: > On Wed, Sep 07, 2022 at 04:58:49PM +0530, Ravi Bangoria wrote: >>> -static void >>> -ctx_flexible_sched_in(struct perf_event_context *ctx, >>> - struct perf_cpu_context *cpuctx) >>> +/* XXX .busy thingy from Peter's patch */ >>> +static

Re: [PATCH] perf: Rewrite core context handling

2022-10-10 Thread Peter Zijlstra
On Tue, Sep 06, 2022 at 11:20:53AM +0530, Ravi Bangoria wrote: > This one was simple enough so I prepared a patch for this. Let > me know if you see any issues with below diff. I've extraed this as a separate patch since it's not strictly required for correctness and the patch is a quite large

Re: [PATCH] perf: Rewrite core context handling

2022-10-10 Thread Peter Zijlstra
On Wed, Sep 07, 2022 at 04:58:49PM +0530, Ravi Bangoria wrote: > > -static void > > -ctx_flexible_sched_in(struct perf_event_context *ctx, > > - struct perf_cpu_context *cpuctx) > > +/* XXX .busy thingy from Peter's patch */ > > +static void ctx_flexible_sched_in(struct

Re: [PATCH] perf: Rewrite core context handling

2022-09-07 Thread Ravi Bangoria
> -static void > -ctx_flexible_sched_in(struct perf_event_context *ctx, > - struct perf_cpu_context *cpuctx) > +/* XXX .busy thingy from Peter's patch */ > +static void ctx_flexible_sched_in(struct perf_event_context *ctx, struct pmu > *pmu) This one turned out to be very easy.

Re: [PATCH] perf: Rewrite core context handling

2022-09-05 Thread Ravi Bangoria
> @@ -9752,10 +9889,13 @@ void perf_tp_event(u16 event_type, u64 count, void > *record, int entry_size, > struct trace_entry *entry = record; > > rcu_read_lock(); > - ctx = rcu_dereference(task->perf_event_ctxp[perf_sw_context]); > + ctx =

Re: [PATCH] perf: Rewrite core context handling

2022-09-04 Thread Ravi Bangoria
> So the basic issue I mentioned is that: > > > /* > * ,[1:n]-. > * V V > * perf_event_context <-[1:n]-> perf_event_pmu_context <--- perf_event > * ^

Re: [PATCH] perf: Rewrite core context handling

2022-09-01 Thread Peter Zijlstra
On Thu, Sep 01, 2022 at 04:05:53PM +0530, Ravi Bangoria wrote: > On 29-Aug-22 8:10 PM, Peter Zijlstra wrote: > > On Mon, Aug 29, 2022 at 02:04:33PM +0200, Peter Zijlstra wrote: > >> On Mon, Aug 29, 2022 at 05:03:47PM +0530, Ravi Bangoria wrote: > >>> @@ -12598,6 +12590,7 @@ > >>>

Re: [PATCH] perf: Rewrite core context handling

2022-09-01 Thread Ravi Bangoria
On 29-Aug-22 8:10 PM, Peter Zijlstra wrote: > On Mon, Aug 29, 2022 at 02:04:33PM +0200, Peter Zijlstra wrote: >> On Mon, Aug 29, 2022 at 05:03:47PM +0530, Ravi Bangoria wrote: >>> @@ -12598,6 +12590,7 @@ EXPORT_SYMBOL_GPL(perf_event_create_kernel_counter); >>> >>> void

Re: [PATCH] perf: Rewrite core context handling

2022-08-29 Thread Peter Zijlstra
On Mon, Aug 29, 2022 at 02:04:33PM +0200, Peter Zijlstra wrote: > On Mon, Aug 29, 2022 at 05:03:47PM +0530, Ravi Bangoria wrote: > > @@ -12598,6 +12590,7 @@ EXPORT_SYMBOL_GPL(perf_event_create_kernel_counter); > > > > void perf_pmu_migrate_context(struct pmu *pmu, int src_cpu, int dst_cpu) > >

[PATCH] perf: Rewrite core context handling

2022-08-29 Thread Ravi Bangoria
From: Peter Zijlstra There have been various issues and limitations with the way perf uses (task) contexts to track events. Most notable is the single hardware PMU task context, which has resulted in a number of yucky things (both proposed and merged). Notably: - HW breakpoint PMU - ARM

Re: [PATCH] perf: Rewrite core context handling

2022-08-29 Thread Peter Zijlstra
On Mon, Aug 29, 2022 at 05:03:47PM +0530, Ravi Bangoria wrote: > @@ -12598,6 +12590,7 @@ EXPORT_SYMBOL_GPL(perf_event_create_kernel_counter); > > void perf_pmu_migrate_context(struct pmu *pmu, int src_cpu, int dst_cpu) > { > +#if 0 // XXX buggered - cpu hotplug, who cares > struct