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.
Signed-off-by: Andrea Righi <[email protected]>
---
arch/riscv/include/asm/setup.h | 7 +++++++
arch/riscv/include/uapi/asm/setup.h | 7 +++++++
2 files changed, 14 insertions(+)
create mode 100644 arch/riscv/include/asm/setup.h
create mode 100644 arch/riscv/include/uapi/asm/setup.h
diff --git a/arch/riscv/include/asm/setup.h b/arch/riscv/include/asm/setup.h
new file mode 100644
index 000000000000..f4fe549aab40
--- /dev/null
+++ b/arch/riscv/include/asm/setup.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASMRISCV_SETUP_H
+#define __ASMRISCV_SETUP_H
+
+#include <uapi/asm/setup.h>
+
+#endif /* __ASMRISCV_SETUP_H */
diff --git a/arch/riscv/include/uapi/asm/setup.h b/arch/riscv/include/uapi/asm/setup.h
new file mode 100644
index 000000000000..5738f93ae437
--- /dev/null
+++ b/arch/riscv/include/uapi/asm/setup.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _UAPI__ASMRISCV_SETUP_H
+#define _UAPI__ASMRISCV_SETUP_H
+
+#define COMMAND_LINE_SIZE 1024
+
+#endif /* _UAPI__ASMRISCV_SETUP_H */
--
2.37.2
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.
> Signed-off-by: Andrea Righi <[email protected]>
> ---
> arch/riscv/include/asm/setup.h | 7 +++++++
> arch/riscv/include/uapi/asm/setup.h | 7 +++++++
> 2 files changed, 14 insertions(+)
> create mode 100644 arch/riscv/include/asm/setup.h
> create mode 100644 arch/riscv/include/uapi/asm/setup.h
>
> diff --git a/arch/riscv/include/asm/setup.h b/arch/riscv/include/asm/setup.h
> new file mode 100644
> index 000000000000..f4fe549aab40
> --- /dev/null
> +++ b/arch/riscv/include/asm/setup.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __ASMRISCV_SETUP_H
> +#define __ASMRISCV_SETUP_H
> +
> +#include <uapi/asm/setup.h>
> +
> +#endif /* __ASMRISCV_SETUP_H */
> diff --git a/arch/riscv/include/uapi/asm/setup.h b/arch/riscv/include/uapi/asm/setup.h
> new file mode 100644
> index 000000000000..5738f93ae437
> --- /dev/null
> +++ b/arch/riscv/include/uapi/asm/setup.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _UAPI__ASMRISCV_SETUP_H
> +#define _UAPI__ASMRISCV_SETUP_H
> +
> +#define COMMAND_LINE_SIZE 1024
> +
> +#endif /* _UAPI__ASMRISCV_SETUP_H */
> --
> 2.37.2
>
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.
> 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.
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...
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.
Thanks,
-Andrea
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.
Hi Andrea,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.1-rc7 next-20221201]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Andrea-Righi/riscv-increase-boot-command-line-size-to-1K/20221125-213750
patch link: https://lore.kernel.org/r/20221125133713.314796-1-andrea.righi%40canonical.com
patch subject: [PATCH] riscv: increase boot command line size to 1K
config: riscv-allmodconfig
compiler: riscv64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/68f7f12cac48557c337a453631d4e39b14f3a326
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Andrea-Righi/riscv-increase-boot-command-line-size-to-1K/20221125-213750
git checkout 68f7f12cac48557c337a453631d4e39b14f3a326
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=riscv prepare
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>
All errors (new ones prefixed by >>):
scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr]
scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr]
scripts/genksyms/parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples
>> error: arch/riscv/include/uapi/asm/setup.h: missing "WITH Linux-syscall-note" for SPDX-License-Identifier
make[2]: *** [scripts/Makefile.headersinst:63: usr/include/asm/setup.h] Error 1
make[2]: Target '__headers' not remade because of errors.
make[1]: *** [Makefile:1367: headers] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:231: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
--
0-DAY CI Kernel Test Service
https://01.org/lkp
On Sat, 26 Nov 2022 11:31:36 PST (-0800), [email protected] wrote:
> 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.
I posted a new version of the asm-generic changes here:
https://lore.kernel.org/r/[email protected]/
>>
>> Yup, I noticed that thread - in fact I was going to link it yesterday
>> before I saw Alex already had ;)
>>
>> Thanks,
>> Conor.