Re: arm64: virtio broken in upstream kernel

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

 



On Wed, Oct 22, 2014 at 10:46:39PM +0100, Richard W.M. Jones wrote:
> Initially I thought this was a qemu bug, so I was tracking it here.
> 
> https://bugs.launchpad.net/qemu/+bug/1383857
> 
> In brief, virtio devices don't show up in the guest when using kernel
> 3.18.0+rc1.  I'm also using 64k pages, but I don't know if that is
> related.
> 
> I did a bisect and it pointed at:
> 
>   421520ba98290a73b35b7644e877a48f18e06004 is the first bad commit
>   commit 421520ba98290a73b35b7644e877a48f18e06004
>   Author: Yalin Wang <Yalin.Wang@xxxxxxxxxxxxxx>
>   Date: Fri Sep 26 03:07:09 2014 +0100
> 
>     ARM: 8167/1: extend the reserved memory for initrd to be page aligned
> 

So I'm still seeing this bug.

I have found out that if I remove -initrd from the qemu command line
then the kernel is able to boot.  Obviously in order to do that I had
to compile the virtio drivers into the kernel, but I also tried the
same kernel with -initrd and that failed, so the act of compiling the
virtio drivers into the kernel isn't what fixed it.  It's using the
-initrd option at all which is what is failing.

My initrd is not especially large (1.5 MB).

I tried using dummy initrd files of various sizes to see if there is a
limit to the size of the initrd:

  size of -initrd file of zeroes      result
  0 bytes                             guest boots OK
  64 Kbytes (1 page)                  guest boots OK
  256 Kbytes                          guest boots OK
  1 Mbyte                             guest boots OK
  2 Mbytes                            guest boots OK

But these are all full of zero bytes, so the kernel essentially
ignores them - ie. it won't allocate further memory.

I tried an initrd which was a real cpio file, but basically empty
(it contained 1 block of data), and virtio devices DON'T show up.

  size of -initrd cpio file      result
  512 bytes                      no virtio devices show up

So something to do with how or where the initrd gets unpacked?

Is there somewhere that we document the memory map for ARM virtual
machines?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux