From 06c8562a8008e5357f68110b3adbe3b106bc18f5 Mon Sep 17 00:00:00 2001 From: Mathieu Maret Date: Wed, 17 Apr 2019 23:13:46 +0200 Subject: [PATCH] alloc: reduce slabEntry size --- core/alloc.c | 6 +++--- core/alloc.h | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/alloc.c b/core/alloc.c index d1bfaa1..3d61f9f 100644 --- a/core/alloc.c +++ b/core/alloc.c @@ -30,6 +30,8 @@ int allocInit(void) } for (uint i = start; i <= SLUB_SIZE; i++) { if ((ret = allocBookSlab(1U << i, 0))) { + if(ret == -EEXIST) + continue; pr_devel("Fail to allocBookSlab %d for %d \n", ret, (1U << i)); return ret; } @@ -85,7 +87,6 @@ int addSlab(struct slabDesc **desc, size_t size, int selfContained) list_singleton(slab, slab); slab->page = (vaddr_t)alloc; slab->full = 0; - slab->size = size; (*desc)->size = size; // pr_devel("got page %d for size %d first %d", alloc, size, (*desc)->slab.freeEl); return formatPage(&(*desc)->slab, size, selfContained); @@ -112,7 +113,6 @@ int addSlabEntry(struct slabEntry **desc, size_t size, int selfContained) list_singleton(*desc, *desc); (*desc)->page = (vaddr_t)alloc; (*desc)->full = 0; - (*desc)->size = size; // pr_devel("got page %d for size %d first %d", alloc, size, (*desc)->freeEl); return formatPage((*desc), size, selfContained); } @@ -137,7 +137,7 @@ static void *allocFromSlab(struct slabEntry *slab) { vaddr_t *next = slab->freeEl; if (*next == (vaddr_t)NULL) { - pr_devel("Slab @%d for %d is now full\n", slab, slab->size); + pr_devel("Slab @%d is now full\n", slab); slab->full = 1; } else { slab->freeEl = (void *)(*next); diff --git a/core/alloc.h b/core/alloc.h index 4d3058e..216b8f1 100644 --- a/core/alloc.h +++ b/core/alloc.h @@ -4,7 +4,6 @@ struct slabEntry { vaddr_t page; - size_t size; void *freeEl; char full; struct slabEntry *next;