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

[Minios-devel] [UNIKRAFT PATCH v3 0/4] add support for generic memory allocators



This patch series addresses a few bugs and design issues in ukalloc in
order to ease the port of new allocators to unikraft.

"lib/ukalloc: use size instead of order in palloc and pfree apis" updates
the palloc and pfree api to take size parameters instead of order.

Furthermore "lib/ukalloc: implement new allocator helpers" implements new
helpers for generic, malloc based memory allocators.

Unfortunately, using this patch with a generic allocator results in page
fault during uk_thread_current because the stack is not aligned at
STACK_SIZE.

This is because the stack is allocated via palloc and not posix_memalign,
hence only guaranteeing page alignment.

We address this issue in "lib/uksched: use posix_memalign to allocate
stack" and "lib/ukalloc: fix multiple issues in uk_posix_memalign_ifpages"
which adds support for alignment > page size to uk_posix_memalign_ifpages.

This patch also addresses an out-of-bounds issue in
uk_posix_memalign_ifpages with allocation aligned at less than a page.

Changes v3:
  - add new patch "lib/ukalloc: use size instead of order in palloc and
    pfree apis".
  - rework "lib/ukalloc: fix multiple issues in uk_posix_memalign_ifpages"
    which did not support freeing properly.
  - replace uk_pfree by uk_free in "lib/uksched: use posix_memalign to
    allocate stack".
  - refresh "lib/ukalloc: implement new allocator helpers" according to
    previous changes.

Hugo Lefeuvre (4):
  lib/ukalloc: use size instead of order in palloc and pfree apis
  lib/ukalloc: fix multiple issues in uk_posix_memalign_ifpages
  lib/uksched: use posix_memalign to allocate stack
  lib/ukalloc: implement new allocator helpers

 lib/ukalloc/alloc.c                 | 149 +++++++++++++++++++++---------------
 lib/ukalloc/exportsyms.uk           |   3 +
 lib/ukalloc/include/uk/alloc.h      |  20 ++---
 lib/ukalloc/include/uk/alloc_impl.h |  22 +++++-
 lib/ukallocbbuddy/bbuddy.c          |  18 ++++-
 lib/uksched/sched.c                 |   4 +-
 plat/xen/drivers/9p/9pfront.c       |  20 ++---
 7 files changed, 151 insertions(+), 85 deletions(-)

-- 
2.7.4


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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