Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: panic: _bus_virt_to_bus for vioif on GCE with GENERIC kernel



On Thu, Jan 28, 2021 at 11:56:30PM +1100, Paul Ripke wrote:
> Just tried running a newly built kernel on a GCE instance, and ran into
> this panic. The previously running kernel is 9.99.73 from back around
> October last year.
> 
> Anyone else tried booting -current on GCE recently? My suspicion is
> the VirtIO changes committed around Jan 20. I'll sync back prior to
> those and retry, if nobody else beats me to it.

Not on GCE no. Have you tried the earlier version?

> [   1.0303647] piixpm0: SMBus disabled
> [   1.0303647] virtio0 at pci0 dev 3 function 0
> [   1.0303647] virtio0: SCSI device (rev. 0x00)
> [   1.0303647] vioscsi0 at virtio0: features: 0
> [   1.0303647] vioscsi0: cmd_per_lun 8 qsize 8192 seg_max 64 max_target 253 max_lun 1
> [   1.0303647] virtio0: config interrupting at msix0 vec 0
> [   1.0303647] virtio0: queues interrupting at msix0 vec 1
> [   1.0303647] scsibus0 at vioscsi0: 16 targets, 1 lun per target
> [   1.0303647] virtio1 at pci0 dev 4 function 0
> [   1.0303647] virtio1: network device (rev. 0x00)
> [   1.0303647] vioif0 at virtio1: features: 0x20030020<EVENT_IDX,CTRL_VQ,STATUS,MAC>

Could you A) test with virtio v1 PCI devices? ie without legacy and if that
fails too could you B) test with src/sys/dev/pci/if_vioif.c:832 commented out
and see if that makes a difference? That's a new virtio 1.0 feature that was
apparently negotiated and should work in transitional devices and should not
be accepted in older. It could be that CGE is making a mistake there but
negotiating EVENT_IDX shifts registers so has a big impact if it goes wrong.

If commenting out the EVENT_IDX works, it is easily solvable by disabling it
on PCI v0.9 attachments to work around GCE.

Qemu 5.1.0 does work fine with the new kernel:

[   1.0189426] virtio5 at pci0 dev 8 function 0
[   1.0189426] virtio5: network device (rev. 0x00)
[   1.0189426] vioif0 at virtio5: features: 0x31070020<EVENT_IDX,INDIRECT_DESC,NOTIFY_ON_EMPTY,CTRL_RX,CTRL_VQ,STATUS,MAC>
[   1.0189426] vioif0: Ethernet address 52:54:00:12:34:56
[   1.0189426] virtio5: config interrupting at msix2 vec 0
[   1.0189426] virtio5: queues interrupting at msix2 vec 1
[   1.0189426] isa0 at pcib0

interestingly INDIRECT_DESC and NOTIFY_ON_EMPTY (v0.9) are not negotiated with
GCE in your config; EVENT_IDX is the successor of NOTIFTY_ON_EMPTY and should
work fine on itself since its always alone in v1.0.

What is strange, is the INDIRECT_DESC not being negotiated. I haven't touched
that code at all and Qemu always gives it. Is this also the case with older
kernels?

Thanks in advance,
Reinoud

Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index