| 函数逻辑报告 | 
| Source Code: mm\swapfile.c | Create Date:2022-07-27 16:47:27 | 
| Last Modify:2020-03-17 22:19:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:scan_swap_map_slots
函数原型:static int scan_swap_map_slots(struct swap_info_struct *si, unsigned char usage, int nr, swp_entry_t slots[])
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct swap_info_struct * | si | |
| unsigned char | usage | |
| int | nr | |
| swp_entry_t | slots | 
| 739 | last_in_cluster等于0 | 
| 741 | n_ret等于0 | 
| 743 | 如果nr大于SWAP_BATCH则nr等于SWAP_BATCH | 
| 761 | 如果cluster info. Only for SSD 则 | 
| 762 | 如果Try to get a swap entry from current cpu's swap entry pool (a cluster). This* might involve allocating a new cluster for current CPU too.则转到:checks | 
| 764 | 否则转到:scan | 
| 768 | 如果此条件成立可能性小(为编译器优化)(!countdown to next cluster search --)则 | 
| 771 | 转到:checks | 
| 774 | 自旋锁解锁 | 
| 789 | 否则如果offset恒等于last_in_cluster则 | 
| 796 | 如果此条件成立可能性小(为编译器优化)(--latency_ration < 0)则 | 
| 797 | cond_resched() | 
| 803 | 加自旋锁 | 
| 807 | checks : | 
| 808 | 如果cluster info. Only for SSD 则 | 
| 818 | 如果非SWP_USED etc: see above 按位与SWP_WRITEOK的值则转到:no_page | 
| 820 | 如果非dex of last free in swap_map 则转到:no_page | 
| 825 | ci等于lock_cluster(si, offset) | 
| 839 | 如果vmalloc'ed array of usage counts [offset]则 | 
| 848 | unlock_cluster(ci) | 
| 850 | swap_range_alloc(si, offset, 1) | 
| 855 | 如果n_ret恒等于nr或offset大于等于dex of last free in swap_map 则转到:done | 
| 861 | 如果此条件成立可能性小(为编译器优化)(--latency_ration < 0)则 | 
| 871 | 如果cluster info. Only for SSD 则 | 
| 872 | 如果Try to get a swap entry from current cpu's swap entry pool (a cluster). This* might involve allocating a new cluster for current CPU too.则转到:checks | 
| 874 | 否则转到:done | 
| 878 | offset先自加 | 
| 882 | countdown to next cluster search 先自减 | 
| 883 | 转到:checks | 
| 886 | done : | 
| 888 | 返回:n_ret | 
| 890 | scan : | 
| 891 | 自旋锁解锁 | 
| 892 | 当offset先自加小于等于dex of last free in swap_map 循环 | 
| 893 | 如果非vmalloc'ed array of usage counts [offset]则 | 
| 901 | 如果此条件成立可能性小(为编译器优化)(--latency_ration < 0)则 | 
| 902 | cond_resched() | 
| 908 | 如果非vmalloc'ed array of usage counts [offset]则 | 
| 916 | 如果此条件成立可能性小(为编译器优化)(--latency_ration < 0)则 | 
| 917 | cond_resched() | 
| 920 | offset自加 | 
| 922 | 加自旋锁 | 
| 924 | no_page : | 
| 926 | 返回:n_ret | 
| 名称 | 描述 | 
|---|---|
| scan_swap_map | |
| get_swap_pages | 
| 源代码转换工具 开放的插件接口 | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |