RISC-V: patched kexec-tools on github for review/testing

Alexandre Ghiti alexandre.ghiti at canonical.com
Wed Oct 6 04:10:14 PDT 2021


Hi Nick,

On Tue, Oct 5, 2021 at 4:07 PM Alexandre Ghiti
<alexandre.ghiti at canonical.com> wrote:
>
> On Tue, Oct 5, 2021 at 2:15 PM Nick Kossifidis <mick at ics.forth.gr> wrote:
> >
> > Hello all,
> >
> > I've uploaded my kexec-tools patches for riscv on github for
> > testing/review before sending them upstream.
> > https://github.com/riscv-collab/kexec-tools/tree/riscv
> >
> > Both kexec and kdump were tested on latest rv64 qemu, using for-next
> > branch with this patch applied:
> > https://patchwork.kernel.org/project/linux-riscv/patch/20211002122026.1451269-1-mick@ics.forth.gr/
> >
>
> I'll test that asap and review your patch too.
>
> Thanks for your time Nick!
>
> Alex
>

So I followed the instructions here:
https://documentation.suse.com/fr-fr/sles/12-SP3/html/SLES-all/cha-tuning-kexec.html#cha-tuning-kexec-basic-usage,
below the output on an Unmatched board using a vmlinux stored on a sd
card:

ubuntu at ubuntu:~$ sudo sbin/kexec -l vmlinux --append="$(cat
/proc/cmdline)" --initrd=/boot/initrd.img
Warning: No cmdline provided, using append string as cmdline
Warning: No dtb provided, using /sys/firmware/fdt
[ 1813.472671] INFO: task kworker/1:0:988 blocked for more than 120 seconds.
[ 1813.478751]       Not tainted 5.15.0-rc1+ #15
[ 1813.483110] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
Could not find a free area of memory of 0x3000 bytes...
locate_hole failed

I used the Ubuntu kernel, so this is pretty large:
-rwxrwxr-x 1 ubuntu ubuntu 277M Oct  5 15:47 vmlinux
-rw-r--r-- 1 root root 98M Sep 21 03:25 /boot/initrd.img

Then if I don't load the initrd (I sometimes have the same warning as
above) I can at least kexec the new kernel but it fails to boot:

ubuntu at ubuntu:~$ sudo ./sbin/kexec -e
Warning: No cmdline or append string provided
Warning: No dtb provided, using /sys/firmware/fdt
[...]
[    0.000000] SBI v0.2 HSM extension detected
[    0.000000] CPU with hartid=0 is not available
[    0.000000] ------------[ cut here ]------------
[    0.000000] kernel BUG at arch/riscv/kernel/smpboot.c:107!
[    0.000000] Kernel BUG [#1]
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.0-rc1+ #15
[    0.000000] Hardware name: SiFive HiFive Unmatched A00 (DT)
[    0.000000] epc : setup_smp+0xcc/0x142
[    0.000000]  ra : setup_smp+0xc4/0x142
[    0.000000] epc : ffffffff80a04080 ra : ffffffff80a04078 sp :
ffffffff81803ec0
[    0.000000]  gp : ffffffff81a23220 tp : ffffffff81810500 t0 :
ffffffff81a3551f
[    0.000000]  t1 : ffffffffffffffff t2 : 0000000000000000 s0 :
ffffffff81803f00
[    0.000000]  s1 : 0000000000000000 a0 : 0000000000000000 a1 :
0000000000000000
[    0.000000]  a2 : 0000000000000000 a3 : 0000000000000001 a4 :
0000000000000000
[    0.000000]  a5 : ffffffff80c64500 a6 : 0000000000000004 a7 :
000000000000ff00
[    0.000000]  s2 : 0000000000000005 s3 : 0000000000000000 s4 :
ffffffff8118f9a8
[    0.000000]  s5 : 0000000000000007 s6 : ffffffff80c0b790 s7 :
0000000080000200
[    0.000000]  s8 : 0000000000000fff s9 : 0000000081000200 s10:
0000000000000018
[    0.000000]  s11: 000000000000000b t3 : 0000000000ff0000 t4 :
ffffffffffffffff
[    0.000000]  t5 : ffffffff80c0b7a0 t6 : ffffffff81803bd8
[    0.000000] status: 0000000200000100 badaddr: 0000000000000000
cause: 0000000000000003
[    0.000000] [<ffffffff80a04080>] setup_smp+0xcc/0x142
[    0.000000] [<ffffffff80a03d88>] setup_arch+0x56a/0x590
[    0.000000] [<ffffffff80a00aa2>] start_kernel+0xaa/0xa5c
[    0.000000] random: get_random_bytes called from
oops_exit+0x44/0x70 with crng_init=0
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill
the idle task! ]---

This reliably fails here.

> > Regards,
> > Nick
> >
> > _______________________________________________
> > linux-riscv mailing list
> > linux-riscv at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-riscv



More information about the linux-riscv mailing list