[External] Re: [PATCH] riscv: print hartid on bringup

Alexandre Ghiti alexghiti at rivosinc.com
Fri Feb 28 00:18:54 PST 2025


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

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



More information about the linux-riscv mailing list