Re: [GIT PULL] RISC-V Fixes for 5.9-rc2

From: Anup Patel
Date: Fri Sep 04 2020 - 06:05:19 EST


On Fri, Sep 4, 2020 at 3:16 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>
> On Fri, Sep 04, 2020 at 03:12:18PM +0530, Anup Patel wrote:
> > I tried Linux-5.9-rc3 using nommu_virt_defconfig at my end. I am not
> > able to reproduce
> > this issue. Is there additional Kconfig option required to reproduce
> > this issue ??
>
> export CROSS_COMPILE=/usr/bin/riscv64-linux-gnu-
> make ARCH=riscv nommu_virt_defconfig
> make ARCH=riscv -j4 loader
>
> /opt/qemu-riscv/bin/qemu-system-riscv64 \
> -smp 2 \
> -m 256 \
> -machine virt \
> -nographic \
> -kernel arch/riscv/boot/loader \
> -drive file=rootfs.ext2,format=raw,id=hd0 \
> -device virtio-blk-device,drive=hd0
>

I tried your suggested QEMU command line with Linux-5.0-rc3 NoMMU
kernel and it reaches till user-space for me but I don't have NoMMU rootfs
so it is not able to start init process.

anup@anup-ubuntu64-vm:~/Work/riscv-test/nommu$ qemu-system-riscv64
-smp 2 -m 256 -machine virt -nographic -kernel
./build-riscv64/arch/riscv/boot/loader -drive
file=../rootfs_riscv64.ext2,format=raw,id=hd0 -device
virtio-blk-device,drive=hd0
qemu-system-riscv64: warning: No -bios option specified. Not loading a firmware.
qemu-system-riscv64: warning: This default will change in a future
QEMU release. Please use the -bios option to avoid breakages when this
happens.
qemu-system-riscv64: warning: See QEMU's deprecation documentation for details.
[ 0.000000] Linux version 5.9.0-rc3 (anup@anup-ubuntu64-vm)
(riscv64-unknown-linux-gnu-gcc (GCC) 9.2.0, GNU ld (GNU Binutils)
2.34) #1 SMP Fri Sep 4 15:02:31 IST 2020
[ 0.000000] earlycon: uart8250 at MMIO 0x0000000010000000 (options
'115200n8')
[ 0.000000] printk: bootconsole [uart8250] enabled
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] riscv: ISA extensions acdfimsu
[ 0.000000] riscv: ELF capabilities acdfim
[ 0.000000] percpu: max_distance=0x18000 too large for vmalloc space 0x0
[ 0.000000] percpu: Embedded 12 pages/cpu s18592 r0 d30560 u49152
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 64640
[ 0.000000] Kernel command line: root=/dev/vda rw
earlycon=uart8250,mmio,0x10000000,115200n8 console=ttyS0
[ 0.000000] Dentry cache hash table entries: 32768 (order: 6,
262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072
bytes, linear)
[ 0.000000] Sorting __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 256224K/262144K available (1283K kernel code,
138K rwdata, 200K rodata, 106K init, 133K bss, 5920K reserved, 0K
cma-reserved)
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay
is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: plic@c000000: mapped 53 interrupts with 2
handlers for 4 contexts.
[ 0.000000] random: get_random_bytes called from 0x00000000800019b4
with crng_init=0
[ 0.000000] clint: clint@2000000: timer running at 10000000 Hz
[ 0.000000] clocksource: clint_clocksource: mask:
0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120
ns
[ 0.000206] sched_clock: 64 bits at 10MHz, resolution 100ns, wraps
every 4398046511100ns
[ 0.007108] Console: colour dummy device 80x25
[ 0.027252] Calibrating delay loop (skipped), value calculated
using timer frequency.. 20.00 BogoMIPS (lpj=40000)
[ 0.044401] pid_max: default: 4096 minimum: 301
[ 0.050023] Mount-cache hash table entries: 512 (order: 0, 4096
bytes, linear)
[ 0.051126] Mountpoint-cache hash table entries: 512 (order: 0,
4096 bytes, linear)
[ 0.108000] rcu: Hierarchical SRCU implementation.
[ 0.112062] smp: Bringing up secondary CPUs ...
[ 0.137273] smp: Brought up 1 node, 2 CPUs
[ 0.156765] devtmpfs: initialized
[ 0.179774] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.180920] futex hash table entries: 16 (order: -2, 1024 bytes, linear)
[ 0.243189] clocksource: Switched to clocksource clint_clocksource
[ 0.337332] workingset: timestamp_bits=62 max_order=16 bucket_order=0
[ 0.359428] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.368316] printk: console [ttyS0] disabled
[ 0.371915] 10000000.uart: ttyS0 at MMIO 0x10000000 (irq = 2,
base_baud = 230400) is a 16550A
[ 0.381511] printk: console [ttyS0] enabled
[ 0.381511] printk: console [ttyS0] enabled
[ 0.383556] printk: bootconsole [uart8250] disabled
[ 0.383556] printk: bootconsole [uart8250] disabled
[ 0.422472] virtio_blk virtio0: [vda] 65536 512-byte logical blocks
(33.6 MB/32.0 MiB)
[ 0.423634] vda: detected capacity change from 0 to 33554432
[ 0.442785] syscon-poweroff soc:poweroff: pm_power_off already
claimed (____ptrval____)
[ 0.444267] syscon-poweroff: probe of soc:poweroff failed with error -16
[ 0.476602] VFS: Mounted root (ext2 filesystem) on device 254:0.
[ 0.484743] devtmpfs: mounted
[ 0.509267] Freeing unused kernel memory: 104K
[ 0.509818] This architecture does not have kernel memory protection.
[ 0.510888] Run /sbin/init as init process
[ 0.532914] Starting init: /sbin/init exists but couldn't execute
it (error -8)
[ 0.534654] Run /etc/init as init process
[ 0.567910] Run /bin/init as init process
[ 0.568801] Run /bin/sh as init process
[ 0.570511] Starting init: /bin/sh exists but couldn't execute it (error -8)
[ 0.573827] Kernel panic - not syncing: No working init found. Try
passing init= option to kernel. See Linux
Documentation/admin-guide/init.rst for guidance.
[ 0.577228] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.9.0-rc3 #1
[ 0.578884] Call Trace:
[ 0.579903] [<000000008001da90>] 0x000000008001da90
[ 0.580994] [<000000008001dc00>] 0x000000008001dc00
[ 0.581820] [<000000008013e79c>] 0x000000008013e79c
[ 0.582699] [<000000008002154c>] 0x000000008002154c
[ 0.585067] [<000000008014face>] 0x000000008014face
[ 0.588753] [<000000008001c932>] 0x000000008001c932
[ 0.591942] SMP: stopping secondary CPUs
[ 0.593858] ---[ end Kernel panic - not syncing: No working init
found. Try passing init= option to kernel. See Linux
Documentation/admin-guide/init.rst for guidance. ]---

Regards,
Anup