Re: [PATCH 6.1.y and 6.6.y] LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init()

From: Greg KH
Date: Fri Feb 02 2024 - 20:27:55 EST


On Wed, Jan 31, 2024 at 03:21:51PM +0800, Huacai Chen wrote:
> Machines which have more than 8 nodes fail to boot SMP after commit
> a2ccf46333d7b2cf96 ("LoongArch/smp: Call rcutree_report_cpu_starting()
> earlier"). Because such machines use tlb-based per-cpu base address
> rather than dmw-based per-cpu base address, resulting per-cpu variables
> can only be accessed after tlb_init(). But rcutree_report_cpu_starting()
> is now called before tlb_init() and accesses per-cpu variables indeed.
>
> Since the original patch want to avoid the lockdep warning caused by
> page allocation in tlb_init(), we can move rcutree_report_cpu_starting()
> to tlb_init() where after tlb exception configuration but before page
> allocation.
>
> Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
> ---
> arch/loongarch/kernel/smp.c | 1 -
> arch/loongarch/mm/tlb.c | 16 ++++++++++------
> 2 files changed, 10 insertions(+), 7 deletions(-)

Now queued up, thanks.

greg k-h