| 
Keir Fraser wrote:
 IMHO that is what they do (beside the below issue patch 1 and 2 are more 
or less refactoring without functional changes), but anyway...
On 4/7/08 16:28, "Andre Przywara" <andre.przywara@xxxxxxx> wrote:
 
Have you applied the patches correctly? From 02_numa_guest.patch:
@@ -115,7 +113,7 @@
              goto out;
          page = alloc_domheap_pages(
-            d, a->extent_order, a->memflags | MEMF_node(node));
+            d, a->extent_order, a->memflags);
          if ( unlikely(page == NULL) )
          {
              gdprintk(XENLOG_INFO, "Could not allocate order=%d extent:"
The other use of MEMF_node is in exchange_memory, which is not given any
NUMA node info from the caller, so this is correct.
 
When sent a patch sequence I expect the patches to apply and work
independently (when applied one-by-one in order).
 
 Right you are, I have missed the subtle difference between both (the 
code isn't as clear as your sentence). The below patch should fix this 
(by catching NUMA_NO_NODE while still knowing struct domain*).
Anyway, your second patch changes the default NUMA allocation policy from
allocate on home node for the domain to allocate on node I'm currently
executing on. That would seem a net loss for PV guests (whose builder will
not be explicitly specifying the numa node for allocations).
 
If there are no further issues, I will resend the patches.
Regards,
Andre.
--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 277-84917
----to satisfy European Law for business letters:
AMD Saxony Limited Liability Company & Co. KG,
Wilschdorfer Landstr. 101, 01109 Dresden, Germany
Register Court Dresden: HRA 4896, General Partner authorized
to represent: AMD Saxony LLC (Wilmington, Delaware, US)
General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
 diff -r a3d712538f1b xen/common/page_alloc.c
--- a/xen/common/page_alloc.c   Fri Jul 04 15:57:01 2008 +0200
+++ b/xen/common/page_alloc.c   Sat Jul 05 01:09:48 2008 +0200
@@ -792,6 +792,8 @@ struct page_info *alloc_domheap_pages(
 
     ASSERT(!in_irq());
 
+    if ( node == NUMA_NO_NODE ) node = domain_to_node (d);
+
     bits = domain_clamp_alloc_bitsize(d, bits ? : (BITS_PER_LONG+PAGE_SHIFT));
     if ( bits <= (PAGE_SHIFT + 1) )
         return NULL;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |