Ok, so it was the right place but a completely wrong explanation. The
problem is not that the last part of pointers is missed but that it is
not. The problem is that the kernel is given a flat array of address
pointers by the domain constructor along with the number of pointer in
that array. With recent changes, the Xen kernel code tries to map this
into a 3-level tree structure, where the leaves contain a part of that
array. To conserve memory, the 2nd level points directly at parts of the
flat array, which is ok as long as the whole 4k area is containing valid
pointers. But for memory assignments which are not a multiple of 4MB (or
2MB for 64bit) the last leaf would contain some undefined pointers
instead of invalid markers.

The attached patch assumes that it is not good to meddle with the memory
at the end of the external array, so if there is a final leaf that would
only be partially filled, it allocates a new page, initializes it and
then copies the valid pointers from the original array.

** Patch added: "Patch to correctly set up a partial leaf."
   
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/686692/+attachment/1800640/+files/0001-xen-mmu-correctly-initialize-partial-p2m-leave.patch

** Tags added: patch

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/686692

Title:
  natty kernel does not boot on ec2 t1.micro

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to