xvisor / xvisor

Xvisor: eXtensible Versatile hypervISOR
http://xhypervisor.org
GNU General Public License v2.0
535 stars 245 forks source link

VFS error when booting Linux for RISC-V #152

Closed XinlaiWan closed 1 year ago

XinlaiWan commented 1 year ago

Hello,

I'm following the instructions in riscv64-spike.txt to boot Linux (5.15.78) using Spike and the latest xvisor-next repo, and a VFS error has occurred:

XVisor# guest kick guest0
guest kick guest0
guest0: Kicked
XVisor# vserial bind guest0/uart0
vserial bind guest0/uart0
[guest0/uart0] RISC-V SBI specification v1.0 detected
[guest0/uart0] RISC-V SBI implementation ID=0x2 Version=0x3001
[guest0/uart0]
[guest0/uart0] RISC-V Virt64 Basic Firmware
[guest0/uart0]
[guest0/uart0] autoboot: disabled
[guest0/uart0]
[guest0/uart0] basic# autoexec
[guest0/uart0]
[guest0/uart0] autoexec(copy 0x80200000 0x00100000 0x1E00000)
[guest0/uart0] copy took 75210 usecs for 0x1E00000 bytes
[guest0/uart0] autoexec(copy 0x83000000 0x01F00000 0x020000)
[guest0/uart0] copy took 320 usecs for 0x020000 bytes
[guest0/uart0] autoexec(copy 0x83100000 0x02000000 0x1000000)
[guest0/uart0] copy took 40135 usecs for 0x1000000 bytes
[guest0/uart0] autoexec(start_linux_fdt 0x80200000 0x83000000 0x83100000 0x1000000)
[guest0/uart0] Trying to set new bootargs: root=/dev/ram rw console=ttyS0,115200 earlycon=uart8250,mmio,0x10000000 mem=256M
[guest0/uart0] Jumping into linux ...
[guest0/uart0] [    0.000000] Linux version 5.15.78 (xwan@rios-cad5) (riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0, GNU ld (GNU Bi[guest0/uart0] 2 SMP Mon Nov 14 16:26:02 CST 2022
[guest0/uart0] [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[guest0/uart0] [    0.000000] Machine model: Virt64
[guest0/uart0] [    0.000000] earlycon: uart8250 at MMIO 0x0000000010000000 (options '')
[guest0/uart0] [    0.000000] printk: bootconsole [uart8250] enabled
[guest0/uart0] [    0.000000] Memory limited to 256MB
[guest0/uart0] [    0.000000] efi: UEFI not found.
[guest0/uart0] [    0.000000] Reserved memory: created DMA memory pool at 0x0000000058000000, size 16 MiB
[guest0/uart0] [    0.000000] OF: reserved mem: initialized node shmem@58000000, compatible id shared-dma-pool
[guest0/uart0] [    0.000000] Zone ranges:
[guest0/uart0] [    0.000000]   DMA32    [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000]   Normal   empty
[guest0/uart0] [    0.000000] Movable zone start for each node
[guest0/uart0] [    0.000000] Early memory node ranges
[guest0/uart0] [    0.000000]   node   0: [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000] SBI specification v1.0 detected
[guest0/uart0] [    0.000000] SBI implementation ID=0x2 Version=0x3001
[guest0/uart0] [    0.000000] SBI TIME extension detected
[guest0/uart0] [    0.000000] SBI IPI extension detected
[guest0/uart0] [    0.000000] SBI RFENCE extension detected
[guest0/uart0] [    0.000000] SBI v0.2 HSM extension detected
[guest0/uart0] [    0.000000] riscv: ISA extensions acdfim
[guest0/uart0] [    0.000000] riscv: ELF capabilities acdfim
[guest0/uart0] [    0.000000] percpu: Embedded 17 pages/cpu s30440 r8192 d31000 u69632
[guest0/uart0] [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64135
[guest0/uart0] [    0.000000] Kernel command line: root=/dev/ram rw console=ttyS0,115200 earlycon=uart8250,mmio,0x10000000 mem=256M
[guest0/uart0] [    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[guest0/uart0] [    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[guest0/uart0] [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[guest0/uart0] [    0.000000] Virtual kernel memory layout:
[guest0/uart0] [    0.000000]       fixmap : 0xffffffcefee00000 - 0xffffffceff000000   (2048 kB)
[guest0/uart0] [    0.000000]       pci io : 0xffffffceff000000 - 0xffffffcf00000000   (  16 MB)
[guest0/uart0] [    0.000000]      vmemmap : 0xffffffcf00000000 - 0xffffffcfffffffff   (4095 MB)
[guest0/uart0] [    0.000000]      vmalloc : 0xffffffd000000000 - 0xffffffdfffffffff   (65535 MB)
[guest0/uart0] [    0.000000]      modules : 0xffffffff01125000 - 0xffffffff80000000   (2030 MB)
[guest0/uart0] [    0.000000]       lowmem : 0xffffffe000000000 - 0xffffffe00fe00000   ( 254 MB)
[guest0/uart0] [    0.000000]       kernel : 0xffffffff80000000 - 0xffffffffffffffff   (2047 MB)
[guest0/uart0] [    0.000000] Memory: 221132K/260096K available (6226K kernel code, 4847K rwdata, 2048K rodata, 2158K init, 305K bss, 389[guest0/uart0] K cma-reserved)
[guest0/uart0] [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[guest0/uart0] [    0.000000] rcu: Hierarchical RCU implementation.
[guest0/uart0] [    0.000000] rcu:      RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[guest0/uart0] [    0.000000] rcu:      RCU debug extended QS entry/exit.
[guest0/uart0] [    0.000000]   Tracing variant of Tasks RCU enabled.
[guest0/uart0] [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[guest0/uart0] [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[guest0/uart0] [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[guest0/uart0] [    0.000000] riscv-intc: 64 local interrupts mapped
[guest0/uart0] [    0.000000] plic: interrupt-controller@c000000: mapped 31 interrupts with 2 handlers for 4 contexts.
[guest0/uart0] [    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[guest0/uart0] [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120[guest0/uart0]
[guest0/uart0] [    0.000000] sched_clock: 64 bits at 10MHz, resolution 100ns, wraps every 4398046511100ns
[guest0/uart0] [    0.001695] Console: colour dummy device 80x25
[guest0/uart0] [    0.002650] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000)
[guest0/uart0] [    0.004590] pid_max: default: 32768 minimum: 301
[guest0/uart0] [    0.005670] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[guest0/uart0] [    0.007085] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[guest0/uart0] [    0.009485] ASID allocator using 16 bits (65536 entries)
[guest0/uart0] [    0.010685] rcu: Hierarchical SRCU implementation.
[guest0/uart0] [    0.011785] EFI services will not be available.
[guest0/uart0] [    0.012890] smp: Bringing up secondary CPUs ...
[guest0/uart0] [    0.014275] smp: Brought up 1 node, 2 CPUs
[guest0/uart0] [    0.015475] devtmpfs: initialized
[guest0/uart0] [    0.016920] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[guest0/uart0] [    0.018785] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[guest0/uart0] [    0.020900] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[guest0/uart0] [    0.028800] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[guest0/uart0] [    0.030480] vgaarb: loaded
[guest0/uart0] [    0.031270] SCSI subsystem initialized
[guest0/uart0] [    0.032365] usbcore: registered new interface driver usbfs
[guest0/uart0] [    0.033500] usbcore: registered new interface driver hub
[guest0/uart0] [    0.034595] usbcore: registered new device driver usb
[guest0/uart0] [    0.062325] clocksource: Switched to clocksource riscv_clocksource
[guest0/uart0] [    0.063760] simple-framebuffer 50000000.simplefb: framebuffer at 0x50000000, 0x1000000 bytes
[guest0/uart0] [    0.065415] simple-framebuffer 50000000.simplefb: format=a8r8g8b8, mode=1600x900x32, linelength=6400
[guest0/uart0] [    0.091020] Console: switching to colour frame buffer device 200x56
[guest0/uart0] [    0.113990] simple-framebuffer 50000000.simplefb: fb0: simplefb registered!
[guest0/uart0] [    0.122965] NET: Registered PF_INET protocol family
[guest0/uart0] [    0.124080] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[guest0/uart0] [    0.126015] tcp_listen_portaddr_hash hash table entries: 128 (order: 0, 5120 bytes, linear)
[guest0/uart0] [    0.127625] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[guest0/uart0] [    0.129165] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[guest0/uart0] [    0.130695] TCP bind hash table entries: 2048 (order: 4, 65536 bytes, linear)
[guest0/uart0] [    0.132150] TCP: Hash tables configured (established 2048 bind 2048)
[guest0/uart0] [    0.133525] UDP hash table entries: 256 (order: 2, 24576 bytes, linear)
[guest0/uart0] [    0.134855] UDP-Lite hash table entries: 256 (order: 2, 24576 bytes, linear)
[guest0/uart0] [    0.136350] NET: Registered PF_UNIX/PF_LOCAL protocol family
[guest0/uart0] [    0.137985] RPC: Registered named UNIX socket transport module.
[guest0/uart0] [    0.139170] RPC: Registered udp transport module.
[guest0/uart0] [    0.140145] RPC: Registered tcp transport module.
[guest0/uart0] [    0.141150] RPC: Registered tcp NFSv4.1 backchannel transport module.
[guest0/uart0] [    0.142425] PCI: CLS 0 bytes, default 64
[guest0/uart0] [    0.143730] Unpacking initramfs...
[guest0/uart0] [    0.156315] workingset: timestamp_bits=62 max_order=16 bucket_order=0
[guest0/uart0] [    0.224455] NFS: Registering the id_resolver key type
[guest0/uart0] [    0.225560] Key type id_resolver registered
[guest0/uart0] [    0.226445] Key type id_legacy registered
[guest0/uart0] [    0.227355] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[guest0/uart0] [    0.228705] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[guest0/uart0] [    0.230195] 9p: Installing v9fs 9p2000 file system support
[guest0/uart0] [    0.231495] NET: Registered PF_ALG protocol family
[guest0/uart0] [    0.232535] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[guest0/uart0] [    0.233975] io scheduler mq-deadline registered
[guest0/uart0] [    0.245000] io scheduler kyber registered
[guest0/uart0] [    0.629100] Freeing initrd memory: 16384K
[guest0/uart0] [    0.635835] virtio_rpmsg_bus virtio3: rpmsg host is online
[guest0/uart0] [    0.638625] input: Xvisor VirtIO Input as /devices/platform/smb/20004000.virtio_input/virtio4/input/input0
[guest0/uart0] [    0.658480] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[guest0/uart0] [    0.660385] printk: console [ttyS0] disabled
[guest0/uart0] [    0.661335] 10000000.uart: ttyS0 at MMIO 0x10000000 (irq = 1, base_baud = 230400) is a 16550A
[guest0/uart0] [    0.663020] printk: console [ttyS0] enabled
[guest0/uart0] [    0.663020] printk: console [ttyS0] enabled
[guest0/uart0] [    0.664835] printk: bootconsole [uart8250] disabled
[guest0/uart0] [    0.664835] printk: bootconsole [uart8250] disabled
[guest0/uart0] [    0.671215] loop: module loaded
[guest0/uart0] [    0.672225] virtio_blk virtio1: [vda] 0 512-byte logical blocks (0 B/0 B)
[guest0/uart0] [    0.675765] e1000e: Intel(R) PRO/1000 Network Driver
[guest0/uart0] [    0.676835] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[guest0/uart0] [    0.678085] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[guest0/uart0] [    0.679490] ehci-pci: EHCI PCI platform driver
[guest0/uart0] [    0.680490] ehci-platform: EHCI generic platform driver
[guest0/uart0] [    0.681605] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[guest0/uart0] [    0.682860] ohci-pci: OHCI PCI platform driver
[guest0/uart0] [    0.683825] ohci-platform: OHCI generic platform driver
[guest0/uart0] [    0.685250] usbcore: registered new interface driver uas
[guest0/uart0] [    0.686380] usbcore: registered new interface driver usb-storage
[guest0/uart0] [    0.687695] mousedev: PS/2 mouse device common for all mice
[guest0/uart0] [    0.689105] goldfish_rtc 10003000.rtc: registered as rtc0
[guest0/uart0] [    0.690240] goldfish_rtc 10003000.rtc: setting system clock to 1970-01-01T00:00:07 UTC (7)
[guest0/uart0] [    0.692000] sdhci: Secure Digital Host Controller Interface driver
[guest0/uart0] [    0.693280] sdhci: Copyright(c) Pierre Ossman
[guest0/uart0] [    0.694225] sdhci-pltfm: SDHCI platform and OF driver helper
[guest0/uart0] [    0.695570] usbcore: registered new interface driver usbhid
[guest0/uart0] [    0.696750] usbhid: USB HID core driver
[guest0/uart0] [    0.697990] NET: Registered PF_INET6 protocol family
[guest0/uart0] [    0.699740] Segment Routing with IPv6
[guest0/uart0] [    0.700635] In-situ OAM (IOAM) with IPv6
[guest0/uart0] [    0.701530] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[guest0/uart0] [    0.703035] NET: Registered PF_PACKET protocol family
[guest0/uart0] [    0.704200] 9pnet: Installing 9P2000 support
[guest0/uart0] [    0.705210] Key type dns_resolver registered
[guest0/uart0] [    0.706450] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
[guest0/uart0] [    0.709390] VFS: Cannot open root device "ram" or unknown-block(1,0): error -6
[guest0/uart0] [    0.710825] Please append a correct "root=" boot option; here are the available partitions:
[guest0/uart0] [    0.712485] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[guest0/uart0] [    0.714095] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.15.78 #2
[guest0/uart0] [    0.715320] Hardware name: Virt64 (DT)
[guest0/uart0] [    0.716150] Call Trace:
[guest0/uart0] [    0.716770] [<ffffffff800049e8>] dump_backtrace+0x1c/0x24
[guest0/uart0] [    0.717890] [<ffffffff80607be8>] show_stack+0x2c/0x38
[guest0/uart0] [    0.718950] [<ffffffff8060a8e2>] dump_stack_lvl+0x40/0x58
[guest0/uart0] [    0.720135] [<ffffffff8060a90e>] dump_stack+0x14/0x1c
[guest0/uart0] [    0.721210] [<ffffffff80607dc8>] panic+0xf6/0x29c
[guest0/uart0] [    0.722210] [<ffffffff80801390>] mount_block_root+0x17c/0x22e
[guest0/uart0] [    0.723390] [<ffffffff80801632>] mount_root+0x1f0/0x220
[guest0/uart0] [    0.724480] [<ffffffff808017a4>] prepare_namespace+0x142/0x184
[guest0/uart0] [    0.725675] [<ffffffff80800fb2>] kernel_init_freeable+0x1f0/0x20a
[guest0/uart0] [    0.726915] [<ffffffff8060f626>] kernel_init+0x1e/0x104
[guest0/uart0] [    0.728005] [<ffffffff80003080>] ret_from_exception+0x0/0xc
[guest0/uart0] [    0.729155] SMP: stopping secondary CPUs
[guest0/uart0] [    0.749545] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) ]---
[guest0/uart0]

I also tried Linux 6.0.7 and got the same problem. Could you help me about why it occurs and how to fix it? Thanks!

su-cheng commented 12 months ago

Hello, I have encountered the same problem under x86. If you have resolved this issue, could you please let me know your solution?thank you so much!

XinlaiWan commented 11 months ago

I remember I didn't figure out the solution at that time, but some days later, after pulling some new updates on the repo, the error disappeared.