diff mbox series

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

Message ID 20230816094619.3563784-3-shaojijie@huawei.com (mailing list archive)
State New, archived
Headers show
Series There are some bugfix for the hisi perf driver | expand

Commit Message

Jijie Shao Aug. 16, 2023, 9:46 a.m. UTC
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(-)

Comments

Will Deacon Aug. 21, 2023, 12:04 p.m. UTC | #1
[+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
Will Deacon Aug. 21, 2023, 12:08 p.m. UTC | #2
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
Jijie Shao Aug. 21, 2023, 12:32 p.m. UTC | #3
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
Jijie Shao Aug. 23, 2023, 2:33 a.m. UTC | #4
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
diff mbox series

Patch

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