Function report |
Source Code:mm\slab.c |
Create Date:2022-07-28 15:44:56 |
Last Modify:2022-05-23 17:02:55 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Grow (by 1) the number of slabs within a cache. This is called by* kmem_cache_alloc() when there are no active objs left in a cache.
Proto:static struct page *cache_grow_begin(struct kmem_cache *cachep, gfp_t flags, int nodeid)
Type:struct page
Parameter:
Type | Parameter | Name |
---|---|---|
struct kmem_cache * | cachep | |
gfp_t | flags | |
int | nodeid |
2633 | pr_warn("Unexpected gfp: %#x (%pGg). Fixing up to gfp: %#x (%pGg). Fix your code!\n", invalid_mask, & invalid_mask, flags, & flags) |
2635 | dump_stack() |
2637 | WARN_ON_ONCE(ctor && (flags & __GFP_ZERO)) |
2640 | check_irq_off() |
2641 | If gfpflags_allow_blocking(local_flags) Then The local_irq_*() APIs are equal to the raw_local_irq*()* if !TRACE_IRQFLAGS.() |
2652 | page_node = page_to_nid(page) |
2656 | colour_next++ |
2657 | If colour_next >= colour Then colour_next = 0 |
2660 | offset = colour_next |
2664 | offset *= colour_off |
2671 | kasan_poison_slab(page) |
2681 | cache_init_objs(cachep, page) |
2683 | If gfpflags_allow_blocking(local_flags) Then local_irq_disable() |
2686 | Return page |
2688 | opps1 : |
2690 | failed : |
2691 | If gfpflags_allow_blocking(local_flags) Then local_irq_disable() |
2693 | Return NULL |
Name | Describe |
---|---|
cache_alloc_refill | |
fallback_alloc | Fallback function if there was no memory available and no objects on a* certain node and fall back is permitted. First we scan all the* available node for available objects. If that fails then we* perform an allocation without specifying a node |
____cache_alloc_node | A interface to enable slab creation on nodeid |
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 |