diff mbox series

perf/arm-cmn: fix regitster offset of CMN_MXP__CONNECT_INFO_P2-5

Message ID 1680169620-26012-1-git-send-email-renyu.zj@linux.alibaba.com
State New
Headers show
Series perf/arm-cmn: fix regitster offset of CMN_MXP__CONNECT_INFO_P2-5 | expand

Commit Message

Jing Zhang March 30, 2023, 9:47 a.m. UTC
In the CMN700 specification, it is described that the address offset
of the mxp_device_connect_info_p0-5 register is 16'h8 + #{8*index}.
Therefore, the address offset of the CMN_MXP__CONNECT_INFO_P2-5 macro
defined in the code is wrong, which causes the cmn700 topology map
incorrect printed in debugfs.

So correct the address offset value to make the cmn700 topology map
correct in debugfs.

Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features")
Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
Signed-off-by: Ruidong Tian <tianruidong@linux.alibaba.com>
---
 drivers/perf/arm-cmn.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Mark Rutland April 3, 2023, 7:45 a.m. UTC | #1
On Thu, Mar 30, 2023 at 11:34:22AM +0100, Robin Murphy wrote:
> On 2023-03-30 10:47, Jing Zhang wrote:
> > In the CMN700 specification, it is described that the address offset
> > of the mxp_device_connect_info_p0-5 register is 16'h8 + #{8*index}.
> > Therefore, the address offset of the CMN_MXP__CONNECT_INFO_P2-5 macro
> > defined in the code is wrong, which causes the cmn700 topology map
> > incorrect printed in debugfs.
> > 
> > So correct the address offset value to make the cmn700 topology map
> > correct in debugfs.
> > 
> > Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features")
> 
> Ugh, these offsets are correct for CI-700, so strictly that commit is fine.
> What I failed to notice is that CMN-700 shuffled the mesh_port_connect_info
> registers out of the way, so it's commit 23760a014417 which should have
> added more handling for this difference.

I'm assuming that means that this patch breaks !CMN-700 ?

i.e. a more substantial fix is necessary, and it's not just a matter of
changing the Fixes tag.

Thanks,
Mark.

> 
> Thanks,
> Robin.
> 
> > Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
> > Signed-off-by: Ruidong Tian <tianruidong@linux.alibaba.com>
> > ---
> >   drivers/perf/arm-cmn.c | 8 ++++----
> >   1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
> > index 1deb61b..e9f844b 100644
> > --- a/drivers/perf/arm-cmn.c
> > +++ b/drivers/perf/arm-cmn.c
> > @@ -59,10 +59,10 @@
> >   /* XPs also have some local topology info which has uses too */
> >   #define CMN_MXP__CONNECT_INFO_P0	0x0008
> >   #define CMN_MXP__CONNECT_INFO_P1	0x0010
> > -#define CMN_MXP__CONNECT_INFO_P2	0x0028
> > -#define CMN_MXP__CONNECT_INFO_P3	0x0030
> > -#define CMN_MXP__CONNECT_INFO_P4	0x0038
> > -#define CMN_MXP__CONNECT_INFO_P5	0x0040
> > +#define CMN_MXP__CONNECT_INFO_P2	0x0018
> > +#define CMN_MXP__CONNECT_INFO_P3	0x0020
> > +#define CMN_MXP__CONNECT_INFO_P4	0x0028
> > +#define CMN_MXP__CONNECT_INFO_P5	0x0030
> >   #define CMN__CONNECT_INFO_DEVICE_TYPE	GENMASK_ULL(4, 0)
> >   /* PMU registers occupy the 3rd 4KB page of each node's region */
Robin Murphy April 3, 2023, 9:40 a.m. UTC | #2
On 2023-04-03 08:45, Mark Rutland wrote:
> On Thu, Mar 30, 2023 at 11:34:22AM +0100, Robin Murphy wrote:
>> On 2023-03-30 10:47, Jing Zhang wrote:
>>> In the CMN700 specification, it is described that the address offset
>>> of the mxp_device_connect_info_p0-5 register is 16'h8 + #{8*index}.
>>> Therefore, the address offset of the CMN_MXP__CONNECT_INFO_P2-5 macro
>>> defined in the code is wrong, which causes the cmn700 topology map
>>> incorrect printed in debugfs.
>>>
>>> So correct the address offset value to make the cmn700 topology map
>>> correct in debugfs.
>>>
>>> Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features")
>>
>> Ugh, these offsets are correct for CI-700, so strictly that commit is fine.
>> What I failed to notice is that CMN-700 shuffled the mesh_port_connect_info
>> registers out of the way, so it's commit 23760a014417 which should have
>> added more handling for this difference.
> 
> I'm assuming that means that this patch breaks !CMN-700 ?
> 
> i.e. a more substantial fix is necessary, and it's not just a matter of
> changing the Fixes tag.

Yes, indeed. I have half an idea, and the plan for this week was to work 
on other CMN stuff anyway, so I'll see what I can cook up.

Cheers,
Robin.
Jing Zhang April 3, 2023, 9:42 a.m. UTC | #3
在 2023/4/3 下午5:40, Robin Murphy 写道:
> On 2023-04-03 08:45, Mark Rutland wrote:
>> On Thu, Mar 30, 2023 at 11:34:22AM +0100, Robin Murphy wrote:
>>> On 2023-03-30 10:47, Jing Zhang wrote:
>>>> In the CMN700 specification, it is described that the address offset
>>>> of the mxp_device_connect_info_p0-5 register is 16'h8 + #{8*index}.
>>>> Therefore, the address offset of the CMN_MXP__CONNECT_INFO_P2-5 macro
>>>> defined in the code is wrong, which causes the cmn700 topology map
>>>> incorrect printed in debugfs.
>>>>
>>>> So correct the address offset value to make the cmn700 topology map
>>>> correct in debugfs.
>>>>
>>>> Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features")
>>>
>>> Ugh, these offsets are correct for CI-700, so strictly that commit is fine.
>>> What I failed to notice is that CMN-700 shuffled the mesh_port_connect_info
>>> registers out of the way, so it's commit 23760a014417 which should have
>>> added more handling for this difference.
>>
>> I'm assuming that means that this patch breaks !CMN-700 ?
>>
>> i.e. a more substantial fix is necessary, and it's not just a matter of
>> changing the Fixes tag.
> 
> Yes, indeed. I have half an idea, and the plan for this week was to work on other CMN stuff anyway, so I'll see what I can cook up.
> 
> Cheers,
> Robin.

Yes, I did ignore the CI700 situation, I don't know much about !CMN700.
Robin, can you please help to fix this problem? Thank you so much.

Thanks,
Jing
diff mbox series

Patch

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 1deb61b..e9f844b 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -59,10 +59,10 @@ 
 /* XPs also have some local topology info which has uses too */
 #define CMN_MXP__CONNECT_INFO_P0	0x0008
 #define CMN_MXP__CONNECT_INFO_P1	0x0010
-#define CMN_MXP__CONNECT_INFO_P2	0x0028
-#define CMN_MXP__CONNECT_INFO_P3	0x0030
-#define CMN_MXP__CONNECT_INFO_P4	0x0038
-#define CMN_MXP__CONNECT_INFO_P5	0x0040
+#define CMN_MXP__CONNECT_INFO_P2	0x0018
+#define CMN_MXP__CONNECT_INFO_P3	0x0020
+#define CMN_MXP__CONNECT_INFO_P4	0x0028
+#define CMN_MXP__CONNECT_INFO_P5	0x0030
 #define CMN__CONNECT_INFO_DEVICE_TYPE	GENMASK_ULL(4, 0)
 
 /* PMU registers occupy the 3rd 4KB page of each node's region */