* [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier
@ 2026-04-09 16:48 Stefan Wiehler
2026-04-10 13:04 ` Maciej W. Rozycki
2026-04-11 8:52 ` Huacai Chen
0 siblings, 2 replies; 5+ messages in thread
From: Stefan Wiehler @ 2026-04-09 16:48 UTC (permalink / raw)
To: Thomas Bogendoerfer, Maciej W. Rozycki, Jiaxun Yang
Cc: linux-mips, linux-kernel, stable, Stefan Wiehler
rcutree_report_cpu_starting() must be called on secondary CPUs before
allocating memory to avoid the following Lockdep-RCU splat when
CONFIG_PROVE_RCU_LIST=y:
WARNING: suspicious RCU usage
6.6.119-00d46e15c416-fct #1 Not tainted
-----------------------------
/kernel/locking/lockdep.c:3762 RCU-list traversed in non-reader section!!
other info that might help us debug this:
RCU used illegally from offline CPU!
rcu_scheduler_active = 1, debug_locks = 1
no locks held by swapper/1/0.
stack backtrace:
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.6.119-00d46e15c416-fct #1
Stack : 80000000029e37d8 0000000000000000 0000000000000008 80000000029e37e8
80000000029e37e8 80000000029e3978 0000000000000000 0000000000000000
0000000000000000 0000000000000001 ffffffff80d9df38 ffffffff810e19c0
0000000000000000 0000000000000010 ffffffff80a7d140 0000000000000000
ffffffff81c20814 0000000000000000 ffffffff80da0000 0000000000000000
ffffffff80cadf38 0000000000000000 0000000000000000 80000000029ab680
72f093276415c1f3 ffffffff81c2084f ffffffff80da0000 ffffffffc0149ed8
fffffffffffffffe 80000000029e0000 80000000029e37e0 80000000029abf58
ffffffff80129fb0 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 ffffffff80129fd0 0000000000000000
...
Call Trace:
[<ffffffff80129fd0>] show_stack+0x60/0x158
[<ffffffff80a8cd84>] dump_stack_lvl+0x88/0xbc
[<ffffffff801c78f8>] lockdep_rcu_suspicious+0x1c0/0x240
[<ffffffff801cc80c>] __lock_acquire+0x121c/0x29d8
[<ffffffff801ce14c>] lock_acquire+0x184/0x448
[<ffffffff80a9ba30>] _raw_spin_lock_irqsave+0x50/0x90
[<ffffffff80367038>] ___slab_alloc+0xa08/0x1808
[<ffffffff80367e70>] __slab_alloc.isra.0+0x38/0x78
[<ffffffff8036b7d4>] __kmem_cache_alloc_node+0x35c/0x370
[<ffffffff80308ed8>] __kmalloc+0x58/0xd0
[<ffffffff80a8f064>] r4k_tlb_uniquify+0x7c/0x428
[<ffffffff80143e8c>] tlb_init+0x7c/0x110
[<ffffffff8012bdb4>] per_cpu_trap_init+0x16c/0x1d0
[<ffffffff80133258>] start_secondary+0x28/0x128
See also commit 55702ec9603e ("mips/smp: Call
rcutree_report_cpu_starting() earlier").
Fixes: 231ac951faba ("MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow")
Signed-off-by: Stefan Wiehler <stefan.wiehler@nokia.com>
Cc: stable@vger.kernel.org
---
V1 -> V2: Reorder rcutree_report_cpu_starting() call in
start_secondary(), fix function name
v1: https://patchwork.kernel.org/project/linux-mips/patch/20260407083324.906742-2-stefan.wiehler@nokia.com/
---
arch/mips/kernel/smp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index 4868e79f3b30..bdb47c70d4f5 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -359,8 +359,8 @@ asmlinkage void start_secondary(void)
unsigned int cpu = raw_smp_processor_id();
cpu_probe();
- per_cpu_trap_init(false);
rcutree_report_cpu_starting(cpu);
+ per_cpu_trap_init(false);
mips_clockevent_init();
mp_ops->init_secondary();
cpu_report();
--
2.42.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier
2026-04-09 16:48 [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier Stefan Wiehler
@ 2026-04-10 13:04 ` Maciej W. Rozycki
2026-04-13 14:15 ` Stefan Wiehler
2026-04-11 8:52 ` Huacai Chen
1 sibling, 1 reply; 5+ messages in thread
From: Maciej W. Rozycki @ 2026-04-10 13:04 UTC (permalink / raw)
To: Stefan Wiehler; +Cc: Thomas Bogendoerfer, Jiaxun Yang, linux-mips, linux-kernel
On Thu, 9 Apr 2026, Stefan Wiehler wrote:
> rcutree_report_cpu_starting() must be called on secondary CPUs before
> allocating memory to avoid the following Lockdep-RCU splat when
> CONFIG_PROVE_RCU_LIST=y:
>
> WARNING: suspicious RCU usage
> 6.6.119-00d46e15c416-fct #1 Not tainted
> -----------------------------
> /kernel/locking/lockdep.c:3762 RCU-list traversed in non-reader section!!
I have tried to verify your change here, but the warning does not trigger
with 6.19 as released and CONFIG_SIBYTE_SWARM as the platform (2-way SMP).
$ grep CONFIG_PROVE_RCU_LIST .config
CONFIG_PROVE_RCU_LIST=y
$
Am I missing anything here, anything extra to enable?
> See also commit 55702ec9603e ("mips/smp: Call
> rcutree_report_cpu_starting() earlier").
>
> Fixes: 231ac951faba ("MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow")
This does not appear to be a valid commit hash upstream; this is commit
841ecc979b18 AFAICS.
> diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
> index 4868e79f3b30..bdb47c70d4f5 100644
> --- a/arch/mips/kernel/smp.c
> +++ b/arch/mips/kernel/smp.c
> @@ -359,8 +359,8 @@ asmlinkage void start_secondary(void)
> unsigned int cpu = raw_smp_processor_id();
>
> cpu_probe();
> - per_cpu_trap_init(false);
> rcutree_report_cpu_starting(cpu);
> + per_cpu_trap_init(false);
> mips_clockevent_init();
> mp_ops->init_secondary();
> cpu_report();
As I noted in my previous message: is there any reason for cpu_probe() to
precede this call?
Maciej
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier
2026-04-09 16:48 [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier Stefan Wiehler
2026-04-10 13:04 ` Maciej W. Rozycki
@ 2026-04-11 8:52 ` Huacai Chen
1 sibling, 0 replies; 5+ messages in thread
From: Huacai Chen @ 2026-04-11 8:52 UTC (permalink / raw)
To: Stefan Wiehler
Cc: Thomas Bogendoerfer, Maciej W. Rozycki, Jiaxun Yang, linux-mips,
linux-kernel, stable
Hi, Stefan,
On Fri, Apr 10, 2026 at 12:51 AM Stefan Wiehler
<stefan.wiehler@nokia.com> wrote:
>
> rcutree_report_cpu_starting() must be called on secondary CPUs before
> allocating memory to avoid the following Lockdep-RCU splat when
> CONFIG_PROVE_RCU_LIST=y:
>
> WARNING: suspicious RCU usage
> 6.6.119-00d46e15c416-fct #1 Not tainted
> -----------------------------
> /kernel/locking/lockdep.c:3762 RCU-list traversed in non-reader section!!
>
> other info that might help us debug this:
>
> RCU used illegally from offline CPU!
> rcu_scheduler_active = 1, debug_locks = 1
> no locks held by swapper/1/0.
>
> stack backtrace:
> CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.6.119-00d46e15c416-fct #1
> Stack : 80000000029e37d8 0000000000000000 0000000000000008 80000000029e37e8
> 80000000029e37e8 80000000029e3978 0000000000000000 0000000000000000
> 0000000000000000 0000000000000001 ffffffff80d9df38 ffffffff810e19c0
> 0000000000000000 0000000000000010 ffffffff80a7d140 0000000000000000
> ffffffff81c20814 0000000000000000 ffffffff80da0000 0000000000000000
> ffffffff80cadf38 0000000000000000 0000000000000000 80000000029ab680
> 72f093276415c1f3 ffffffff81c2084f ffffffff80da0000 ffffffffc0149ed8
> fffffffffffffffe 80000000029e0000 80000000029e37e0 80000000029abf58
> ffffffff80129fb0 0000000000000000 0000000000000000 0000000000000000
> 0000000000000000 0000000000000000 ffffffff80129fd0 0000000000000000
> ...
> Call Trace:
> [<ffffffff80129fd0>] show_stack+0x60/0x158
> [<ffffffff80a8cd84>] dump_stack_lvl+0x88/0xbc
> [<ffffffff801c78f8>] lockdep_rcu_suspicious+0x1c0/0x240
> [<ffffffff801cc80c>] __lock_acquire+0x121c/0x29d8
> [<ffffffff801ce14c>] lock_acquire+0x184/0x448
> [<ffffffff80a9ba30>] _raw_spin_lock_irqsave+0x50/0x90
> [<ffffffff80367038>] ___slab_alloc+0xa08/0x1808
> [<ffffffff80367e70>] __slab_alloc.isra.0+0x38/0x78
> [<ffffffff8036b7d4>] __kmem_cache_alloc_node+0x35c/0x370
> [<ffffffff80308ed8>] __kmalloc+0x58/0xd0
> [<ffffffff80a8f064>] r4k_tlb_uniquify+0x7c/0x428
> [<ffffffff80143e8c>] tlb_init+0x7c/0x110
> [<ffffffff8012bdb4>] per_cpu_trap_init+0x16c/0x1d0
> [<ffffffff80133258>] start_secondary+0x28/0x128
>
> See also commit 55702ec9603e ("mips/smp: Call
> rcutree_report_cpu_starting() earlier").
>
> Fixes: 231ac951faba ("MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow")
> Signed-off-by: Stefan Wiehler <stefan.wiehler@nokia.com>
> Cc: stable@vger.kernel.org
> ---
> V1 -> V2: Reorder rcutree_report_cpu_starting() call in
> start_secondary(), fix function name
>
> v1: https://patchwork.kernel.org/project/linux-mips/patch/20260407083324.906742-2-stefan.wiehler@nokia.com/
> ---
> arch/mips/kernel/smp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
> index 4868e79f3b30..bdb47c70d4f5 100644
> --- a/arch/mips/kernel/smp.c
> +++ b/arch/mips/kernel/smp.c
> @@ -359,8 +359,8 @@ asmlinkage void start_secondary(void)
> unsigned int cpu = raw_smp_processor_id();
>
> cpu_probe();
> - per_cpu_trap_init(false);
> rcutree_report_cpu_starting(cpu);
> + per_cpu_trap_init(false);
Please see 5056c596c3d1848021a4eaa76ee42f4c05c50346 ("LoongArch/smp:
Call rcutree_report_cpu_starting() at tlb_init()"), maybe MIPS will
have similar issues.
Huacai
> mips_clockevent_init();
> mp_ops->init_secondary();
> cpu_report();
> --
> 2.42.0
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier
2026-04-10 13:04 ` Maciej W. Rozycki
@ 2026-04-13 14:15 ` Stefan Wiehler
2026-04-22 12:16 ` Stefan Wiehler
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Wiehler @ 2026-04-13 14:15 UTC (permalink / raw)
To: Maciej W. Rozycki
Cc: Thomas Bogendoerfer, Jiaxun Yang, linux-mips, linux-kernel,
Huacai Chen
[-- Attachment #1: Type: text/plain, Size: 4465 bytes --]
> I have tried to verify your change here, but the warning does not trigger
> with 6.19 as released and CONFIG_SIBYTE_SWARM as the platform (2-way SMP).
>
> $ grep CONFIG_PROVE_RCU_LIST .config
> CONFIG_PROVE_RCU_LIST=y
> $
>
> Am I missing anything here, anything extra to enable?
I was able to reproduce this splat on latest mainline with the attached
defconfig on QEMU, which I invoked as follows:
$ qemu-system-mips64 -cpu I6400 -smp 2 -kernel vmlinux -nographic
=============================
WARNING: suspicious RCU usage
7.0.0-rc7-dirty #13 Not tainted
-----------------------------
kernel/locking/lockdep.c:3801 RCU-list traversed in non-reader section!!
other info that might help us debug this:
RCU used illegally from offline CPU!
rcu_scheduler_active = 1, debug_locks = 1
no locks held by swapper/1/0.
stack backtrace:
CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 7.0.0-rc7-dirty #13 VOLUNTARY
Hardware name: mti,malta
Stack : a8000000021fb938 0000000000000000 0000000000000018 a8000000021fb888
a8000000021fb888 a8000000021fb9b8 0000000000000000 0000000000000000
00f87412b0603bdf 0000000000000001 0000000000000000 0000000000000000
ffffffff80f9e5b0 0000000000000000 ffffffff80abb824 000000000000001b
ffffffffffffffff 0000000000000000 0000000000000000 ffffffff80d2ea28
ffffffff80e10000 ffffffff80ccf9e0 0000000000000001 0000000000000000
0000000000000003 0000000000000000 a8000000021fb680 0000000030400080
0000000000000000 a8000000021f8000 a8000000021fb880 ffffffff80f00000
ffffffff801190dc 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 ffffffff801190f4 00f87412b0603bdf
...
Call Trace:
[<ffffffff801190f4>] show_stack+0x5c/0x150
[<ffffffff8010eeac>] dump_stack_lvl+0xa4/0xe8
[<ffffffff801bd250>] lockdep_rcu_suspicious+0x180/0x228
[<ffffffff801c2020>] __lock_acquire+0x15b0/0x2b00
[<ffffffff801c421c>] lock_acquire+0x144/0x490
[<ffffffff80ac9e9c>] _raw_spin_lock_irqsave+0x54/0x88
[<ffffffff8031ec90>] ___slab_alloc+0x190/0x950
[<ffffffff8032282c>] __kmalloc_noprof+0x344/0x520
[<ffffffff80323d88>] __alloc_empty_sheaf+0x48/0x78
[<ffffffff80321904>] __pcs_replace_empty_main+0x4ec/0x680
[<ffffffff80322944>] __kmalloc_noprof+0x45c/0x520
[<ffffffff80abe770>] r4k_tlb_uniquify+0x58/0x2c8
[<ffffffff8013af6c>] r4k_tlb_configure+0xb4/0xd0
[<ffffffff8013c5fc>] tlb_init+0xc/0x80
[<ffffffff8011b054>] per_cpu_trap_init+0xfc/0x168
[<ffffffff80123a68>] start_secondary+0x28/0x118
[<ffffffff80125864>] mips_cps_core_boot+0x74/0x88
However, on that platform even before that you will see various Lockdep RCU
splats complaining about taking the console lock from an offline CPU
originating from c-r4k.c; one more reason to call rcutree_report_cpu_starting()
earlier.
>> See also commit 55702ec9603e ("mips/smp: Call
>> rcutree_report_cpu_starting() earlier").
>>
>> Fixes: 231ac951faba ("MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow")
>
> This does not appear to be a valid commit hash upstream; this is commit
> 841ecc979b18 AFAICS.
You are right, I accidentally referenced the commit in our internal branch,
fixed in v3.
>> diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
>> index 4868e79f3b30..bdb47c70d4f5 100644
>> --- a/arch/mips/kernel/smp.c
>> +++ b/arch/mips/kernel/smp.c
>> @@ -359,8 +359,8 @@ asmlinkage void start_secondary(void)
>> unsigned int cpu = raw_smp_processor_id();
>>
>> cpu_probe();
>> - per_cpu_trap_init(false);
>> rcutree_report_cpu_starting(cpu);
>> + per_cpu_trap_init(false);
>> mips_clockevent_init();
>> mp_ops->init_secondary();
>> cpu_report();
>
> As I noted in my previous message: is there any reason for cpu_probe() to
> precede this call?
In principal, we can also make the call before cpu_probe(), however as Huacai
pointed out calling rcutree_report_cpu_starting() early is not inherently safe:
> Please see 5056c596c3d1848021a4eaa76ee42f4c05c50346 ("LoongArch/smp:
> Call rcutree_report_cpu_starting() at tlb_init()"), maybe MIPS will
> have similar issues.
I think this specific issue is not relevant for us as MIPS does not use DMW
(please correct me if I am wrong). Given cpu_probe()'s highly SoC-specific
nature, I think it should be excluded unless there is a specific reason for its
inclusion.
Kind regards,
Stefan
[-- Attachment #2: defconfig --]
[-- Type: text/plain, Size: 8261 bytes --]
CONFIG_SYSVIPC=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_RCU_EXPERT=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_NAMESPACES=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
CONFIG_MIPS_MALTA=y
CONFIG_CPU_MIPS64_R6=y
CONFIG_64BIT=y
CONFIG_MIPS_CPS=y
CONFIG_NR_CPUS=2
CONFIG_HZ_100=y
CONFIG_PAGE_SIZE_16KB=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_COMPAT_BRK is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM_USER=m
CONFIG_NET_KEY=y
CONFIG_NET_KEY_MIGRATE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_NET_IPIP=m
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_TCP_MD5SIG=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
CONFIG_NETFILTER_XT_MATCH_SOCKET=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_IP_VS=m
CONFIG_IP_VS_IPV6=y
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_IP6=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_NFLOG=m
CONFIG_IP_SCTP=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_ATALK=m
CONFIG_PHONET=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=y
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_MAC80211_MESH=y
CONFIG_RFKILL=m
CONFIG_PCI=y
CONFIG_DEVTMPFS=y
CONFIG_CONNECTOR=m
CONFIG_MTD=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_OOPS=m
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_GLUEBI=m
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_ATA_OVER_ETH=m
CONFIG_RAID_ATTRS=m
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_FC_ATTRS=m
CONFIG_ISCSI_TCP=m
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_3W_9XXX=m
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_ATA=y
CONFIG_ATA_PIIX=y
CONFIG_PATA_LEGACY=y
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_NETDEVICES=y
CONFIG_BONDING=m
CONFIG_DUMMY=m
CONFIG_EQUALIZER=m
CONFIG_IFB=m
CONFIG_MACVLAN=m
CONFIG_TUN=m
CONFIG_VETH=m
# CONFIG_NET_VENDOR_3COM is not set
CONFIG_PCNET32=y
CONFIG_CHELSIO_T3=m
CONFIG_AX88796=m
CONFIG_NETXEN_NIC=m
CONFIG_TC35815=m
CONFIG_BROADCOM_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_ICPLUS_PHY=m
CONFIG_LXT_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_REALTEK_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_IPW2100=m
CONFIG_IPW2100_MONITOR=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_PIIX4_POWEROFF=y
CONFIG_POWER_RESET_SYSCON=y
# CONFIG_HWMON is not set
CONFIG_FB=y
CONFIG_FB_CIRRUS=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_HID=m
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_CMOS=y
CONFIG_UIO=m
CONFIG_UIO_CIF=m
CONFIG_EXT2_FS=y
CONFIG_EXT4_FS=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_QUOTA=y
CONFIG_QFMT_V2=y
CONFIG_FUSE_FS=m
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_PROC_KCORE=y
CONFIG_TMPFS=y
CONFIG_AFFS_FS=m
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_RUBIN=y
CONFIG_CRAMFS=m
CONFIG_VXFS_FS=m
CONFIG_MINIX_FS=m
CONFIG_ROMFS_FS=m
CONFIG_UFS_FS=m
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_FRAME_WARN=1280
CONFIG_PROVE_LOCKING=y
CONFIG_PROVE_RCU_LIST=y
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier
2026-04-13 14:15 ` Stefan Wiehler
@ 2026-04-22 12:16 ` Stefan Wiehler
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Wiehler @ 2026-04-22 12:16 UTC (permalink / raw)
To: Maciej W. Rozycki
Cc: Thomas Bogendoerfer, Jiaxun Yang, linux-mips, linux-kernel,
Huacai Chen
Hi Maciej,
> I was able to reproduce this splat on latest mainline with the attached
> defconfig on QEMU, which I invoked as follows:
>
> $ qemu-system-mips64 -cpu I6400 -smp 2 -kernel vmlinux -nographic
>
> =============================
> WARNING: suspicious RCU usage
> 7.0.0-rc7-dirty #13 Not tainted
> -----------------------------
> kernel/locking/lockdep.c:3801 RCU-list traversed in non-reader section!!
>
> other info that might help us debug this:
>
>
> RCU used illegally from offline CPU!
> rcu_scheduler_active = 1, debug_locks = 1
> no locks held by swapper/1/0.
>
> stack backtrace:
> CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 7.0.0-rc7-dirty #13 VOLUNTARY
> Hardware name: mti,malta
> Stack : a8000000021fb938 0000000000000000 0000000000000018 a8000000021fb888
> a8000000021fb888 a8000000021fb9b8 0000000000000000 0000000000000000
> 00f87412b0603bdf 0000000000000001 0000000000000000 0000000000000000
> ffffffff80f9e5b0 0000000000000000 ffffffff80abb824 000000000000001b
> ffffffffffffffff 0000000000000000 0000000000000000 ffffffff80d2ea28
> ffffffff80e10000 ffffffff80ccf9e0 0000000000000001 0000000000000000
> 0000000000000003 0000000000000000 a8000000021fb680 0000000030400080
> 0000000000000000 a8000000021f8000 a8000000021fb880 ffffffff80f00000
> ffffffff801190dc 0000000000000000 0000000000000000 0000000000000000
> 0000000000000000 0000000000000000 ffffffff801190f4 00f87412b0603bdf
> ...
> Call Trace:
> [<ffffffff801190f4>] show_stack+0x5c/0x150
> [<ffffffff8010eeac>] dump_stack_lvl+0xa4/0xe8
> [<ffffffff801bd250>] lockdep_rcu_suspicious+0x180/0x228
> [<ffffffff801c2020>] __lock_acquire+0x15b0/0x2b00
> [<ffffffff801c421c>] lock_acquire+0x144/0x490
> [<ffffffff80ac9e9c>] _raw_spin_lock_irqsave+0x54/0x88
> [<ffffffff8031ec90>] ___slab_alloc+0x190/0x950
> [<ffffffff8032282c>] __kmalloc_noprof+0x344/0x520
> [<ffffffff80323d88>] __alloc_empty_sheaf+0x48/0x78
> [<ffffffff80321904>] __pcs_replace_empty_main+0x4ec/0x680
> [<ffffffff80322944>] __kmalloc_noprof+0x45c/0x520
> [<ffffffff80abe770>] r4k_tlb_uniquify+0x58/0x2c8
> [<ffffffff8013af6c>] r4k_tlb_configure+0xb4/0xd0
> [<ffffffff8013c5fc>] tlb_init+0xc/0x80
> [<ffffffff8011b054>] per_cpu_trap_init+0xfc/0x168
> [<ffffffff80123a68>] start_secondary+0x28/0x118
> [<ffffffff80125864>] mips_cps_core_boot+0x74/0x88
>
> However, on that platform even before that you will see various Lockdep RCU
> splats complaining about taking the console lock from an offline CPU
> originating from c-r4k.c; one more reason to call rcutree_report_cpu_starting()
> earlier.
Have you been able to reproduce the issue with above hints?
Kind regards,
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-22 12:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-09 16:48 [PATCH v2] mips: mm: Call rcutree_report_cpu_starting() even earlier Stefan Wiehler
2026-04-10 13:04 ` Maciej W. Rozycki
2026-04-13 14:15 ` Stefan Wiehler
2026-04-22 12:16 ` Stefan Wiehler
2026-04-11 8:52 ` Huacai Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox