* [PATCH 0/3] Setting the pmu::capability and modify some code styles
@ 2023-01-19 10:03 Junhao He
2023-01-19 10:03 ` [PATCH 1/3] drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability Junhao He
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Junhao He @ 2023-01-19 10:03 UTC (permalink / raw)
To: will, linux-kernel, jonathan.cameron, mark.rutland
Cc: linux-arm-kernel, zhangshaokun, catalin.marinas, kernel-team,
linuxarm, yangyicong, f.fangjian, shenyang39, prime.zeng,
hejunhao3
Advertise the PERF_PMU_CAP_NO_EXCLUDE capability.
And modify some code style, include the following:
1) Simplify the parameters of hisi_pmu_init() function.
2) Use hisi_pmu_init() function to simplify initialization of "hisi_pmu->pmu".
Junhao He (3):
drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability
drivers/perf: hisi: Simplify the parameters of hisi_pmu_init()
drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu"
drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c | 16 +---------------
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 9 ++++++---
drivers/perf/hisilicon/hisi_uncore_pmu.h | 4 ++--
drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 2 +-
8 files changed, 14 insertions(+), 25 deletions(-)
--
2.33.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability
2023-01-19 10:03 [PATCH 0/3] Setting the pmu::capability and modify some code styles Junhao He
@ 2023-01-19 10:03 ` Junhao He
2023-01-19 10:03 ` [PATCH 2/3] drivers/perf: hisi: Simplify the parameters of hisi_pmu_init() Junhao He
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Junhao He @ 2023-01-19 10:03 UTC (permalink / raw)
To: will, linux-kernel, jonathan.cameron, mark.rutland
Cc: linux-arm-kernel, zhangshaokun, catalin.marinas, kernel-team,
linuxarm, yangyicong, f.fangjian, shenyang39, prime.zeng,
hejunhao3
Missed initialization the variable of pmu::capabilities when extract
the initialization code of hisi_pmu->pmu into a function.
HISI UNCORE PMU drivers counters that not support context exclusion.
So we have to advertise the PERF_PMU_CAP_NO_EXCLUDE capability.
This ensures that perf will prevent us from handling events where
any exclusion flags are set.
Signed-off-by: Junhao He <hejunhao3@huawei.com>
---
drivers/perf/hisilicon/hisi_uncore_pmu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.c b/drivers/perf/hisilicon/hisi_uncore_pmu.c
index fbc8a93d5eac..2a466477920b 100644
--- a/drivers/perf/hisilicon/hisi_uncore_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_pmu.c
@@ -546,6 +546,7 @@ void hisi_pmu_init(struct pmu *pmu, const char *name,
pmu->stop = hisi_uncore_pmu_stop;
pmu->read = hisi_uncore_pmu_read;
pmu->attr_groups = attr_groups;
+ pmu->capabilities = PERF_PMU_CAP_NO_EXCLUDE;
}
EXPORT_SYMBOL_GPL(hisi_pmu_init);
--
2.33.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] drivers/perf: hisi: Simplify the parameters of hisi_pmu_init()
2023-01-19 10:03 [PATCH 0/3] Setting the pmu::capability and modify some code styles Junhao He
2023-01-19 10:03 ` [PATCH 1/3] drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability Junhao He
@ 2023-01-19 10:03 ` Junhao He
2023-01-19 10:03 ` [PATCH 3/3] drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu" Junhao He
2023-01-19 19:08 ` [PATCH 0/3] Setting the pmu::capability and modify some code styles Will Deacon
3 siblings, 0 replies; 5+ messages in thread
From: Junhao He @ 2023-01-19 10:03 UTC (permalink / raw)
To: will, linux-kernel, jonathan.cameron, mark.rutland
Cc: linux-arm-kernel, zhangshaokun, catalin.marinas, kernel-team,
linuxarm, yangyicong, f.fangjian, shenyang39, prime.zeng,
hejunhao3
Use "hisi_pmu" to simplify the parameter list for the hisi_pmu_init()
function.
Signed-off-by: Junhao He <hejunhao3@huawei.com>
---
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 2 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 8 +++++---
drivers/perf/hisilicon/hisi_uncore_pmu.h | 4 ++--
drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 2 +-
7 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
index 50d0c0a2f1fe..8c3ffcbfd4c0 100644
--- a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
@@ -516,7 +516,7 @@ static int hisi_ddrc_pmu_probe(struct platform_device *pdev)
"hisi_sccl%u_ddrc%u", ddrc_pmu->sccl_id,
ddrc_pmu->index_id);
- hisi_pmu_init(&ddrc_pmu->pmu, name, ddrc_pmu->pmu_events.attr_groups, THIS_MODULE);
+ hisi_pmu_init(ddrc_pmu, name, THIS_MODULE);
ret = perf_pmu_register(&ddrc_pmu->pmu, name, -1);
if (ret) {
diff --git a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
index 13017b3412a5..806698b9eabf 100644
--- a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
@@ -519,7 +519,7 @@ static int hisi_hha_pmu_probe(struct platform_device *pdev)
name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "hisi_sccl%u_hha%u",
hha_pmu->sccl_id, hha_pmu->index_id);
- hisi_pmu_init(&hha_pmu->pmu, name, hha_pmu->pmu_events.attr_groups, THIS_MODULE);
+ hisi_pmu_init(hha_pmu, name, THIS_MODULE);
ret = perf_pmu_register(&hha_pmu->pmu, name, -1);
if (ret) {
diff --git a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
index 2995f3630d49..5b2c35f1658a 100644
--- a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
@@ -557,7 +557,7 @@ static int hisi_l3c_pmu_probe(struct platform_device *pdev)
*/
name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "hisi_sccl%u_l3c%u",
l3c_pmu->sccl_id, l3c_pmu->ccl_id);
- hisi_pmu_init(&l3c_pmu->pmu, name, l3c_pmu->pmu_events.attr_groups, THIS_MODULE);
+ hisi_pmu_init(l3c_pmu, name, THIS_MODULE);
ret = perf_pmu_register(&l3c_pmu->pmu, name, -1);
if (ret) {
diff --git a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
index 47d3cc9b6eec..afe3419f3f6d 100644
--- a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
@@ -412,7 +412,7 @@ static int hisi_pa_pmu_probe(struct platform_device *pdev)
return ret;
}
- hisi_pmu_init(&pa_pmu->pmu, name, pa_pmu->pmu_events.attr_groups, THIS_MODULE);
+ hisi_pmu_init(pa_pmu, name, THIS_MODULE);
ret = perf_pmu_register(&pa_pmu->pmu, name, -1);
if (ret) {
dev_err(pa_pmu->dev, "PMU register failed, ret = %d\n", ret);
diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.c b/drivers/perf/hisilicon/hisi_uncore_pmu.c
index 2a466477920b..f1b0f5e1a28f 100644
--- a/drivers/perf/hisilicon/hisi_uncore_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_pmu.c
@@ -531,9 +531,11 @@ int hisi_uncore_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
}
EXPORT_SYMBOL_GPL(hisi_uncore_pmu_offline_cpu);
-void hisi_pmu_init(struct pmu *pmu, const char *name,
- const struct attribute_group **attr_groups, struct module *module)
+void hisi_pmu_init(struct hisi_pmu *hisi_pmu, const char *name,
+ struct module *module)
{
+ struct pmu *pmu = &hisi_pmu->pmu;
+
pmu->name = name;
pmu->module = module;
pmu->task_ctx_nr = perf_invalid_context;
@@ -545,7 +547,7 @@ void hisi_pmu_init(struct pmu *pmu, const char *name,
pmu->start = hisi_uncore_pmu_start;
pmu->stop = hisi_uncore_pmu_stop;
pmu->read = hisi_uncore_pmu_read;
- pmu->attr_groups = attr_groups;
+ pmu->attr_groups = hisi_pmu->pmu_events.attr_groups;
pmu->capabilities = PERF_PMU_CAP_NO_EXCLUDE;
}
EXPORT_SYMBOL_GPL(hisi_pmu_init);
diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.h b/drivers/perf/hisilicon/hisi_uncore_pmu.h
index b59de33cd059..f8e3cc6903d7 100644
--- a/drivers/perf/hisilicon/hisi_uncore_pmu.h
+++ b/drivers/perf/hisilicon/hisi_uncore_pmu.h
@@ -121,6 +121,6 @@ ssize_t hisi_uncore_pmu_identifier_attr_show(struct device *dev,
int hisi_uncore_pmu_init_irq(struct hisi_pmu *hisi_pmu,
struct platform_device *pdev);
-void hisi_pmu_init(struct pmu *pmu, const char *name,
- const struct attribute_group **attr_groups, struct module *module);
+void hisi_pmu_init(struct hisi_pmu *hisi_pmu, const char *name,
+ struct module *module);
#endif /* __HISI_UNCORE_PMU_H__ */
diff --git a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
index b9c79f17230c..1e354433776a 100644
--- a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
@@ -445,7 +445,7 @@ static int hisi_sllc_pmu_probe(struct platform_device *pdev)
return ret;
}
- hisi_pmu_init(&sllc_pmu->pmu, name, sllc_pmu->pmu_events.attr_groups, THIS_MODULE);
+ hisi_pmu_init(sllc_pmu, name, THIS_MODULE);
ret = perf_pmu_register(&sllc_pmu->pmu, name, -1);
if (ret) {
--
2.33.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu"
2023-01-19 10:03 [PATCH 0/3] Setting the pmu::capability and modify some code styles Junhao He
2023-01-19 10:03 ` [PATCH 1/3] drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability Junhao He
2023-01-19 10:03 ` [PATCH 2/3] drivers/perf: hisi: Simplify the parameters of hisi_pmu_init() Junhao He
@ 2023-01-19 10:03 ` Junhao He
2023-01-19 19:08 ` [PATCH 0/3] Setting the pmu::capability and modify some code styles Will Deacon
3 siblings, 0 replies; 5+ messages in thread
From: Junhao He @ 2023-01-19 10:03 UTC (permalink / raw)
To: will, linux-kernel, jonathan.cameron, mark.rutland
Cc: linux-arm-kernel, zhangshaokun, catalin.marinas, kernel-team,
linuxarm, yangyicong, f.fangjian, shenyang39, prime.zeng,
hejunhao3
Use hisi_pmu_init() function to simplify initialization of "cpa_pmu->pmu".
Signed-off-by: Junhao He <hejunhao3@huawei.com>
---
drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c b/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
index a9bb73f76be4..4c67d57217a7 100644
--- a/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
@@ -316,21 +316,7 @@ static int hisi_cpa_pmu_probe(struct platform_device *pdev)
if (!name)
return -ENOMEM;
- cpa_pmu->pmu = (struct pmu) {
- .name = name,
- .module = THIS_MODULE,
- .task_ctx_nr = perf_invalid_context,
- .event_init = hisi_uncore_pmu_event_init,
- .pmu_enable = hisi_uncore_pmu_enable,
- .pmu_disable = hisi_uncore_pmu_disable,
- .add = hisi_uncore_pmu_add,
- .del = hisi_uncore_pmu_del,
- .start = hisi_uncore_pmu_start,
- .stop = hisi_uncore_pmu_stop,
- .read = hisi_uncore_pmu_read,
- .attr_groups = cpa_pmu->pmu_events.attr_groups,
- .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
- };
+ hisi_pmu_init(cpa_pmu, name, THIS_MODULE);
/* Power Management should be disabled before using CPA PMU. */
hisi_cpa_pmu_disable_pm(cpa_pmu);
--
2.33.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 0/3] Setting the pmu::capability and modify some code styles
2023-01-19 10:03 [PATCH 0/3] Setting the pmu::capability and modify some code styles Junhao He
` (2 preceding siblings ...)
2023-01-19 10:03 ` [PATCH 3/3] drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu" Junhao He
@ 2023-01-19 19:08 ` Will Deacon
3 siblings, 0 replies; 5+ messages in thread
From: Will Deacon @ 2023-01-19 19:08 UTC (permalink / raw)
To: mark.rutland, jonathan.cameron, linux-kernel, Junhao He
Cc: catalin.marinas, kernel-team, Will Deacon, zhangshaokun,
linux-arm-kernel, yangyicong, f.fangjian, shenyang39, linuxarm,
prime.zeng
On Thu, 19 Jan 2023 18:03:04 +0800, Junhao He wrote:
> Advertise the PERF_PMU_CAP_NO_EXCLUDE capability.
>
> And modify some code style, include the following:
> 1) Simplify the parameters of hisi_pmu_init() function.
> 2) Use hisi_pmu_init() function to simplify initialization of "hisi_pmu->pmu".
>
> Junhao He (3):
> drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability
> drivers/perf: hisi: Simplify the parameters of hisi_pmu_init()
> drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu"
>
> [...]
Applied to will (for-next/perf), thanks!
[1/3] drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability
https://git.kernel.org/will/c/7f95da9d2dc4
[2/3] drivers/perf: hisi: Simplify the parameters of hisi_pmu_init()
https://git.kernel.org/will/c/053b5579dacf
[3/3] drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu"
https://git.kernel.org/will/c/e126f6f42f89
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-01-19 19:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-19 10:03 [PATCH 0/3] Setting the pmu::capability and modify some code styles Junhao He
2023-01-19 10:03 ` [PATCH 1/3] drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability Junhao He
2023-01-19 10:03 ` [PATCH 2/3] drivers/perf: hisi: Simplify the parameters of hisi_pmu_init() Junhao He
2023-01-19 10:03 ` [PATCH 3/3] drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu" Junhao He
2023-01-19 19:08 ` [PATCH 0/3] Setting the pmu::capability and modify some code styles Will Deacon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).