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