diff mbox series

perf/arm-cmn: Set PMU device parent

Message ID 25d4428df1ddad966c74a3ed60171cd3ca6c8b66.1712682917.git.robin.murphy@arm.com (mailing list archive)
State New
Headers show
Series perf/arm-cmn: Set PMU device parent | expand

Commit Message

Robin Murphy April 9, 2024, 5:15 p.m. UTC
Now that perf supports giving the PMU device a parent, we can use our
platform device to make the relationship between CMN instances and PMU
IDs trivially discoverable, from either nominal direction:

root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
arm_cmn_0
root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
/sys/devices/platform/ARMHC600:00

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
 drivers/perf/arm-cmn.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Will Deacon April 10, 2024, 3:58 p.m. UTC | #1
On Tue, 09 Apr 2024 18:15:17 +0100, Robin Murphy wrote:
> Now that perf supports giving the PMU device a parent, we can use our
> platform device to make the relationship between CMN instances and PMU
> IDs trivially discoverable, from either nominal direction:
> 
> root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
> arm_cmn_0
> root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
> /sys/devices/platform/ARMHC600:00
> 
> [...]

Applied to will (for-next/perf), thanks!

[1/1] perf/arm-cmn: Set PMU device parent
      https://git.kernel.org/will/c/8f9f5041c646

Cheers,
Jonathan Cameron April 10, 2024, 5:04 p.m. UTC | #2
On Tue,  9 Apr 2024 18:15:17 +0100
Robin Murphy <robin.murphy@arm.com> wrote:

> Now that perf supports giving the PMU device a parent, we can use our
> platform device to make the relationship between CMN instances and PMU
> IDs trivially discoverable, from either nominal direction:
> 
> root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
> arm_cmn_0
> root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
> /sys/devices/platform/ARMHC600:00
> 
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Nice.  I'd forgotten all about this :( 

https://lore.kernel.org/all/20230404134225.13408-1-Jonathan.Cameron@huawei.com/
still has a bunch of these + there were many I never looked into.

Guess I should respin that series though probably 50% at least still apply.

J


> ---
>  drivers/perf/arm-cmn.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
> index 7ef9c7e4836b..b2c607cf3ad7 100644
> --- a/drivers/perf/arm-cmn.c
> +++ b/drivers/perf/arm-cmn.c
> @@ -2482,6 +2482,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
>  	cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
>  	cmn->pmu = (struct pmu) {
>  		.module = THIS_MODULE,
> +		.parent = cmn->dev,
>  		.attr_groups = arm_cmn_attr_groups,
>  		.capabilities = PERF_PMU_CAP_NO_EXCLUDE,
>  		.task_ctx_nr = perf_invalid_context,
Jonathan Cameron April 10, 2024, 5:12 p.m. UTC | #3
On Wed, 10 Apr 2024 18:04:03 +0100
Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:

> On Tue,  9 Apr 2024 18:15:17 +0100
> Robin Murphy <robin.murphy@arm.com> wrote:
> 
> > Now that perf supports giving the PMU device a parent, we can use our
> > platform device to make the relationship between CMN instances and PMU
> > IDs trivially discoverable, from either nominal direction:
> > 
> > root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
> > arm_cmn_0
> > root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
> > /sys/devices/platform/ARMHC600:00
> > 
> > Signed-off-by: Robin Murphy <robin.murphy@arm.com>  
> Nice.  I'd forgotten all about this :( 
> 
> https://lore.kernel.org/all/20230404134225.13408-1-Jonathan.Cameron@huawei.com/
> still has a bunch of these + there were many I never looked into.
> 
> Guess I should respin that series though probably 50% at least still apply.

Ironically other than this one, almost the only ones that didn't go in cleanly
are the hisilicon drivers where there was some churn.

Will, if you 'want' to pick any of those up directly feel free, if not I'll sent
them out again in a few days time (and check there weren't any requests for
changes buried in that rather extensive thread!)

Jonathan

> 
> J
> 
> 
> > ---
> >  drivers/perf/arm-cmn.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
> > index 7ef9c7e4836b..b2c607cf3ad7 100644
> > --- a/drivers/perf/arm-cmn.c
> > +++ b/drivers/perf/arm-cmn.c
> > @@ -2482,6 +2482,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
> >  	cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
> >  	cmn->pmu = (struct pmu) {
> >  		.module = THIS_MODULE,
> > +		.parent = cmn->dev,
> >  		.attr_groups = arm_cmn_attr_groups,
> >  		.capabilities = PERF_PMU_CAP_NO_EXCLUDE,
> >  		.task_ctx_nr = perf_invalid_context,  
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Robin Murphy April 10, 2024, 6:35 p.m. UTC | #4
On 2024-04-10 6:04 pm, Jonathan Cameron wrote:
> On Tue,  9 Apr 2024 18:15:17 +0100
> Robin Murphy <robin.murphy@arm.com> wrote:
> 
>> Now that perf supports giving the PMU device a parent, we can use our
>> platform device to make the relationship between CMN instances and PMU
>> IDs trivially discoverable, from either nominal direction:
>>
>> root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
>> arm_cmn_0
>> root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
>> /sys/devices/platform/ARMHC600:00
>>
>> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> Nice.  I'd forgotten all about this :(

Yeah, I hadn't realised the core change actually got merged until I 
stumbled across it by chance yesterday, otherwise I'd have followed up 
far sooner... If only your series had been a day or two later, I'd have 
posted the original device_move() version of this one back then, and it 
might even have looked reasonable for a moment :)

Cheers,
Robin.

> https://lore.kernel.org/all/20230404134225.13408-1-Jonathan.Cameron@huawei.com/
> still has a bunch of these + there were many I never looked into.
> 
> Guess I should respin that series though probably 50% at least still apply.
> 
> J
> 
> 
>> ---
>>   drivers/perf/arm-cmn.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
>> index 7ef9c7e4836b..b2c607cf3ad7 100644
>> --- a/drivers/perf/arm-cmn.c
>> +++ b/drivers/perf/arm-cmn.c
>> @@ -2482,6 +2482,7 @@ static int arm_cmn_probe(struct platform_device *pdev)
>>   	cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
>>   	cmn->pmu = (struct pmu) {
>>   		.module = THIS_MODULE,
>> +		.parent = cmn->dev,
>>   		.attr_groups = arm_cmn_attr_groups,
>>   		.capabilities = PERF_PMU_CAP_NO_EXCLUDE,
>>   		.task_ctx_nr = perf_invalid_context,
>
Will Deacon April 11, 2024, 10:31 a.m. UTC | #5
On Wed, Apr 10, 2024 at 06:12:26PM +0100, Jonathan Cameron wrote:
> On Wed, 10 Apr 2024 18:04:03 +0100
> Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:
> 
> > On Tue,  9 Apr 2024 18:15:17 +0100
> > Robin Murphy <robin.murphy@arm.com> wrote:
> > 
> > > Now that perf supports giving the PMU device a parent, we can use our
> > > platform device to make the relationship between CMN instances and PMU
> > > IDs trivially discoverable, from either nominal direction:
> > > 
> > > root@crazy-taxi:~# ls /sys/devices/platform/ARMHC600:00 | grep cmn
> > > arm_cmn_0
> > > root@crazy-taxi:~# realpath /sys/bus/event_source/devices/arm_cmn_0/..
> > > /sys/devices/platform/ARMHC600:00
> > > 
> > > Signed-off-by: Robin Murphy <robin.murphy@arm.com>  
> > Nice.  I'd forgotten all about this :( 
> > 
> > https://lore.kernel.org/all/20230404134225.13408-1-Jonathan.Cameron@huawei.com/
> > still has a bunch of these + there were many I never looked into.
> > 
> > Guess I should respin that series though probably 50% at least still apply.
> 
> Ironically other than this one, almost the only ones that didn't go in cleanly
> are the hisilicon drivers where there was some churn.
> 
> Will, if you 'want' to pick any of those up directly feel free, if not I'll sent
> them out again in a few days time (and check there weren't any requests for
> changes buried in that rather extensive thread!)

It's probably best to send a new series regardless, but I'm happy to
pick up anything touching drivers/perf/ if they don't depend on any core
changes.

Will
diff mbox series

Patch

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 7ef9c7e4836b..b2c607cf3ad7 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -2482,6 +2482,7 @@  static int arm_cmn_probe(struct platform_device *pdev)
 	cmn->cpu = cpumask_local_spread(0, dev_to_node(cmn->dev));
 	cmn->pmu = (struct pmu) {
 		.module = THIS_MODULE,
+		.parent = cmn->dev,
 		.attr_groups = arm_cmn_attr_groups,
 		.capabilities = PERF_PMU_CAP_NO_EXCLUDE,
 		.task_ctx_nr = perf_invalid_context,