Core18 images do not support virtio disks

If I boot a core18 image in libvirt with disk xml like the following:

    <disk type='file' device='disk'>
      ...
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>

then it eventually fails to boot and drops into the initramfs. If I change the above to ide:

    <disk type='file' device='disk'>
      ...
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>

then it boots fine.

I can confirm this behaviour - I suspect something changed in the kernel configuration between 4.4 (UC16) and 4.15 (UC18). We add the “virtio_scsi.ko” module to the initramfs in both kernels. In the initramfs shell I can see that virtio_scsi is available and loaded (shown as “Live” in /proc/modules) but I see no hdd like block device in kvm.

Maybe someone from the kernel team (like @ppisati or @apw) can give us a hint if we need to do to add another kernel module to UC18 to make it boot with virtio disks.