Alright, at least partially understanding things now. So it looks like "Decoding failed" happens generally on some platforms (and I do not understand still why this is). The difference between the generic kernel and the kvm kernel is that the kvm kernel has a built-in BLK_DEV_RAM of size (4096) whereas the generic kernel uses a module for that.
It looks like only if BLK_DEV_RAM=y is set, the code which populates the initial rootfs does try to flush and refill the ramdisk device. Otherwise the partially expanded rootfs is retained. And I guess the ramdisk size is set to small so we get the incomplete write there.
I guess the solution (which does not solve the decode failure) is to change the kvm kernel config to
Alright, at least partially understanding things now. So it looks like "Decoding failed" happens generally on some platforms (and I do not understand still why this is). The difference between the generic kernel and the kvm kernel is that the kvm kernel has a built-in BLK_DEV_RAM of size (4096) whereas the generic kernel uses a module for that.
It looks like only if BLK_DEV_RAM=y is set, the code which populates the initial rootfs does try to flush and refill the ramdisk device. Otherwise the partially expanded rootfs is retained. And I guess the ramdisk size is set to small so we get the incomplete write there.
I guess the solution (which does not solve the decode failure) is to change the kvm kernel config to
BLK_DEV_RAM=m BLK_DEV_ RAM_SIZE= 65536
CONFIG_