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/
Home Products Support Community News


[Xen-devel] [Patch] Fixing 1G page allocation algorithm in libxc

To: xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir@xxxxxxx>
Subject: [Xen-devel] [Patch] Fixing 1G page allocation algorithm in libxc
From: Haitao Shan <maillists.shan@xxxxxxxxx>
Date: Fri, 28 Jan 2011 12:40:46 +0800
Delivery-date: Thu, 27 Jan 2011 20:41:39 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=7CL1o++qw3SaVy9KM+faNIz8P1BxzwnbsTLZM4QZLlY=; b=K+Bi9DUXk//I+tT3EstntQSsGCx5MRbS0aeeB8li57CBIFPcqTKDUNeD58RMbWV4Er HsXyKWK+uGfgsauTA9CgI04paGDWHWxF8Z/guqTKibaUKkcOT1PKU4PkLww24A1a+pct bn6/gZjmbvFAbFYJ/bmXCqt7syBhONtUsVJ5s=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=gTkeKqRevIvsJjnjQDy3ODCVVJ0p2iArzuUa6GFdjLKixI9XU4Rs+AVOQ0xt88n2+1 LJkOff1Aghz4OIdAjg3WfegUFSzcsfeGzPht0+UEuny23VoWC42Ycdc2PwY4Z+Vac8B0 PgQ3tut5WUtevV/Q2vxEF6t/jYaVb++Je0pXc=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi, Keir,

This patch fixes 1G page allocation algorithm in libxc.

Currently, cur_pages (which is used as index into page_array for
fetching gfns) is used to judge whether it is proper here to allocated
1G pages. However, cur_pages == page_array[cur_pages] only holds true
when it is below 4G. When it is above 4G, page_array[cur_pages] -
cur_pages = 256M.
As a result, when guest has 10G memory, 8 1G-pages are allocated. But
only 2 of them have their corresponding gfns 1G aligned. The other 6
are forced to split to 2M pages, as their starting gfns are 4G+256M,
5G+256M .................

Inside the patch, true gfns are used instead of cur_pages to fix this issue.

Signed-off-by: Shan Haitao <haitao.shan@xxxxxxxxx>

Shan Haitao

Attachment: 1Gfix.patch
Description: Binary data

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>