linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [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).