Linux内存管理内核函数
Linux内存管理内核函数
get_page
get_page(struct page *page)
让page的_count加一,以防在处理page的时候该page被内核释放掉。
put_page
put_page(struct page *page)
让page的_count加减一,一般该函数会与get_page配合使用。
page_cache_release
#define page_cache_release(page) put_page(page)
该函数即为put_page(page)
alloc_pages
struct page * alloc_pages(gfp_t gfp_mask, unsigned int order)
该函数申请的内存是内核内存,而不是用户的内存。
alloc_pages()函数以gfp_mask分配方式分配2的order次方(1<<order)个连续的物理页。
__get_free_pages
unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order)
与alloc_pages功能相同,只是该函数返回的值为所请求的第一个页的逻辑地址。