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] Question about NUMA emulation

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Question about NUMA emulation
From: alex <leiye.xen@xxxxxxxxx>
Date: Fri, 10 Sep 2010 10:19:24 -0700
Delivery-date: Fri, 10 Sep 2010 10:20:20 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=GRq2lvIAo4Dih5fgrgAVJPPH+T4J4j0KJQb9n7p03Oo=; b=DcGbZdKwY3KeplC1GlZnm6dtkx9dPfJWc96h8z8uIbUllIXajwDn3RP5QCwP2XD76q o4HDgY5NDJr/TQy/ylY+IkOE8YM/Abhjs6OExBjOZ0a99NlwcfRvJ7Wr8M3+1nY7bFXF x+1k9KADXHYzKFlQ/tm1tUQOPQ45Q9CL4zKnc=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=q/sRmkvXZirZw2n2cY/0J2v0LlgksK21sNZn2vqHZlItPbYi2BGukBQrLhE5KOc6QA 5fYb+bKSdML/gslzLTzfrvwFMXNFev+Wm8H8mR/tLR0s5xHtTXp5B6SBVfDgBkPF0gza fIA8Cztgw7KbH/KL6aPlyxCiQ7+yFNfs97sCA=
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 all,
My machine is running 64bit-xen and 64bit-dom0. I am using Numa emulation by speicifying "numa=fake=16", which split 16GB memory into 16 virtual nodes. I traced the source code in page_alloc.c. The functions init_heap_pages and init_node_heap handle page range to the specified heap zone. In init_node_heap, I modify the code a little and let _heap[node] allocation occur on xenheap, say on virtual node 0. Then after all the nodes initialization, I printk all node information by invoking avail_heap_pages. However, I found nodes from 1 to 15 have lost one page, because each node should have 262144 pages( 1GB), but the result shows below:
node 0 = 261876
node 1 = 262143
node 2 = 262143
I also saw " Reserving non-aligned node boundary @ mfn 0x40000", " @mfn 0x8000 " and etc. in the "xm dmes".  I checked the code and found some comments in function init_heap_pages, saying
" Hand the specified arbitrary page range to the specified heap zone 
  checking the node_id of the previous page.  If they differ and the
  latter is not on a MAX_ORDER boundary, then we reserve the page by
 not freeing it to the buddy allocator."
I am wondering if the loss of a page is due to reserve the page not freeing back to buddy allocator. Is it possible to assign exactly 262144 pages to each virtual node ?
Thank you.
Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] Question about NUMA emulation, alex <=