From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Chen Jun <chenjun102@huawei.com>
Cc: <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<zhangshaokun@hisilicon.com>, <will@kernel.org>,
<mark.rutland@arm.com>, <xuqiang36@huawei.com>,
<linuxarm@huawei.com>
Subject: Re: [PATCH 1/1] perf: hisi: Extract hisi_pmu_init
Date: Mon, 16 May 2022 15:30:48 +0100 [thread overview]
Message-ID: <20220516153048.00007f62@Huawei.com> (raw)
In-Reply-To: <20220516131601.48383-1-chenjun102@huawei.com>
On Mon, 16 May 2022 13:16:01 +0000
Chen Jun <chenjun102@huawei.com> wrote:
> Extract the initialization code of hisi_pmu->pmu into a function
>
> Signed-off-by: Chen Jun <chenjun102@huawei.com>
Hi Chen Jun,
If you are going to do this (and I think the stats speak for it being
a good idea), then also look at whether the various exports and
header definitions for the callbacks are all needed any more.
I checked just hisi_uncore_pmu_del and that one at least is
private to hisi_uncore_pmu.c after this patch.
With those cleaned up as well the argument for removing this duplication
will be even stronger!
Thanks,
Jonathan
> ---
> drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_pmu.c | 18 ++++++++++++++++++
> drivers/perf/hisilicon/hisi_uncore_pmu.h | 2 ++
> drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 15 +--------------
> 7 files changed, 25 insertions(+), 74 deletions(-)
>
> diff --git a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
> index 62299ab5a9be..50d0c0a2f1fe 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
> @@ -516,21 +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);
>
> - ddrc_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 = ddrc_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&ddrc_pmu->pmu, name, ddrc_pmu->pmu_events.attr_groups, 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 393513150106..13017b3412a5 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
> @@ -519,21 +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);
> - hha_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 = hha_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&hha_pmu->pmu, name, hha_pmu->pmu_events.attr_groups, 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 560ab964c8b5..2995f3630d49 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
> @@ -557,21 +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);
> - l3c_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 = l3c_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&l3c_pmu->pmu, name, l3c_pmu->pmu_events.attr_groups, 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 bad99d149172..2103fb5ee7bb 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
> @@ -416,21 +416,7 @@ static int hisi_pa_pmu_probe(struct platform_device *pdev)
> return ret;
> }
>
> - pa_pmu->pmu = (struct pmu) {
> - .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 = pa_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> -
> + hisi_pmu_init(&pa_pmu->pmu, name, pa_pmu->pmu_events.attr_groups, 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 358e4e284a62..5dd2694dbdf8 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_pmu.c
> @@ -527,4 +527,22 @@ 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)
> +{
> + pmu->name = name;
> + pmu->module = module;
> + pmu->task_ctx_nr = perf_invalid_context;
> + pmu->event_init = hisi_uncore_pmu_event_init;
> + pmu->pmu_enable = hisi_uncore_pmu_enable;
> + pmu->pmu_disable = hisi_uncore_pmu_disable;
> + pmu->add = hisi_uncore_pmu_add;
> + pmu->del = hisi_uncore_pmu_del;
> + pmu->start = hisi_uncore_pmu_start;
> + pmu->stop = hisi_uncore_pmu_stop;
> + pmu->read = hisi_uncore_pmu_read;
> + pmu->attr_groups = attr_groups;
> +}
> +EXPORT_SYMBOL_GPL(hisi_pmu_init);
> +
> MODULE_LICENSE("GPL v2");
> diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.h b/drivers/perf/hisilicon/hisi_uncore_pmu.h
> index 7f5841d6f592..6e2523e4aa36 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_pmu.h
> +++ b/drivers/perf/hisilicon/hisi_uncore_pmu.h
> @@ -120,4 +120,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);
> #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 6aedc303ff56..b9c79f17230c 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
> @@ -445,20 +445,7 @@ static int hisi_sllc_pmu_probe(struct platform_device *pdev)
> return ret;
> }
>
> - sllc_pmu->pmu = (struct pmu) {
> - .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 = sllc_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&sllc_pmu->pmu, name, sllc_pmu->pmu_events.attr_groups, THIS_MODULE);
>
> ret = perf_pmu_register(&sllc_pmu->pmu, name, -1);
> if (ret) {
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Chen Jun <chenjun102@huawei.com>
Cc: <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<zhangshaokun@hisilicon.com>, <will@kernel.org>,
<mark.rutland@arm.com>, <xuqiang36@huawei.com>,
<linuxarm@huawei.com>
Subject: Re: [PATCH 1/1] perf: hisi: Extract hisi_pmu_init
Date: Mon, 16 May 2022 15:30:48 +0100 [thread overview]
Message-ID: <20220516153048.00007f62@Huawei.com> (raw)
In-Reply-To: <20220516131601.48383-1-chenjun102@huawei.com>
On Mon, 16 May 2022 13:16:01 +0000
Chen Jun <chenjun102@huawei.com> wrote:
> Extract the initialization code of hisi_pmu->pmu into a function
>
> Signed-off-by: Chen Jun <chenjun102@huawei.com>
Hi Chen Jun,
If you are going to do this (and I think the stats speak for it being
a good idea), then also look at whether the various exports and
header definitions for the callbacks are all needed any more.
I checked just hisi_uncore_pmu_del and that one at least is
private to hisi_uncore_pmu.c after this patch.
With those cleaned up as well the argument for removing this duplication
will be even stronger!
Thanks,
Jonathan
> ---
> drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 16 +---------------
> drivers/perf/hisilicon/hisi_uncore_pmu.c | 18 ++++++++++++++++++
> drivers/perf/hisilicon/hisi_uncore_pmu.h | 2 ++
> drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 15 +--------------
> 7 files changed, 25 insertions(+), 74 deletions(-)
>
> diff --git a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
> index 62299ab5a9be..50d0c0a2f1fe 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
> @@ -516,21 +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);
>
> - ddrc_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 = ddrc_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&ddrc_pmu->pmu, name, ddrc_pmu->pmu_events.attr_groups, 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 393513150106..13017b3412a5 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_hha_pmu.c
> @@ -519,21 +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);
> - hha_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 = hha_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&hha_pmu->pmu, name, hha_pmu->pmu_events.attr_groups, 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 560ab964c8b5..2995f3630d49 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c
> @@ -557,21 +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);
> - l3c_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 = l3c_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&l3c_pmu->pmu, name, l3c_pmu->pmu_events.attr_groups, 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 bad99d149172..2103fb5ee7bb 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c
> @@ -416,21 +416,7 @@ static int hisi_pa_pmu_probe(struct platform_device *pdev)
> return ret;
> }
>
> - pa_pmu->pmu = (struct pmu) {
> - .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 = pa_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> -
> + hisi_pmu_init(&pa_pmu->pmu, name, pa_pmu->pmu_events.attr_groups, 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 358e4e284a62..5dd2694dbdf8 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_pmu.c
> @@ -527,4 +527,22 @@ 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)
> +{
> + pmu->name = name;
> + pmu->module = module;
> + pmu->task_ctx_nr = perf_invalid_context;
> + pmu->event_init = hisi_uncore_pmu_event_init;
> + pmu->pmu_enable = hisi_uncore_pmu_enable;
> + pmu->pmu_disable = hisi_uncore_pmu_disable;
> + pmu->add = hisi_uncore_pmu_add;
> + pmu->del = hisi_uncore_pmu_del;
> + pmu->start = hisi_uncore_pmu_start;
> + pmu->stop = hisi_uncore_pmu_stop;
> + pmu->read = hisi_uncore_pmu_read;
> + pmu->attr_groups = attr_groups;
> +}
> +EXPORT_SYMBOL_GPL(hisi_pmu_init);
> +
> MODULE_LICENSE("GPL v2");
> diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.h b/drivers/perf/hisilicon/hisi_uncore_pmu.h
> index 7f5841d6f592..6e2523e4aa36 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_pmu.h
> +++ b/drivers/perf/hisilicon/hisi_uncore_pmu.h
> @@ -120,4 +120,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);
> #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 6aedc303ff56..b9c79f17230c 100644
> --- a/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
> +++ b/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c
> @@ -445,20 +445,7 @@ static int hisi_sllc_pmu_probe(struct platform_device *pdev)
> return ret;
> }
>
> - sllc_pmu->pmu = (struct pmu) {
> - .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 = sllc_pmu->pmu_events.attr_groups,
> - .capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> - };
> + hisi_pmu_init(&sllc_pmu->pmu, name, sllc_pmu->pmu_events.attr_groups, THIS_MODULE);
>
> ret = perf_pmu_register(&sllc_pmu->pmu, name, -1);
> if (ret) {
next prev parent reply other threads:[~2022-05-16 14:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-16 13:16 [PATCH 1/1] perf: hisi: Extract hisi_pmu_init Chen Jun
2022-05-16 13:16 ` Chen Jun
2022-05-16 14:30 ` Jonathan Cameron [this message]
2022-05-16 14:30 ` Jonathan Cameron
2022-05-16 15:32 ` John Garry
2022-05-16 15:32 ` John Garry
2022-06-27 13:00 ` Will Deacon
2022-06-27 13:00 ` Will Deacon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220516153048.00007f62@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=chenjun102@huawei.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=mark.rutland@arm.com \
--cc=will@kernel.org \
--cc=xuqiang36@huawei.com \
--cc=zhangshaokun@hisilicon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.