函数逻辑报告 |
Source Code:mm\gup.c |
Create Date:2022-07-27 16:01:27 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:check_and_migrate_cma_pages
函数原型:static long check_and_migrate_cma_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start, unsigned long nr_pages, struct page **pages, struct vm_area_struct **vmas, unsigned int gup_flags)
返回类型:long
参数:
类型 | 参数 | 名称 |
---|---|---|
struct task_struct * | tsk | |
struct mm_struct * | mm | |
unsigned long | start | |
unsigned long | nr_pages | |
struct page ** | pages | |
struct vm_area_struct ** | vmas | |
unsigned int | gup_flags |
1455 | bool drain_allow = true |
1456 | bool migrate_allow = true |
1457 | LIST_HEAD(cma_page_list) |
1460 | check_again : |
1463 | head等于compound_head(pages[i]) |
1475 | 如果is_migrate_cma_page(head)则 |
1476 | 如果PageHuge(head)则isolate_huge_page(head, & cma_page_list) |
1478 | 否则 |
1479 | 如果非PageLRU(head)且drain_allow则 |
1480 | lru_add_drain_all() |
1481 | drain_allow = false |
1485 | 添加链表项 |
1497 | 如果非链表为空则 |
1510 | migrate_allow = false |
1524 | 如果ret大于0且migrate_allow则 |
1531 | 返回:ret |
名称 | 描述 |
---|---|
__gup_longterm_locked | __gup_longterm_locked() is a wrapper for __get_user_pages_locked which* allows us to process the FOLL_LONGTERM flag. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |