函数逻辑报告 |
Source Code:mm\migrate.c |
Create Date:2022-07-27 17:33:41 |
Last Modify:2022-05-20 09:53:13 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Migrate an array of page address onto an array of nodes and fill* the corresponding array of status.
函数原型:static int do_pages_move(struct mm_struct *mm, nodemask_t task_nodes, unsigned long nr_pages, const void __user *__user *pages, const int __user *nodes, int __user *status, int flags)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct mm_struct * | mm | |
nodemask_t | task_nodes | |
unsigned long | nr_pages | |
const void __user *__user * | pages | |
const int __user * | nodes | |
int __user * | status | |
int | flags |
1596 | current_node等于NUMA_NO_NODE |
1599 | err等于0 |
1609 | 如果Careful: we have to cast the result to the type of the pointer* for sign reasons(p, pages + i)则转到:out_flush |
1611 | 如果Careful: we have to cast the result to the type of the pointer* for sign reasons(node, nodes + i)则转到:out_flush |
1616 | 如果node小于0或node大于等于MAX_NUMNODES则转到:out_flush |
1618 | 如果非node_state(node, N_MEMORY)则转到:out_flush |
1625 | 如果current_node恒等于NUMA_NO_NODE则 |
1626 | current_node等于node |
1628 | 否则如果node不等于current_node则 |
1629 | err等于do_move_pages_to_node(mm, & pagelist, current_node) |
1630 | 如果err则 |
1643 | err等于store_status(status, start, current_node, i - start) |
1647 | current_node等于node |
1654 | err等于Resolves the given address to a struct page, isolates it from the LRU and* puts it to the given pagelist |
1657 | 如果非err则 |
1663 | 否则如果err大于0则 |
1665 | 继续下一循环 |
1668 | err等于store_status(status, i, err, 1) |
1672 | err等于do_move_pages_to_node(mm, & pagelist, current_node) |
1673 | 如果err则 |
1679 | err等于store_status(status, start, current_node, i - start) |
1683 | current_node等于NUMA_NO_NODE |
1685 | out_flush : |
1690 | err1等于do_move_pages_to_node(mm, & pagelist, current_node) |
1698 | 如果非err1则err1等于store_status(status, start, current_node, i - start) |
1702 | out : |
1703 | 返回:err |
名称 | 描述 |
---|---|
kernel_move_pages | Move a list of pages in the address space of the currently executing* process. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |