[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH RFC] vmalloc/vzalloc: Add memflags parameter.



And use it amongst the callers of this function.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 xen/arch/x86/mm/hap/hap.c       | 2 +-
 xen/arch/x86/mm/shadow/common.c | 2 +-
 xen/common/domain.c             | 2 +-
 xen/common/domctl.c             | 2 +-
 xen/common/grant_table.c        | 3 ++-
 xen/common/vmap.c               | 8 ++++----
 xen/include/asm-x86/domain.h    | 4 ++--
 xen/include/xen/vmap.h          | 4 ++--
 8 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index e9c0080..acc5219 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -86,7 +86,7 @@ int hap_track_dirty_vram(struct domain *d,
         }
 
         rc = -ENOMEM;
-        dirty_bitmap = vzalloc(size);
+        dirty_bitmap = vzalloc(size, MEMF_node(domain_to_node(d)));
         if ( !dirty_bitmap )
             goto out;
 
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index bad355b..4169083 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -3491,7 +3491,7 @@ int shadow_track_dirty_vram(struct domain *d,
     if ( !nr )
         goto out;
 
-    dirty_bitmap = vzalloc(dirty_size);
+    dirty_bitmap = vzalloc(dirty_size, MEMF_node(domain_to_node(d)));
     if ( dirty_bitmap == NULL )
     {
         rc = -ENOMEM;
diff --git a/xen/common/domain.c b/xen/common/domain.c
index b0378aa..55a94d4 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1223,7 +1223,7 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, 
XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( v->vcpu_info == &dummy_vcpu_info )
             return -EINVAL;
 
-        if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
+        if ( (ctxt = alloc_vcpu_guest_context(MEMF_node(domain_to_node(d)))) 
== NULL )
             return -ENOMEM;
 
         if ( copy_from_guest(ctxt, arg, 1) )
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 46b967e..b874b01 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -492,7 +492,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) 
u_domctl)
                      < sizeof(struct compat_vcpu_guest_context));
 #endif
         ret = -ENOMEM;
-        if ( (c.nat = alloc_vcpu_guest_context()) == NULL )
+        if ( (c.nat = alloc_vcpu_guest_context(MEMF_node(domain_to_node(d)))) 
== NULL )
             break;
 
 #ifdef CONFIG_COMPAT
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index c92abda..b86286f 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3200,7 +3200,8 @@ grant_table_create(
     }
 
     /* Tracking of mapped foreign frames table */
-    t->maptrack = vzalloc(max_maptrack_frames * sizeof(*t->maptrack));
+    t->maptrack = vzalloc(max_maptrack_frames * sizeof(*t->maptrack),
+                          MEMF_node(domain_to_node(d)));
     if ( t->maptrack == NULL )
         goto no_mem_2;
 
diff --git a/xen/common/vmap.c b/xen/common/vmap.c
index c57239f..fd295b1 100644
--- a/xen/common/vmap.c
+++ b/xen/common/vmap.c
@@ -216,7 +216,7 @@ void vunmap(const void *va)
     vm_free(va);
 }
 
-void *vmalloc(size_t size)
+void *vmalloc(size_t size, unsigned int memflags)
 {
     mfn_t *mfn;
     size_t pages, i;
@@ -232,7 +232,7 @@ void *vmalloc(size_t size)
 
     for ( i = 0; i < pages; i++ )
     {
-        pg = alloc_domheap_page(NULL, 0);
+        pg = alloc_domheap_page(NULL, memflags);
         if ( pg == NULL )
             goto error;
         mfn[i] = _mfn(page_to_mfn(pg));
@@ -252,9 +252,9 @@ void *vmalloc(size_t size)
     return NULL;
 }
 
-void *vzalloc(size_t size)
+void *vzalloc(size_t size, unsigned int memflags)
 {
-    void *p = vmalloc(size);
+    void *p = vmalloc(size, memflags);
     int i;
 
     if ( p == NULL )
diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h
index f1d7ed6..a98bf3b 100644
--- a/xen/include/asm-x86/domain.h
+++ b/xen/include/asm-x86/domain.h
@@ -577,9 +577,9 @@ void domain_cpuid(struct domain *d,
 
 #define domain_max_vcpus(d) (is_hvm_domain(d) ? HVM_MAX_VCPUS : MAX_VIRT_CPUS)
 
-static inline struct vcpu_guest_context *alloc_vcpu_guest_context(void)
+static inline struct vcpu_guest_context *alloc_vcpu_guest_context(unsigned int 
memflags)
 {
-    return vmalloc(sizeof(struct vcpu_guest_context));
+    return vmalloc(sizeof(struct vcpu_guest_context), memflags);
 }
 
 static inline void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 5671ac8..f24a29e 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -11,8 +11,8 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity,
              unsigned int nr, unsigned int align, unsigned int flags);
 void *vmap(const mfn_t *mfn, unsigned int nr);
 void vunmap(const void *);
-void *vmalloc(size_t size);
-void *vzalloc(size_t size);
+void *vmalloc(size_t size, unsigned int memflags);
+void *vzalloc(size_t size, unsigned int memflags);
 void vfree(void *va);
 
 void __iomem *ioremap(paddr_t, size_t);
-- 
2.1.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.