WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ppc-devel

Re:[XenPPC] [xenppc-unstable] [TOOLS][POWERPC] Use a smaller page array

To: XenPPC-devel <xen-ppc-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re:[XenPPC] [xenppc-unstable] [TOOLS][POWERPC] Use a smaller page array and place common code in utils.c
From: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Date: Wed, 18 Oct 2006 11:01:40 -0400
Cc: "Dan E. Poff" <poff@xxxxxxxxxx>
Delivery-date: Wed, 18 Oct 2006 08:01:57 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
This changeset will need a little more 'splainin
# HG changeset patch
# User Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
# 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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel

<Prev in Thread] Current Thread [Next in Thread>