[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <46a6380b-e0c8-00d1-7e31-4bb8bc543438@linux.ibm.com>
Date: Tue, 29 Jun 2021 12:44:25 +0530
From: kajoljain <kjain@...ux.ibm.com>
To: Moritz Fischer <mdf@...nel.org>
Cc: will@...nel.org, hao.wu@...el.com, mark.rutland@....com,
trix@...hat.com, yilun.xu@...el.com, luwei.kang@...el.com,
linux-fpga@...r.kernel.org, maddy@...ux.vnet.ibm.com,
atrajeev@...ux.vnet.ibm.com, linux-kernel@...r.kernel.org,
linuxppc-dev@...ts.ozlabs.org, rnsastry@...ux.ibm.com
Subject: Re: [RFC] fpga: dfl: fme: Fix cpu hotplug code
On 6/29/21 12:10 AM, Moritz Fischer wrote:
> On Mon, Jun 28, 2021 at 12:45:46PM +0530, Kajol Jain wrote:
>> Commit 724142f8c42a ("fpga: dfl: fme: add performance
>> reporting support") added performance reporting support
>> for FPGA management engine via perf.
>>
>> It also 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.
>>
>> Fixes: 724142f8c42a ("fpga: dfl: fme: add performance reporting support")
>> Signed-off-by: Kajol Jain <kjain@...ux.ibm.com>
>
> You might want to Cc: stable@...r.kernel.org if it fixes an actual bug.
Hi Moritz,
I already send patch out without RFC tag yesterday.
Link to the patch: https://lkml.org/lkml/2021/6/28/275
I will cc stable@...r.kernel.org there as suggested by you.
Thanks,
Kajol Jain
>> ---
>> drivers/fpga/dfl-fme-perf.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> ---
>> - This fix patch is not tested (as I don't have required environment).
>> But issue mentioned in the commit msg can be re-created, by starting any
>> fme_perf event and while its still running, offline current designated
>> cpu pointed by cpumask file. Since current code didn't migrating pmu,
>> perf gonna try getting counts from that offlined cpu and hence we will
>> not get event data.
>> ---
>> 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;
>> }
>>
>> --
>> 2.31.1
>>
> - Moritz
>
Powered by blists - more mailing lists