函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |