Add function prototype for NUMA-style allocation
authorRonald G. Minnich <rminnich@google.com>
Sat, 4 Jan 2014 01:36:12 +0000 (17:36 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 17 Jan 2014 22:35:29 +0000 (14:35 -0800)
In Linux, there is an allocator for pages which allows one
to specify the node. This is a good idea. We're not ready
to do it, but we should reserve a placeholder for it and,
when we bring code over, make sure that we don't lost track
of code that wants NUMA-specific allocation.

Add get_cont_pages_node, which takes node as the first parameter.
The function is equivalent to get_cont_pages, but that will
change if we ever get real NUMA-style allocation.

Signed-off-by: Ronald G. Minnich <rminnich@google.com>
kern/include/page_alloc.h
kern/src/page_alloc.c

index 5a98312..0f7f2b3 100644 (file)
@@ -66,6 +66,7 @@ error_t upage_alloc_specific(struct proc* p, page_t *SAFE *page, size_t ppn);
 error_t kpage_alloc_specific(page_t *SAFE *page, size_t ppn);
 
 void *CT(1 << order) get_cont_pages(size_t order, int flags);
+void *CT(1 << order) get_cont_pages_node(int node, size_t order, int flags);
 void free_cont_pages(void *buf, size_t order);
 
 void page_incref(page_t *SAFE page);
index f2f6571..96fd2e6 100644 (file)
@@ -215,6 +215,21 @@ void *get_cont_pages(size_t order, int flags)
        return ppn2kva(first);
 }
 
+/**
+ * @brief Allocated 2^order contiguous physical pages.  Will increment the
+ * reference count for the pages. Get them from NUMA node node.
+ *
+ * @param[in] node which node to allocate from. Unimplemented.
+ * @param[in] order order of the allocation
+ * @param[in] flags memory allocation flags
+ *
+ * @return The KVA of the first page, NULL otherwise.
+ */
+void *get_cont_pages_node(int node, size_t order, int flags)
+{
+       return get_cont_pages(order, flags);
+}
+
 void free_cont_pages(void *buf, size_t order)
 {
        size_t npages = 1 << order;