2021-09-30 09:28:17

by Anders Roxell

[permalink] [raw]
Subject: regression: kernel panic: 9pnet_virtio: no channels available for device root

Hi Christoph,

I've found a boot regression when ran my allmodconfig kernel on tag v5.15-rc1
I've bisected it down to commit f9259be6a9e7 ("init: allow mounting
arbitrary non-blockdevice filesystems as root"), see the bisect log
[1].


my qemu cmdline looks like this:
qemu-system-aarch64 --enable-kvm -cpu cortex-a53 -kernel
Image-bisect-1.gz -serial stdio -monitor none -nographic -m 2G -M virt
-fsdev local,id=root,path=/srv/kvm/tmp/stretch/arm64,security_model=none,writeout=immediate
-device virtio-rng-pci -device
virtio-9p-pci,fsdev=root,mount_tag=/dev/root -append "root=/dev/root
rootfstype=9p rootflags=trans=virtio console=ttyAMA0,38400n8
earlycon=pl011,0x9000000 initcall_debug softlockup_panic=0
security=none kpti=no"

This is a boot log snippet from [2]:

[ 58.925779][ T1] random: get_random_u32 called from
kobject_release+0x44/0x180 with crng_init=0
[ 58.925965][ T1] kobject: 'devlink' (ffff000007efb200):
kobject_release, parent 0000000000000000 (delayed 750)
[ 58.937915][ T1] kobject:
'amba:9030000.pl061--platform:gpio-keys' (ffff000008496830):
kobject_release, parent 0000000000000000 (delayed 500)
[ 58.945685][ T1] random: get_random_u32 called from
shuffle_freelist+0x44/0x1c0 with crng_init=0
[ 59.089658][ T1] ALSA device list:
[ 59.092985][ T1] No soundcards found.
[ 59.114787][ T1] uart-pl011 9000000.pl011: no DMA platform data
[ 59.158409][ T1] 9pnet_virtio: no channels available for device root
[ 59.163398][ T1] Kernel panic - not syncing: VFS: Unable to
mount root "root" (9p), err=-2
[ 59.166946][ T1] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G
W T 5.15.0-rc1 #1 ceb9159c1f47670faf7c7354800b02e393522bde
[ 59.171816][ T1] Hardware name: linux,dummy-virt (DT)
[ 59.174091][ T1] Call trace:
[ 59.175561][ T1] dump_backtrace+0x0/0x340
[ 59.177509][ T1] show_stack+0x28/0x80
[ 59.179333][ T1] dump_stack_lvl+0x88/0xd8
[ 59.181274][ T1] dump_stack+0x1c/0x44
[ 59.183101][ T1] panic+0x1f0/0x420
[ 59.184806][ T1] mount_nodev_root+0x1ac/0x260
[ 59.186907][ T1] mount_root+0x288/0x388
[ 59.188781][ T1] prepare_namespace+0x2fc/0x368
[ 59.190904][ T1] kernel_init_freeable+0x318/0x370
[ 59.193140][ T1] kernel_init+0x24/0x180
[ 59.195132][ T1] ret_from_fork+0x10/0x20
[ 59.197741][ T1] Kernel Offset: disabled
[ 59.199770][ T1] CPU features: 0x00001001,00000846
[ 59.202082][ T1] Memory Limit: none
[ 59.203923][ T1] ---[ end Kernel panic - not syncing: VFS:
Unable to mount root "root" (9p), err=-2 ]---

When I reverted, the two patches below it booted fine.
6e7c1770a212 ("fs: simplify get_filesystem_list / get_all_fs_names")
f9259be6a9e7 ("init: allow mounting arbitrary non-blockdevice
filesystems as root")

Do you have any idea what is going on here?


Cheers,
Anders
[1] http://ix.io/3Aod
[2] http://ix.io/3Aoh


2021-09-30 18:49:00

by Christoph Hellwig

[permalink] [raw]
Subject: Re: regression: kernel panic: 9pnet_virtio: no channels available for device root

On Thu, Sep 30, 2021 at 11:25:45AM +0200, Anders Roxell wrote:
> Hi Christoph,
>
> I've found a boot regression when ran my allmodconfig kernel on tag v5.15-rc1
> I've bisected it down to commit f9259be6a9e7 ("init: allow mounting
> arbitrary non-blockdevice filesystems as root"), see the bisect log
> [1].

Please try a kernel with:

"init: don't panic if mount_nodev_root failed" included.

2021-10-01 09:47:02

by Anders Roxell

[permalink] [raw]
Subject: Re: regression: kernel panic: 9pnet_virtio: no channels available for device root

On Thu, 30 Sept 2021 at 16:39, Christoph Hellwig <[email protected]> wrote:
>
> On Thu, Sep 30, 2021 at 11:25:45AM +0200, Anders Roxell wrote:
> > Hi Christoph,
> >
> > I've found a boot regression when ran my allmodconfig kernel on tag v5.15-rc1
> > I've bisected it down to commit f9259be6a9e7 ("init: allow mounting
> > arbitrary non-blockdevice filesystems as root"), see the bisect log
> > [1].
>
> Please try a kernel with:
>
> "init: don't panic if mount_nodev_root failed" included.

That worked for me.

Cheers,
Anders