2023-08-17 16:24:59

by Jijie Shao

[permalink] [raw]
Subject: [PATCH drivers/perf: hisi: 0/2] There are some bugfix for the hisi perf driver

There are some bugfix for the hisi perf driver

Hao Chen (2):
drivers/perf: hisi: hns3: default use hardware event 0 as group leader
event.
drivers/perf: hisi: fix set wrong filter mode for running events issue

drivers/perf/hisilicon/hns3_pmu.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

--
2.30.0



2023-08-19 09:05:45

by Jijie Shao

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

From: Hao Chen <[email protected]>

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 <[email protected]>
Signed-off-by: Jijie Shao <[email protected]>
---
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


2023-08-21 14:20:48

by Will Deacon

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

[+Guangbin Huang and Shaokun Zhang]

On Wed, Aug 16, 2023 at 05:46:19PM +0800, Jijie Shao wrote:
> From: Hao Chen <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Jijie Shao <[email protected]>
> ---
> 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

2023-08-21 16:19:37

by Jijie Shao

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


on 2023/8/21 20:08, Will Deacon wrote:
> <[email protected]>: host mx5.hisilicon.com[124.71.93.234] said: 551
> 5.1.1 <[email protected]>: 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)
>
> <[email protected]>: host mx5.huawei.com[124.71.93.234] said: 551 5.1.1
> <[email protected]>: 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


2023-08-23 03:05:47

by Jijie Shao

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


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