函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\percpu-vm.c Create Date:2022-07-27 15:51:30
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:pcpu_populate_chunk - populate and map an area of a pcpu_chunk*@chunk: chunk of interest*@page_start: the start page*@page_end: the end page*@gfp: allocation flags passed to the underlying memory allocator* For each cpu, populate and map pages

函数原型:static int pcpu_populate_chunk(struct pcpu_chunk *chunk, int page_start, int page_end, gfp_t gfp)

返回类型:int

参数:

类型参数名称
struct pcpu_chunk *chunk
intpage_start
intpage_end
gfp_tgfp
280  pages等于pcpu_get_pages - get temp pages array* Returns pointer to array of pointers to struct page which can be indexed* with pcpu_page_idx(). Note that there is only one array and accesses* should be serialized by pcpu_alloc_mutex.* RETURNS:
281  如果非pages则返回:负ENOMEM
284  如果pcpu_alloc_pages - allocates pages for @chunk*@chunk: target chunk*@pages: array to put the allocated pages into, indexed by pcpu_page_idx()*@page_start: page index of the first page to be allocated*@page_end: page index of the last page to be allocated + 则返回:负ENOMEM
287  如果pcpu_map_pages - map pages into a pcpu_chunk*@chunk: chunk of interest*@pages: pages array containing pages to be mapped*@page_start: page index of the first page to map*@page_end: page index of the last page to map + 1
288  pcpu_free_pages - free pages which were allocated for @chunk*@chunk: chunk pages were allocated for*@pages: array of pages to be freed, indexed by pcpu_page_idx()*@page_start: page index of the first page to be freed*@page_end: page index of the last page
289  返回:负ENOMEM
291  pcpu_post_map_flush - flush cache after mapping*@chunk: pcpu_chunk the regions to be flushed belong to*@page_start: page index of the first page to be flushed*@page_end: page index of the last page to be flushed + 1
293  返回:0
调用者
名称描述
pcpu_allocpcpu_alloc - the percpu allocator*@size: size of area to allocate in bytes*@align: alignment of area (max PAGE_SIZE)*@reserved: allocate from the reserved chunk if available*@gfp: allocation flags* Allocate percpu area of @size bytes aligned at @align
pcpu_balance_workfnBalance work is used to populate or destroy chunks asynchronously. We* try to keep the number of populated free pages between* PCPU_EMPTY_POP_PAGES_LOW and HIGH for atomic allocations and at most one* empty chunk.