Message ID | 20221125133713.314796-1-andrea.righi@canonical.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Palmer Dabbelt |
Headers | show |
Series | riscv: increase boot command line size to 1K | expand |
Context | Check | Description |
---|---|---|
conchuod/patch_count | success | Link |
conchuod/cover_letter | success | Single patches do not need cover letters |
conchuod/tree_selection | success | Guessed tree name to be for-next |
conchuod/fixes_present | success | Fixes tag not required for -next series |
conchuod/verify_signedoff | success | Signed-off-by tag matches author and committer |
conchuod/kdoc | success | Errors and warnings before: 0 this patch: 0 |
conchuod/module_param | success | Was 0 now: 0 |
conchuod/build_rv32_defconfig | fail | Build failed |
conchuod/build_warn_rv64 | fail | Errors and warnings before: 0 this patch: 0 |
conchuod/dtb_warn_rv64 | success | Errors and warnings before: 0 this patch: 0 |
conchuod/header_inline | success | No static functions without inline keyword in header files |
conchuod/checkpatch | warning | WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? |
conchuod/source_inline | success | Was 0 now: 0 |
conchuod/build_rv64_nommu_k210_defconfig | fail | Build failed |
conchuod/verify_fixes | success | No Fixes tag |
conchuod/build_rv64_nommu_virt_defconfig | fail | Build failed |
Hi Andrea, On 11/25/22 14:37, 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. > > Signed-off-by: Andrea Righi <andrea.righi@canonical.com> > --- > 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 */ Just for reference to previous discussions regarding this: https://lore.kernel.org/lkml/CACT4Y+YYAfTafFk7DE0B=qQFgkPXS7492AhBdY_CP1WdB8CGfA@mail.gmail.com/T/ Thanks, Alex
On Fri, Nov 25, 2022 at 02:41:11PM +0100, Alexandre Ghiti wrote: > Hi Andrea, > > On 11/25/22 14:37, 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. > > > > Signed-off-by: Andrea Righi <andrea.righi@canonical.com> > > --- > > 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 */ > > > Just for reference to previous discussions regarding this: https://lore.kernel.org/lkml/CACT4Y+YYAfTafFk7DE0B=qQFgkPXS7492AhBdY_CP1WdB8CGfA@mail.gmail.com/T/ > > Thanks, > > Alex Ah! It has been address/discussed already, great! Thanks for pointing that out and sorry for the unnecessary patch. :) -Andrea
On 11/25/22 14:44, Andrea Righi wrote: > On Fri, Nov 25, 2022 at 02:41:11PM +0100, Alexandre Ghiti wrote: >> Hi Andrea, >> >> On 11/25/22 14:37, 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. >>> >>> Signed-off-by: Andrea Righi <andrea.righi@canonical.com> >>> --- >>> 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 */ >> >> Just for reference to previous discussions regarding this: https://lore.kernel.org/lkml/CACT4Y+YYAfTafFk7DE0B=qQFgkPXS7492AhBdY_CP1WdB8CGfA@mail.gmail.com/T/ >> >> Thanks, >> >> Alex > Ah! It has been address/discussed already, great! Thanks for pointing > that out and sorry for the unnecessary patch. :) Not unnecessary at all, that will hopefully trigger a new discussion because no progress was made so far :) > -Andrea > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
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 <andrea.righi@canonical.com> > --- > 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 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 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 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 <lkp@intel.com>
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.
On Sat, 26 Nov 2022 11:31:36 PST (-0800), andrea.righi@canonical.com 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/20221211061358.28035-1-palmer@rivosinc.com/ >> >> Yup, I noticed that thread - in fact I was going to link it yesterday >> before I saw Alex already had ;) >> >> Thanks, >> Conor.
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 */
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 <andrea.righi@canonical.com> --- 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