2021-07-09 08:45:45

by kajoljain

[permalink] [raw]
Subject: [PATCH v2] fpga: dfl: fme: Fix cpu hotplug issue in performance reporting

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.

Fixes: 724142f8c42a ("fpga: dfl: fme: add performance reporting support")
Tested-by: Xu Yilun <[email protected]>
Signed-off-by: Kajol Jain <[email protected]>
Cc: [email protected]
---
drivers/fpga/dfl-fme-perf.c | 4 ++++
1 file changed, 4 insertions(+)

---
Changelog:
v1 -> v2:
- Add [email protected] in cc list

RFC -> PATCH v1
- 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;
}

--
2.31.1


2021-07-12 02:28:44

by Wu Hao

[permalink] [raw]
Subject: RE: [PATCH v2] fpga: dfl: fme: Fix cpu hotplug issue in performance reporting

> Subject: [PATCH v2] fpga: dfl: fme: Fix cpu hotplug issue in performance
> reporting
>
> 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.
>
> Fixes: 724142f8c42a ("fpga: dfl: fme: add performance reporting support")
> Tested-by: Xu Yilun <[email protected]>
> Signed-off-by: Kajol Jain <[email protected]>

Thanks for this fixing! And thanks Yilun for the verification too. : )

> Cc: [email protected]
> ---
> drivers/fpga/dfl-fme-perf.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> ---
> Changelog:
> v1 -> v2:
> - Add [email protected] in cc list
>
> RFC -> PATCH v1
> - 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 */

Only one minor item, this line is not needed. : )

After remove it,
Acked-by: Wu Hao <[email protected]>

Thanks
Hao

> + perf_pmu_migrate_context(&priv->pmu, cpu, target);
> +
> return 0;
> }
>
> --
> 2.31.1

2021-07-13 07:39:54

by kajoljain

[permalink] [raw]
Subject: Re: [PATCH v2] fpga: dfl: fme: Fix cpu hotplug issue in performance reporting



On 7/12/21 7:57 AM, Wu, Hao wrote:
>> Subject: [PATCH v2] fpga: dfl: fme: Fix cpu hotplug issue in performance
>> reporting
>>
>> 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.
>>
>> Fixes: 724142f8c42a ("fpga: dfl: fme: add performance reporting support")
>> Tested-by: Xu Yilun <[email protected]>
>> Signed-off-by: Kajol Jain <[email protected]>
>
> Thanks for this fixing! And thanks Yilun for the verification too. : )
>
>> Cc: [email protected]
>> ---
>> drivers/fpga/dfl-fme-perf.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> ---
>> Changelog:
>> v1 -> v2:
>> - Add [email protected] in cc list
>>
>> RFC -> PATCH v1
>> - 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 */
>
> Only one minor item, this line is not needed. : )
>
> After remove it,
> Acked-by: Wu Hao <[email protected]>

Hi Wu Hao,
Sure I will remove this comment and send new patch.

Thanks,
Kajol Jain

>
> Thanks
> Hao
>
>> + perf_pmu_migrate_context(&priv->pmu, cpu, target);
>> +
>> return 0;
>> }
>>
>> --
>> 2.31.1
>