Message ID | 20210628101721.188991-1-kjain@linux.ibm.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | fpga: dfl: fme: Fix cpu hotplug issue in performance reporting | expand |
On 6/28/21 3:47 PM, Kajol Jain wrote: > The performance reporting driver added cpu hotplug > feature but it didn't add pmu migration call in cpu > offline function. > This can create an issue incase the current designated > cpu being used to collect fme pmu data got offline, > as based on current code we are not migrating fme pmu to > new target cpu. Because of that perf will still try to > fetch data from that offline cpu and hence we will not > get counter data. > > Patch fixed this issue by adding pmu_migrate_context call > in fme_perf_offline_cpu function. > Adding stable@vger.kernel.org in cc list as suggested by Moritz Fischer. Thanks, Kajol Jain > Fixes: 724142f8c42a ("fpga: dfl: fme: add performance reporting support") > Tested-by: Xu Yilun <yilun.xu@intel.com> > Signed-off-by: Kajol Jain <kjain@linux.ibm.com> > --- > drivers/fpga/dfl-fme-perf.c | 4 ++++ > 1 file changed, 4 insertions(+) > > --- > Changelog: > - Remove RFC tag > - Did nits changes on subject and commit message as suggested by Xu Yilun > - Added Tested-by tag > - Link to rfc patch: https://lkml.org/lkml/2021/6/28/112 > --- > diff --git a/drivers/fpga/dfl-fme-perf.c b/drivers/fpga/dfl-fme-perf.c > index 4299145ef347..b9a54583e505 100644 > --- a/drivers/fpga/dfl-fme-perf.c > +++ b/drivers/fpga/dfl-fme-perf.c > @@ -953,6 +953,10 @@ static int fme_perf_offline_cpu(unsigned int cpu, struct hlist_node *node) > return 0; > > priv->cpu = target; > + > + /* Migrate fme_perf pmu events to the new target cpu */ > + perf_pmu_migrate_context(&priv->pmu, cpu, target); > + > return 0; > } > >
On Tue, Jun 29, 2021 at 12:45:20PM +0530, kajoljain wrote: > > > On 6/28/21 3:47 PM, Kajol Jain wrote: > > The performance reporting driver added cpu hotplug > > feature but it didn't add pmu migration call in cpu > > offline function. > > This can create an issue incase the current designated > > cpu being used to collect fme pmu data got offline, > > as based on current code we are not migrating fme pmu to > > new target cpu. Because of that perf will still try to > > fetch data from that offline cpu and hence we will not > > get counter data. > > > > Patch fixed this issue by adding pmu_migrate_context call > > in fme_perf_offline_cpu function. > > > > Adding stable@vger.kernel.org in cc list as suggested by Moritz Fischer. <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. </formletter>
On 6/29/21 12:57 PM, Greg KH wrote: > On Tue, Jun 29, 2021 at 12:45:20PM +0530, kajoljain wrote: >> >> >> On 6/28/21 3:47 PM, Kajol Jain wrote: >>> The performance reporting driver added cpu hotplug >>> feature but it didn't add pmu migration call in cpu >>> offline function. >>> This can create an issue incase the current designated >>> cpu being used to collect fme pmu data got offline, >>> as based on current code we are not migrating fme pmu to >>> new target cpu. Because of that perf will still try to >>> fetch data from that offline cpu and hence we will not >>> get counter data. >>> >>> Patch fixed this issue by adding pmu_migrate_context call >>> in fme_perf_offline_cpu function. >>> >> >> Adding stable@vger.kernel.org in cc list as suggested by Moritz Fischer. > > > <formletter> > > This is not the correct way to submit patches for inclusion in the > stable kernel tree. Please read: > https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html > for how to do this properly. Thanks Greg for pointing it, I will take care in my next version. Thanks, Kajol Jain > > </formletter> >
diff --git a/drivers/fpga/dfl-fme-perf.c b/drivers/fpga/dfl-fme-perf.c index 4299145ef347..b9a54583e505 100644 --- a/drivers/fpga/dfl-fme-perf.c +++ b/drivers/fpga/dfl-fme-perf.c @@ -953,6 +953,10 @@ static int fme_perf_offline_cpu(unsigned int cpu, struct hlist_node *node) return 0; priv->cpu = target; + + /* Migrate fme_perf pmu events to the new target cpu */ + perf_pmu_migrate_context(&priv->pmu, cpu, target); + return 0; }