forked from Sricharanti/sricharan
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mm, sl[aou]b: Common definition for boot state of the slab allocators
All allocators have some sort of support for the bootstrap status. Setup a common definition for the boot states and make all slab allocators use that definition. Reviewed-by: Glauber Costa <[email protected]> Reviewed-by: Joonsoo Kim <[email protected]> Signed-off-by: Christoph Lameter <[email protected]> Signed-off-by: Pekka Enberg <[email protected]>
- Loading branch information
Showing
6 changed files
with
62 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#ifndef MM_SLAB_H | ||
#define MM_SLAB_H | ||
/* | ||
* Internal slab definitions | ||
*/ | ||
|
||
/* | ||
* State of the slab allocator. | ||
* | ||
* This is used to describe the states of the allocator during bootup. | ||
* Allocators use this to gradually bootstrap themselves. Most allocators | ||
* have the problem that the structures used for managing slab caches are | ||
* allocated from slab caches themselves. | ||
*/ | ||
enum slab_state { | ||
DOWN, /* No slab functionality yet */ | ||
PARTIAL, /* SLUB: kmem_cache_node available */ | ||
PARTIAL_ARRAYCACHE, /* SLAB: kmalloc size for arraycache available */ | ||
PARTIAL_L3, /* SLAB: kmalloc size for l3 struct available */ | ||
UP, /* Slab caches usable but not all extras yet */ | ||
FULL /* Everything is working */ | ||
}; | ||
|
||
extern enum slab_state slab_state; | ||
|
||
struct kmem_cache *__kmem_cache_create(const char *name, size_t size, | ||
size_t align, unsigned long flags, void (*ctor)(void *)); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters