On Tue, Dec 17, 2024 at 04:11:21PM +0800, Z qiang wrote: > > > > On Sat, Dec 14, 2024 at 09:53:13PM +0100, Greg Kroah-Hartman wrote: > > > I'm announcing the release of the 6.1.120 kernel. > > > > > > All users of the 6.1 kernel series must upgrade. > > > > > > The updated 6.1.y git tree can be found at: > > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y > > > and can be browsed at the normal kernel.org git web browser: > > > https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary > > > > > > thanks, > > > > > > greg k-h > > > > > > ------------ > > > > > Zqiang (1): > > > rcu-tasks: Fix access non-existent percpu rtpcp variable in rcu_tasks_need_gpcb() > > > > I was AFK last week so I missed reporting this, but on riscv this patch > > causes: > > [ 0.145463] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:274 > > [ 0.155273] in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 1, name: swapper/0 > > [ 0.164160] preempt_count: 1, expected: 0 > > [ 0.168716] RCU nest depth: 0, expected: 0 > > [ 0.173370] 1 lock held by swapper/0/1: > > [ 0.177726] #0: ffffffff81494d78 (rcu_tasks.cbs_gbl_lock){....}-{2:2}, at: cblist_init_generic+0x2e/0x374 > > [ 0.188768] irq event stamp: 718 > > [ 0.192439] hardirqs last enabled at (717): [<ffffffff8098df90>] _raw_spin_unlock_irqrestore+0x34/0x5e > > [ 0.203098] hardirqs last disabled at (718): [<ffffffff8098de32>] _raw_spin_lock_irqsave+0x24/0x60 > > [ 0.213254] softirqs last enabled at (0): [<ffffffff800105d2>] copy_process+0x50c/0xdac > > [ 0.222445] softirqs last disabled at (0): [<0000000000000000>] 0x0 > > [ 0.229551] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.1.119-00350-g224fd631c41b #1 > > [ 0.238330] Hardware name: Microchip PolarFire-SoC Icicle Kit (DT) > > [ 0.245329] Call Trace: > > [ 0.248113] [<ffffffff8000678c>] show_stack+0x2c/0x38 > > [ 0.253868] [<ffffffff80984e66>] dump_stack_lvl+0x5e/0x80 > > [ 0.260022] [<ffffffff80984e9c>] dump_stack+0x14/0x20 > > [ 0.265768] [<ffffffff800499b0>] __might_resched+0x200/0x20a > > [ 0.272217] [<ffffffff80049784>] __might_sleep+0x3c/0x68 > > [ 0.278258] [<ffffffff802022aa>] __kmem_cache_alloc_node+0x64/0x240 > > [ 0.285385] [<ffffffff801b1760>] __kmalloc+0xc0/0x180 > > [ 0.291140] [<ffffffff8008c752>] cblist_init_generic+0x84/0x374 > > [ 0.297857] [<ffffffff80a0b212>] rcu_spawn_tasks_kthread+0x1c/0x72 > > [ 0.304888] [<ffffffff80a0b0e8>] rcu_init_tasks_generic+0x20/0x12e > > [ 0.311902] [<ffffffff80a00eb8>] kernel_init_freeable+0x56/0xa8 > > [ 0.318638] [<ffffffff80985c10>] kernel_init+0x1a/0x18e > > [ 0.324574] [<ffffffff80004124>] ret_from_exception+0x0/0x1a > > > > Hello, Xiangyu > > For v6.1.x kernels, the cblist_init_generic() is invoke in init task context, > rtp->rtpcp_array is allocated use GFP_KERENL and in the critical section > holding rcu_tasks.cbs_gbl_lock spinlock. so might_resched() trigger warnings. > You should perform the operation of allocating rtpcp_array memory outside > the spinlock. > Are you willing to resend the patch? So should I revert this, or do you have a fixup patch somewhere? confused, greg k-h