| Function report | 
| Source Code: mm\slob.c | Create Date:2022-07-28 15:36:03 | 
| Last Modify:2022-05-20 09:26:42 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:slob_alloc: entry point into the slob allocator.
Proto:static void *slob_alloc(size_t size, gfp_t gfp, int align, int node, int align_offset)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| size_t | size | |
| gfp_t | gfp | |
| int | align | |
| int | node | |
| int | align_offset | 
| 310 | If size < All partially free slob pages go on these lists. Then slob_list = free_slob_small | 
| 312 | Else if size < SLOB_BREAK2 Then slob_list = free_slob_medium | 
| 314 | Else slob_list = free_slob_large | 
| 320 | bool page_removed_from_list = false | 
| 326 | If node != NUMA_NO_NODE && page_to_nid(sp) != node Then Continue | 
| 330 | If SLOB < SLOB_UNITS(size) Then Continue | 
| 334 | If Not b Then Continue | 
| 343 | If Not page_removed_from_list Then | 
| 352 | Break | 
| 357 | If Not b Then | 
| 358 | b = slob_new_pages(gfp & ~__GFP_ZERO, 0, node) | 
| 359 | If Not b Then Return NULL | 
| 361 | sp = virt_to_page(kaddr) returns a valid pointer if and only if* virt_addr_valid(kaddr) returns true.(b) | 
| 362 | __SetPageSlab(sp) | 
| 365 | SLOB = SLOB_UNITS(PAGE_SIZE) | 
| 366 | first free object = b | 
| 369 | set_slob_page_free(sp, slob_list) | 
| 374 | If Value for the false possibility is greater at compile time(gfp & __GFP_ZERO) Then memset(b, 0, size) | 
| 376 | Return b | 
| Name | Describe | 
|---|---|
| __do_kmalloc_node | End of slob allocator proper. Begin kmem_cache_alloc and kmalloc frontend. | 
| slob_alloc_node | 
| 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 |