From: Qian Cai <quic_qiancai@quicinc.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: <will@kernel.org>, <mark.rutland@arm.com>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 0/4] perf/arm-cmn: Add CMN-650 and CMN-700
Date: Tue, 10 May 2022 13:15:20 -0400 [thread overview]
Message-ID: <20220510171520.GA215@qian> (raw)
In-Reply-To: <cover.1650320598.git.robin.murphy@arm.com>
On Mon, Apr 18, 2022 at 11:57:37PM +0100, Robin Murphy wrote:
> Hi Will,
>
> As promised last time, here are the patches adding yet more inscrutable
> support for the other new members of the CMN family. I'm not sure if any
> of the folks who want this are the kind to give upstream feedback, but
> we can always live in hope... A colleague has kindly managed to briefly
> sanity-check the CMN-700 support under RTL emulation, but otherwise I've
> only been able to test the refactorings in terms of not breaking my
> little CMN-600 platform. Still, I'm pretty confident that that's caught
> all the stupids, and the rest is mostly just yet more events, so I
> don't think anything's particularly high-risk here.
>
> Cheers,
> Robin.
>
>
> Robin Murphy (4):
> dt-bindings: perf: arm-cmn: Add CMN-650 and CMN-700
> perf/arm-cmn: Add CMN-650 support
> perf/arm-cmn: Refactor occupancy filter selector
> perf/arm-cmn: Add CMN-700 support
>
> .../devicetree/bindings/perf/arm,cmn.yaml | 2 +
> drivers/perf/arm-cmn.c | 606 ++++++++++++++----
> 2 files changed, 485 insertions(+), 123 deletions(-)
Reverting this series fixed a null-ptr-deref while running some syscall
fuzzers by an unprivileged user on a Neoverse-N1 server with two CMN-600
(one for each socket).
KASAN: null-ptr-deref in range [0x0000000000000038-0x000000000000003f]
Mem abort info:
ESR = 0x0000000096000004
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x04: level 0 translation fault
Data abort info:
ISV = 0, ISS = 0x00000004
CM = 0, WnR = 0
[dfff800000000007] address between user and kernel address ranges
Internal error: Oops: 96000004 [#1] PREEMPT SMP
CPU: 7 PID: 115283 Comm: trinity-c57 Not tainted 5.18.0-rc6-next-20220510-dirty #93
pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : arm_cmn_event_init [arm_cmn]
lr : perf_try_init_event
sp : ffff800058eb7a00
x29: ffff800058eb7a10 x28: ffff080232bed880 x27: ffff400ccef2e120
x26: ffff400ccef2e280 x25: 000000000000001f x24: 0000000000000003
x23: 0000000000000001 x22: dfff800000000000 x21: 0000000000000219
x20: ffffb0f539491e88 x19: 0000000000000000 x18: 0000000000000000
x17: 0000000000000000 x16: 0000000000000000 x15: 0000aaaae0821540
x14: 0000000000000028 x13: 0000000000000000 x12: ffff70000b1d6f03
x11: 1ffff0000b1d6f02 x10: ffff70000b1d6f02 x9 : ffffb0f572260468
x8 : ffff800058eb7817 x7 : ffff400ccef2e200 x6 : 1fffe80199de5c40
x5 : ffffb0f53948fa00 x4 : 0000000000000000 x3 : ffff080232bed8e0
x2 : ffffb0f539491efc x1 : 0000000000000007 x0 : 0000000000000038
Call trace:
arm_cmn_event_init [arm_cmn]
perf_try_init_event
perf_init_event
perf_event_alloc
__do_sys_perf_event_open
__arm64_sys_perf_event_open
invoke_syscall
el0_svc_common.constprop.0
do_el0_svc
el0_svc
el0t_64_sync_handler
el0t_64_sync
Code: 35002a21 f9400293 9100e260 d343fc01 (38f66821)
---[ end trace 0000000000000000 ]---
Kernel panic - not syncing: Oops: Fatal exception
SMP: stopping secondary CPUs
Kernel Offset: 0x30f569c50000 from 0xffff800008000000
PHYS_OFFSET: 0x80000000
CPU features: 0x000,0042e015,19801c82
Memory Limit: none
0x3e6c is in arm_cmn_event_init (drivers/perf/arm-cmn.c:1528).
1523 }
1524
1525
1526 static int arm_cmn_event_init(struct perf_event *event)
1527 {
1528 struct arm_cmn *cmn = to_cmn(event->pmu);
1529 struct arm_cmn_hw_event *hw = to_cmn_hw(event);
1530 struct arm_cmn_node *dn;
1531 enum cmn_node_type type;
1532 bool bynodeid;
# "map_1" has the same content.
$ sudo cat /sys/kernel/debug/arm-cmn/map
X 0 1 2 3 4 5 6 7
Y P D+--------+--------+--------+--------+--------+--------+--------+--------+
5 | XP #40 | XP #41 | XP #42 | XP #43 | XP #44 | XP #45 | XP #46 | XP #47 |
| DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 |
|........|........|........|........|........|........|........|........|
0 | CXRH | HN-I | HN-I | HN-I | HN-D | HN-I | HN-I | CXRH |
0| #2 | #3 | #4 | #5 | #0 | #6 | #7 | #3 |
1| | | | | | | | |
1 | RN-D | RN-D | RN-D | RN-I | RN-I | RN-D | RN-D | RN-D |
0| #2 | #3 | #4 | #10 | #11 | #5 | #6 | #7 |
1| | | | | | | | |
-----+--------+--------+--------+--------+--------+--------+--------+--------+
4 | XP #32 | XP #33 | XP #34 | XP #35 | XP #36 | XP #37 | XP #38 | XP #39 |
| DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 |
|........|........|........|........|........|........|........|........|
0 | SN-F | RN-F_B | RN-I | RN-F_B | RN-F_B | RN-I | RN-F_B | SN-F |
0| | | #8 | | | #9 | | |
1| | | | | | | | |
1 | | RN-F_B | | RN-F_B | RN-F_B | | RN-F_B | |
0| #24 | | #26 | | | #28 | | #30 |
1| #25 | | #27 | | | #29 | | #31 |
-----+--------+--------+--------+--------+--------+--------+--------+--------+
3 | XP #24 | XP #25 | XP #26 | XP #27 | XP #28 | XP #29 | XP #30 | XP #31 |
| DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 |
|........|........|........|........|........|........|........|........|
0 | SN-F | RN-F_B | RN-I | RN-F_B | RN-F_B | RN-I | RN-F_B | SN-F |
0| | | #6 | | | #7 | | |
1| | | | | | | | |
1 | | RN-F_B | | RN-F_B | RN-F_B | | RN-F_B | |
0| #16 | | #18 | | | #20 | | #22 |
1| #17 | | #19 | | | #21 | | #23 |
-----+--------+--------+--------+--------+--------+--------+--------+--------+
2 | XP #16 | XP #17 | XP #18 | XP #19 | XP #20 | XP #21 | XP #22 | XP #23 |
| DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 |
|........|........|........|........|........|........|........|........|
0 | SN-F | RN-F_B | RN-I | RN-F_B | RN-F_B | RN-I | RN-F_B | SN-F |
0| | | #4 | | | #5 | | |
1| | | | | | | | |
1 | | RN-F_B | | RN-F_B | RN-F_B | | RN-F_B | |
0| #8 | | #10 | | | #12 | | #14 |
1| #9 | | #11 | | | #13 | | #15 |
-----+--------+--------+--------+--------+--------+--------+--------+--------+
1 | XP #8 | XP #9 | XP #10 | XP #11 | XP #12 | XP #13 | XP #14 | XP #15 |
| DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 |
|........|........|........|........|........|........|........|........|
0 | SN-F | RN-F_B | RN-I | RN-F_B | RN-F_B | RN-I | RN-F_B | SN-F |
0| | | #2 | | | #3 | | |
1| | | | | | | | |
1 | | RN-F_B | | RN-F_B | RN-F_B | | RN-F_B | |
0| #0 | | #2 | | | #4 | | #6 |
1| #1 | | #3 | | | #5 | | #7 |
-----+--------+--------+--------+--------+--------+--------+--------+--------+
0 | XP #0 | XP #1 | XP #2 | XP #3 | XP #4 | XP #5 | XP #6 | XP #7 |
| DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 | DTC 0 |
|........|........|........|........|........|........|........|........|
0 | CXRH | RN-F_B | RN-I | RN-F_B | RN-F_B | RN-I | RN-F_B | CXRH |
0| #0 | | #0 | | | #1 | | #1 |
1| | | | | | | | |
1 | RN-D | RN-F_B | HN-I | RN-F_B | RN-F_B | HN-I | RN-F_B | RN-D |
0| #0 | | #1 | | | #2 | | #1 |
1| | | | | | | | |
-----+--------+--------+--------+--------+--------+--------+--------+--------+
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-05-10 17:16 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-18 22:57 [PATCH 0/4] perf/arm-cmn: Add CMN-650 and CMN-700 Robin Murphy
2022-04-18 22:57 ` [PATCH 1/4] dt-bindings: perf: arm-cmn: " Robin Murphy
2022-04-18 22:57 ` Robin Murphy
2022-04-26 20:12 ` Rob Herring
2022-04-26 20:12 ` Rob Herring
2022-04-18 22:57 ` [PATCH 2/4] perf/arm-cmn: Add CMN-650 support Robin Murphy
2022-04-19 23:05 ` Ilkka Koskinen
2022-04-19 23:47 ` Ilkka Koskinen
2022-04-20 9:26 ` Will Deacon
2022-04-20 10:12 ` Robin Murphy
2022-04-21 7:09 ` Ilkka Koskinen
2022-04-21 7:25 ` Ilkka Koskinen
2022-04-21 9:46 ` Robin Murphy
2022-04-21 21:26 ` Ilkka Koskinen
2022-04-18 22:57 ` [PATCH 3/4] perf/arm-cmn: Refactor occupancy filter selector Robin Murphy
2022-04-18 22:57 ` [PATCH 4/4] perf/arm-cmn: Add CMN-700 support Robin Murphy
2022-04-21 7:54 ` [PATCH 0/4] perf/arm-cmn: Add CMN-650 and CMN-700 Ilkka Koskinen
2022-05-06 14:43 ` Will Deacon
2022-05-10 17:15 ` Qian Cai [this message]
2022-05-10 17:50 ` Robin Murphy
2022-05-10 19:38 ` Qian Cai
2022-05-10 21:05 ` Robin Murphy
2022-05-10 20:09 ` Qian Cai
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=20220510171520.GA215@qian \
--to=quic_qiancai@quicinc.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/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.