tcache_alloc_small
2017-01-13 19:14:36 0 举报
tcache_alloc_small是一个内存分配函数,用于在Linux内核的线程缓存中分配小的内存块。这个函数主要用于分配线程私有的数据结构,如栈帧、任务控制块(TCB)等。tcache_alloc_small函数首先检查线程缓存中是否有空闲的小内存块,如果有,则直接分配并返回;如果没有,则会尝试从slab分配器中分配一个更大的内存块,然后将其分割成多个小内存块,并将这些小内存块添加到线程缓存中。这样可以避免频繁地从slab分配器中分配和释放内存,从而提高系统的性能。
作者其他创作
大纲/内容
arena_run_reg_alloc
return
ret =tcache_alloc_easy
run == NULL
ret == NULL
Y
tbin-low_water = -1
ret = tbin-avail[tbin-ncached]
regind =bitmap_sfuarena_run_to_miscelmrpages = arena_miscelm_to_rpages
NULL
bin-runcur != NULL && bin-runcur-nfree 0
arena_tcache_fill_small
N
return ptr
ptr = arena_run_reg_alloc
ptr = arena_bin_malloc_hard
tcache_event_hard
tbin-ncached == 0
tcache_alloc_small
tcache_event
ret = tcache_alloc_small_hard
run =arena_bin_nonfull_run_get
(run = bin-runcur) != NULL && run-nfree 0
0 条评论
下一页