[PATCH drivers/perf: hisi: 2/2] drivers/perf: hisi: fix set wrong filter mode for running events issue

Jijie Shao posted 2 patches 2 years, 4 months ago
[PATCH drivers/perf: hisi: 2/2] drivers/perf: hisi: fix set wrong filter mode for running events issue
Posted by Jijie Shao 2 years, 4 months ago
From: Hao Chen <chenhao418@huawei.com>

hns3_pmu_select_filter_mode() includes a series of mode judgments such
as global mode ,function mode, function-queue mode, port mode, port-tc
mode.

For a special scenario, command use parameter "bdf=0x3700,config=0x3,
queue=0x0", it is expected to enter function-queue mode, but event of
config 0x3 doesn't support func-queue mode, then it enter port-tc mode.
it's not up to expectations.

It shouldn't enter any modes but return -ENOENT.

So, add judgement of bdf parameter to fix it.

Fixes: 66637ab137b4 ("drivers/perf: hisi: add driver for HNS3 PMU")
Signed-off-by: Hao Chen <chenhao418@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
---
 drivers/perf/hisilicon/hns3_pmu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/perf/hisilicon/hns3_pmu.c b/drivers/perf/hisilicon/hns3_pmu.c
index 6a4d04cbae91..7f38a9e489d4 100644
--- a/drivers/perf/hisilicon/hns3_pmu.c
+++ b/drivers/perf/hisilicon/hns3_pmu.c
@@ -1000,12 +1000,13 @@ static bool
 hns3_pmu_is_enabled_port_tc_mode(struct perf_event *event,
 				 struct hns3_pmu_event_attr *pmu_event)
 {
+	u16 bdf = hns3_pmu_get_bdf(event);
 	u8 tc_id = hns3_pmu_get_tc(event);
 
 	if (!(pmu_event->filter_support & HNS3_PMU_FILTER_SUPPORT_PORT_TC))
 		return false;
 
-	return tc_id != HNS3_PMU_FILTER_ALL_TC;
+	return (tc_id != HNS3_PMU_FILTER_ALL_TC) && (!bdf);
 }
 
 static bool
-- 
2.30.0
Re: [PATCH drivers/perf: hisi: 2/2] drivers/perf: hisi: fix set wrong filter mode for running events issue
Posted by Will Deacon 2 years, 3 months ago
[+Guangbin Huang and Shaokun Zhang]

On Wed, Aug 16, 2023 at 05:46:19PM +0800, Jijie Shao wrote:
> From: Hao Chen <chenhao418@huawei.com>
> 
> hns3_pmu_select_filter_mode() includes a series of mode judgments such
> as global mode ,function mode, function-queue mode, port mode, port-tc
> mode.
> 
> For a special scenario, command use parameter "bdf=0x3700,config=0x3,
> queue=0x0", it is expected to enter function-queue mode, but event of
> config 0x3 doesn't support func-queue mode, then it enter port-tc mode.
> it's not up to expectations.
> 
> It shouldn't enter any modes but return -ENOENT.
> 
> So, add judgement of bdf parameter to fix it.
> 
> Fixes: 66637ab137b4 ("drivers/perf: hisi: add driver for HNS3 PMU")
> Signed-off-by: Hao Chen <chenhao418@huawei.com>
> Signed-off-by: Jijie Shao <shaojijie@huawei.com>
> ---
>  drivers/perf/hisilicon/hns3_pmu.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/perf/hisilicon/hns3_pmu.c b/drivers/perf/hisilicon/hns3_pmu.c
> index 6a4d04cbae91..7f38a9e489d4 100644
> --- a/drivers/perf/hisilicon/hns3_pmu.c
> +++ b/drivers/perf/hisilicon/hns3_pmu.c
> @@ -1000,12 +1000,13 @@ static bool
>  hns3_pmu_is_enabled_port_tc_mode(struct perf_event *event,
>  				 struct hns3_pmu_event_attr *pmu_event)
>  {
> +	u16 bdf = hns3_pmu_get_bdf(event);
>  	u8 tc_id = hns3_pmu_get_tc(event);
>  
>  	if (!(pmu_event->filter_support & HNS3_PMU_FILTER_SUPPORT_PORT_TC))
>  		return false;
>  
> -	return tc_id != HNS3_PMU_FILTER_ALL_TC;
> +	return (tc_id != HNS3_PMU_FILTER_ALL_TC) && (!bdf);
>  }

Sorry, but I'm struggling to see how this correlates with your example
in the commit message, which implies that it's the config of 0x3 causing
the problem rather than the bdf.

Please can you explain the problem in more detail?

Thanks,

Will
Re: [PATCH drivers/perf: hisi: 2/2] drivers/perf: hisi: fix set wrong filter mode for running events issue
Posted by Jijie Shao 2 years, 3 months ago
on 2023/8/21 20:04, Will Deacon wrote:
>> -	return tc_id != HNS3_PMU_FILTER_ALL_TC;
>> +	return (tc_id != HNS3_PMU_FILTER_ALL_TC) && (!bdf);
>>   }
> Sorry, but I'm struggling to see how this correlates with your example
> in the commit message, which implies that it's the config of 0x3 causing
> the problem rather than the bdf.
>
> Please can you explain the problem in more detail?
>
> Thanks,
>
> Will


We'll send the v2 patch to add more details.

Jijie Shao
Re: [PATCH drivers/perf: hisi: 2/2] drivers/perf: hisi: fix set wrong filter mode for running events issue
Posted by Will Deacon 2 years, 3 months ago
On Mon, Aug 21, 2023 at 01:04:40PM +0100, Will Deacon wrote:
> [+Guangbin Huang and Shaokun Zhang]

                   The mail system

<zhangshaokun@hisilicon.com>: host mx5.hisilicon.com[124.71.93.234] said: 551
    5.1.1 <zhangshaokun@hisilicon.com>: Recipient address rejected: Failed
    recipient validation check.: host 127.0.0.1[127.0.0.1] said: 554 5.7.1
    recipient verify from ldap failed (in reply to RCPT TO command) (in reply
    to RCPT TO command)

<huangguangbin2@huawei.com>: host mx5.huawei.com[124.71.93.234] said: 551 5.1.1
    <huangguangbin2@huawei.com>: Recipient address rejected: Failed recipient
    validation check.: host 127.0.0.1[127.0.0.1] said: 554 5.7.1 recipient
    verify from ldap failed (in reply to RCPT TO command) (in reply to RCPT TO
    command)


So it's only Jonathan left in MAINTAINERS for "HISILICON HNS3 PMU DRIVER".
Lucky him!

Please can you update MAINTAINERS?

Will
Re: [PATCH drivers/perf: hisi: 2/2] drivers/perf: hisi: fix set wrong filter mode for running events issue
Posted by Jijie Shao 2 years, 3 months ago
on 2023/8/21 20:08, Will Deacon wrote:
> <zhangshaokun@hisilicon.com>: host mx5.hisilicon.com[124.71.93.234] said: 551
>      5.1.1 <zhangshaokun@hisilicon.com>: Recipient address rejected: Failed
>      recipient validation check.: host 127.0.0.1[127.0.0.1] said: 554 5.7.1
>      recipient verify from ldap failed (in reply to RCPT TO command) (in reply
>      to RCPT TO command)
>
> <huangguangbin2@huawei.com>: host mx5.huawei.com[124.71.93.234] said: 551 5.1.1
>      <huangguangbin2@huawei.com>: Recipient address rejected: Failed recipient
>      validation check.: host 127.0.0.1[127.0.0.1] said: 554 5.7.1 recipient
>      verify from ldap failed (in reply to RCPT TO command) (in reply to RCPT TO
>      command)
>
>
> So it's only Jonathan left in MAINTAINERS for "HISILICON HNS3 PMU DRIVER".
> Lucky him!
>
> Please can you update MAINTAINERS?
>
> Will


We will update MAINTAINERS shortly

Jijie Shao