Looking at the crashing address (by doing objdump on the vmlinux from
the ddeb), it lands on the middle of an instruction.

ffffffe000009204:       99c080e7                jalr    -1636(ra) # 
ffffffe000006b9c <riscv_cpuid_to_hartid_mask>
ffffffe000009208:       0180e797                auipc   a5,0x180e
ffffffe00000920c:       f187b783                ld      a5,-232(a5) # 
ffffffe001817120 <__sbi_send_ipi>
ffffffe000009210:       fd040513                addi    a0,s0,-48
ffffffe000009214:       9782                    jalr    a5
ffffffe000009216:       fd843703                ld      a4,-40(s0)

Perhaps, the patching done by ftrace is causing this.

There is afc76b8b80112189b6f11e67e19cf58301944814 ("riscv: Using
PATCHABLE_FUNCTION_ENTRY instead of MCOUNT"), which doesn't refer to any
bug that is fixed, but changes the way patches are applied. So, perhaps,
this would help fix the issue. Possibly worth the try until this is
properly debugged. I can't test it, otherwise, so @xnox, would you be
able to try this upstream commit?

Cascardo.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-riscv in Ubuntu.
https://bugs.launchpad.net/bugs/1934548

Title:
  RISC-V: Illegal instruction

Status in linux-riscv package in Ubuntu:
  Confirmed
Status in linux-riscv-5.11 package in Ubuntu:
  Confirmed

Bug description:
  When booting the Ubuntu Server image on the SiFive HiFive Unmatched I am 
getting the following error.
  The last known working version was 1012.
  The issue is being tracked on the SiFive forums at 
https://forums.sifive.com/t/u-boot-says-unhandled-exception-illegal-instruction/4898

  ```
  Starting kernel ...

  [    0.000000] Linux version 5.11.0-1014-generic 
(buildd@riscv64-qemu-lcy01-084) (gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0, GNU ld 
(GNU Binutils for Ubuntu) 2.36.1) #14-Ubuntu SMP Wed Jun 30 17:56:50 UTC 2021 
(Ubuntu 5.11.0-1014.14-generic 5.11.22)
  [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
  [    0.000000] earlycon: sifive0 at MMIO 0x0000000010010000 (options '')
  [    0.000000] printk: bootconsole [sifive0] enabled
  [    0.000000] efi: UEFI not found.
  [    0.000000] Initial ramdisk at: 0x(____ptrval____) (183422976 bytes)
  [    0.000000] cma: Reserved 32 MiB at 0x00000000fe000000
  [    0.000000] Zone ranges:
  [    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000ffffffff]
  [    0.000000]   Normal   [mem 0x0000000100000000-0x000000047fffffff]
  [    0.000000] Movable zone start for each node
  [    0.000000] Early memory node ranges
  [    0.000000]   node   0: [mem 0x0000000080200000-0x000000047fffffff]
  [    0.000000] Initmem setup node 0 [mem 
0x0000000080200000-0x000000047fffffff]
  [    0.000000]   DMA32 zone: 512 pages in unavailable ranges
  [    0.000000] SBI specification v0.2 detected
  [    0.000000] SBI implementation ID=0x1 Version=0x9
  [    0.000000] SBI v0.2 TIME extension detected
  [    0.000000] SBI v0.2 IPI extension detected
  [    0.000000] SBI v0.2 RFENCE extension detected
  [    0.000000] software IO TLB: mapped [mem 
0x00000000fa000000-0x00000000fe000000] (64MB)
  [    0.000000] SBI v0.2 HSM extension detected
  [    0.000000] CPU with hartid=0 is not available
  [    0.000000] CPU with hartid=0 is not available
  [    0.000000] riscv: ISA extensions acdfim
  [    0.000000] riscv: ELF capabilities acdfim
  [    0.000000] percpu: Embedded 26 pages/cpu s69272 r8192 d29032 u106496
  [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 4128264
  [    0.000000] Kernel command line: root=/dev/nvme0n1p1 ro earlycon
  [    0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 
bytes, linear)
  [    0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 
bytes, linear)
  [    0.000000] Sorting __ex_table...
  [    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
  [    0.000000] Memory: 16165452K/16775168K available (9854K kernel code, 
5763K rwdata, 8192K rodata, 2519K init, 997K bss, 576948K reserved, 32768K 
cma-reserved)
  [    0.000000] random: get_random_u64 called from kmem_cache_open+0x36/0x338 
with crng_init=0
  [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
  [    0.000000] ftrace: allocating 38893 entries in 152 pages
  [    0.000000] Oops - illegal instruction [#1]
  [    0.000000] Modules linked in:
  [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.11.0-1014-generic 
#14-Ubuntu
  [    0.000000] epc: ffffffe00000920e ra : ffffffe000009384 sp : 
ffffffe001803d30
  [    0.000000]  gp : ffffffe001a14240 tp : ffffffe00180f440 t0 : 
ffffffe07fe38000
  [    0.000000]  t1 : ffffffe0019cd338 t2 : 0000000000000000 s0 : 
ffffffe001803d70
  [    0.000000]  s1 : 0000000000000000 a0 : ffffffe0000095aa a1 : 
0000000000000001
  [    0.000000]  a2 : 0000000000000002 a3 : 0000000000000000 a4 : 
0000000000000000
  [    0.000000]  a5 : 0000000000000000 a6 : 0000000000000004 a7 : 
0000000052464e43
  [    0.000000]  s2 : 0000000000000002 s3 : 0000000000000001 s4 : 
0000000000000000
  [    0.000000]  s5 : 0000000000000000 s6 : 0000000000000000 s7 : 
0000000000000000
  [    0.000000]  s8 : ffffffe001a170c0 s9 : 0000000000000001 s10: 
0000000000000001
  [    0.000000]  s11: 00000000fffcc5d0 t3 : 0000000000000068 t4 : 
000000000000000b
  [    0.000000]  t5 : ffffffe0019cd3e0 t6 : ffffffe001803cd8
  [    0.000000] status: 0000000200000100 badaddr: 000000000513f187 cause: 
0000000000000002
  [    0.000000] ---[ end trace f67eb9af4d8d492b ]---
  [    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! ]---
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-riscv/+bug/1934548/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to