This changeset will need a little more 'splainin
# HG changeset patch
# User Jimi Xenidis <[EMAIL PROTECTED]>
# Node ID 2fcfe6600b1db8ca2ba78a00317f2da6fc2620bf
# Parent  d408fcf1975a43593d746b2acbe840dbffd911b8
[TOOLS][POWERPC] Use a smaller page array and place common code in utils.c

On PPC Dom0 Kernel communicates with Xen using something called the XenComm. This is a way for the Kernel to describe all the physical frames (not machine frames) the back a potentially large user-level data structure. the list of pages is limited to a Page and therefore can have no more than 511 ((PAGE_SIZE/sizeof(u16)) - 1).

If you create DomU with >= 1G memory you end up with:
  pages: 0x40000
  page_array in bytes: pages*8 = 0x200000
  page_array in pages: 0x200000 >> 12: 512
  BANG!

The easy-yet-incomplete fix (as done in this patch)
- since we only scribble into the RMA we only need to fill the page-array with that. - since we know the RMA is machine contiguous we only need for xen to give us the first page
    and we can figure out the rest.
  - This patch does this.

The right fix, necessary for save and restore, is to teach libxc to use the start_pfn member so we can get the page_array by using several calls. I hope to be submitting this patch up-stream today and pushing it to xenppc-unstable.hg at the same time.

-JX

_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

Reply via email to