Re: next: kernel BUG at drivers/virtio/virtio.c:122!

From: Anders Roxell
Date: Tue Dec 20 2022 - 05:57:06 EST


On Tue, 20 Dec 2022 at 11:44, Michael S. Tsirkin <mst@xxxxxxxxxx> wrote:
>
> On Tue, Dec 20, 2022 at 04:12:05PM +0530, Naresh Kamboju wrote:
> > On Tue, 20 Dec 2022 at 16:04, Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx> wrote:
> > >
> > > On Tue, 20 Dec 2022 14:51:54 +0530, Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
> > > > The qemu-x86_64 and qemu-arm64 boot failed with Linux next-20221220 tag.
> > > > It is always reproducible with gcc-11/ gcc-12 and clang tool chains.
> > > >
> > > > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> > > >
> > > > <6>[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x000f0510]
> > > > <5>[ 0.000000] Linux version 6.1.0-next-20221220 (tuxmake@tuxmake)
> > > > (Debian clang version 16.0.0
> > > > (++20221218072110+9c1b82599dac-1~exp1~20221218072217.501), Debian LLD
> > > > 16.0.0) #1 SMP PREEMPT @1671498176
> > > > <5>[ 0.000000] random: crng init done
> > > > <6>[ 0.000000] Machine model: linux,dummy-virt
> > > > ....
> > > > <6>[ 3.571098] loop: module loaded
> > > > <6>[ 3.573410] virtio_blk virtio0: 1/0/0 default/read/poll queues
> > > > <5>[ 3.578816] virtio_blk virtio0: [vda] 2816420 512-byte logical
> > > > blocks (1.44 GB/1.34 GiB)
> > > > <4>[ 3.581234] ------------[ cut here ]------------
> > > > <2>[ 3.581595] kernel BUG at drivers/virtio/virtio.c:122!
> > > > <0>[ 3.582906] Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
> > > > <4>[ 3.583672] Modules linked in:
> > > > <4>[ 3.584905] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> > > > 6.1.0-next-20221220 #1
> > > > <4>[ 3.585801] Hardware name: linux,dummy-virt (DT)
> > > > <4>[ 3.586591] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT
> > > > -SSBS BTYPE=--)
> > > > <4>[ 3.587349] pc : virtio_check_driver_offered_feature+0x60/0x6c
> > > > <4>[ 3.588613] lr : virtblk_probe+0x7cc/0x8f0

I bisected this problem down to this
patch 0562d7bf1604 ("virtio-blk: add support for zoned block devices")
see the full bisection log [1].

I built just a plain defconfig for an arm64 kernel.
I used tuxmake and tuxrun to do the bisection a commanline like this:
$ git bisect start next-20221220 next/stable \
&& git bisect run tuxmake --runtime podman \
--target-arch arm64 --toolchain gcc-12 \
--kconfig defconfig kernel @tuxrun-arm64

Pre-req: install tuxmake [2], tuxrun [3] and podman and store a tuxmake
result-hook in your $HOME/.config/tuxmake dir
$ mkdir -p ~/.config/tuxmake/
$ curl -sSL http://ix.io/4j6v -o ~/.config/tuxmake/tuxrun-arm64

I reverted the patch and the kernel booted fine.

Cheers,
Anders
[1] http://ix.io/4j6B
[2] https://tuxmake.org/
[3] https://tuxrun.org/
[4] http://ix.io/4j6v