[PATCH] riscv: increase boot command line size to 1K
Andrea Righi
andrea.righi at canonical.com
Sat Nov 26 11:31:36 PST 2022
On Sat, Nov 26, 2022 at 07:25:01PM +0000, Conor Dooley wrote:
> On Sat, Nov 26, 2022 at 08:18:43PM +0100, Andrea Righi wrote:
> > On Sat, Nov 26, 2022 at 06:46:05PM +0000, Conor Dooley wrote:
> > > Hey Andrea,
> > >
> > > On Fri, Nov 25, 2022 at 02:37:13PM +0100, Andrea Righi wrote:
> > > > Kernel parameters string is limited to 512 characters on riscv (using
> > > > the default from include/uapi/asm-generic/setup.h).
> > > >
> > > > In some testing environments (e.g., qemu with long kernel parameters
> > > > string) we may exceed this limit, triggering errors like the following:
> > > >
> > > > [ 3.331893] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000
> > > > [ 3.332625] CPU: 2 PID: 1 Comm: sh Not tainted 6.1.0-rc6-kc #1
> > > > [ 3.333233] Hardware name: riscv-virtio,qemu (DT)
> > > > [ 3.333550] Call Trace:
> > > > [ 3.333736] [<ffffffff800062b6>] dump_backtrace+0x1c/0x24
> > > > [ 3.334053] [<ffffffff806e8f54>] show_stack+0x2c/0x38
> > > > [ 3.334260] [<ffffffff806f2d06>] dump_stack_lvl+0x5a/0x7c
> > > > [ 3.334483] [<ffffffff806f2d3c>] dump_stack+0x14/0x1c
> > > > [ 3.334687] [<ffffffff806e92fa>] panic+0x116/0x2d0
> > > > [ 3.334878] [<ffffffff8001b0aa>] do_exit+0x80a/0x810
> > > > [ 3.335079] [<ffffffff8001b1d0>] do_group_exit+0x24/0x70
> > > > [ 3.335287] [<ffffffff8001b234>] __wake_up_parent+0x0/0x20
> > > > [ 3.335502] [<ffffffff80003cee>] ret_from_syscall+0x0/0x2
> > > > [ 3.335857] SMP: stopping secondary CPUs
> > > > [ 3.337561] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000 ]---
> > > >
> > > > It seems reasonable enough to increase the default command line size to
> > > > 1024, like arm, to prevent issues like the one reported above.
> > >
> > > error: arch/riscv/include/uapi/asm/setup.h: missing "WITH Linux-syscall-note" for SPDX-License-Identifier
> > >
> > > Unfortunately this does not build :/
> > >
> > > Thanks,
> > > Conor.
> >
> > Oh I see, because it's uapi it needs "WITH Linux-syscall-note",
> > wondering why I can't reproduce this failure...
>
> tuxmake --wrapper ccache --target-arch riscv --directory . \
> --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 \
> --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake \
> -o $tmpdir --toolchain llvm -z none -k rv32_defconfig
>
> (copy paste from a script)
> That's what caught it initially & I think should be reproduce able. My
> own standard build script also runs all of the HDRINST stuff if they've
> changed since the last time a given toolchain was used so it reproduces
> locally for me too.
Ah! I'm pretty sure it's HDRINST, I'm just doing make, cross-compiling
the kernel, and running it directly from the build directory with a
custom script (that is basically a wrapper to qemu), so I don't need to
actually install anything. That's why I didn't catch the error.
Thanks for sharing that, I'll make sure to test also a proper install
next time. :)
-Andrea
>
> > Anyway, as pointed out by Alexandre, there was already a previous
> > discussion about this topic:
> > https://lore.kernel.org/lkml/CACT4Y+YYAfTafFk7DE0B=qQFgkPXS7492AhBdY_CP1WdB8CGfA@mail.gmail.com/T/
> >
> > Hopefully this change will be addressed there (and the patch land in
> > -next at least), otherwise I'll post a v2.
>
> Yup, I noticed that thread - in fact I was going to link it yesterday
> before I saw Alex already had ;)
>
> Thanks,
> Conor.
More information about the linux-riscv
mailing list