[External] Re: [PATCH] riscv: print hartid on bringup
yunhui cui
cuiyunhui at bytedance.com
Sun Mar 2 23:27:48 PST 2025
Hi Alex,
On Fri, Feb 28, 2025 at 4:19 PM Alexandre Ghiti <alexghiti at rivosinc.com> wrote:
>
> Hi Yunhui,
>
> On Fri, Feb 28, 2025 at 7:41 AM yunhui cui <cuiyunhui at bytedance.com> wrote:
> >
> > Hi Alex,
> >
> > On Wed, Feb 26, 2025 at 10:58 PM Alexandre Ghiti <alexghiti at rivosinc.com> wrote:
> > >
> > > Hi Yunhui,
> > >
> > > On Thu, Feb 20, 2025 at 1:54 PM yunhui cui <cuiyunhui at bytedance.com> wrote:
> > > >
> > > > Hi All,
> > > >
> > > > Gentle ping. Any comments on this patch?
> > > >
> > > > On Sat, Feb 1, 2025 at 7:06 PM Yunhui Cui <cuiyunhui at bytedance.com> wrote:
> > > > >
> > > > > Firmware randomly releases cores, so CPU numbers don't linearly map
> > > > > to hartids. When the system has an exception, we care more about hartids.
> > > > >
> > > > > Signed-off-by: Yunhui Cui <cuiyunhui at bytedance.com>
> > > > > ---
> > > > > arch/riscv/kernel/smp.c | 2 ++
> > > > > arch/riscv/kernel/smpboot.c | 4 ++++
> > > > > 2 files changed, 6 insertions(+)
> > > > >
> > > > > diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c
> > > > > index d58b5e751286..e650dec44817 100644
> > > > > --- a/arch/riscv/kernel/smp.c
> > > > > +++ b/arch/riscv/kernel/smp.c
> > > > > @@ -48,6 +48,8 @@ EXPORT_SYMBOL_GPL(__cpuid_to_hartid_map);
> > > > > void __init smp_setup_processor_id(void)
> > > > > {
> > > > > cpuid_to_hartid_map(0) = boot_cpu_hartid;
> > > > > +
> > > > > + pr_info("Booting Linux on hartid %lu\n", boot_cpu_hartid);
> > > > > }
> > > > >
> > > > > static DEFINE_PER_CPU_READ_MOSTLY(int, ipi_dummy_dev);
> > > > > diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c
> > > > > index e36d20205bd7..beba0efb00b9 100644
> > > > > --- a/arch/riscv/kernel/smpboot.c
> > > > > +++ b/arch/riscv/kernel/smpboot.c
> > > > > @@ -231,6 +231,10 @@ asmlinkage __visible void smp_callin(void)
> > > > > riscv_ipi_enable();
> > > > >
> > > > > numa_add_cpu(curr_cpuid);
> > > > > +
> > > > > + pr_info("CPU%u: Booted secondary hartid %lu\n", curr_cpuid,
> > > > > + cpuid_to_hartid_map(curr_cpuid));
> > > > > +
> > > > > set_cpu_online(curr_cpuid, true);
> > > > >
> > > > > /*
> > > > > --
> > > > > 2.39.2
> > > > >
> > > >
> > > > Thanks,
> > > > Yunhui
> > >
> > > IIRC that's a debug feature when you can't reach userspace and use
> > > cpuinfo, so what about using pr_debug() instead?
> >
> > Using pr_debug needs enabling #define DEBUG in
> > arch/riscv/kernel/smpboot.c and adding loglevel=8 to cmdline, not
> > convenient.
>
> You can also use a kernel command line parameter to enable a
> pr_debug() statement
> https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html#debug-messages-during-boot-process
Umm, it works. I'll update v2.
>
> Alex
>
> > Can't always cat /proc/cpuinfo before running in user
> > mode.
> > It's true that pr_info prints a large amount of information in the
> > startup logs, especially when there are many CPU cores.
> >
> > Do you have a better solution?
> >
> >
> > > Thanks,
> > >
> > > Alex
> >
> > Thanks,
> > Yunhui
Thanks,
Yunhui
More information about the linux-riscv
mailing list