Function report |
Source Code:mm\slub.c |
Create Date:2022-07-28 15:48:02 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Remove the cpu slab
Proto:static void deactivate_slab(struct kmem_cache *s, struct page *page, void *freelist, struct kmem_cache_cpu *c)
Type:void
Parameter:
Type | Parameter | Name |
---|---|---|
struct kmem_cache * | s | |
struct page * | page | |
void * | freelist | |
struct kmem_cache_cpu * | c |
2042 | enum slab_modes{M_NONE, M_PARTIAL, M_FULL, M_FREE} |
2043 | n = get_node(s, page_to_nid(page)) |
2044 | lock = 0 |
2051 | If first free object Then |
2068 | Do |
2098 | redo : |
2106 | If freelist Then |
2107 | SLUB -- |
2108 | set_freepointer(s, freelist, first free object ) |
2109 | first free object = freelist |
2110 | Else first free object = first free object |
2113 | frozen = 0 |
2115 | If Not SLUB && nr_partial >= min_partial Then m = M_FREE |
2117 | Else if first free object Then |
2128 | Else |
2142 | If l == M_PARTIAL Then remove_partial(n, page) |
2154 | If Not Interrupts must be disabled (for the fallback code to work right) Then Go to redo |
2160 | If lock Then spin_unlock( & list_lock) |
2165 | Else if m == M_FULL Then stat(s, Cpu slab was full when deactivated ) |
2168 | stat(s, Cpu slab was empty when deactivated ) |
2169 | discard_slab(s, page) |
2170 | stat(s, Slab freed to the page allocator ) |
2173 | The slab from which we are allocating = NULL |
2174 | Pointer to next available object = NULL |
Name | Describe |
---|---|
flush_slab | |
___slab_alloc | Slow path. The lockless freelist is empty or we need to perform* debugging duties.* Processing is still very fast if new objects have been freed to the* regular freelist. In that case we simply take over the regular freelist |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |