函数逻辑报告 |
Source Code:mm\migrate.c |
Create Date:2022-07-27 17:32:34 |
| Last Modify:2022-05-20 09:53:13 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Replace the page in the mapping.* The number of remaining references must be:* 1 for anonymous pages without a mapping* 2 for pages with a mapping* 3 for pages with a mapping and PagePrivate/PagePrivate2 set.
函数原型:int migrate_page_move_mapping(struct address_space *mapping, struct page *newpage, struct page *page, int extra_count)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct address_space * | mapping | |
| struct page * | newpage | |
| struct page * | page | |
| int | extra_count |
| 405 | 如果非mapping则 |
| 407 | 如果page_count(page)不等于expected_count则返回:负EAGAIN |
| 413 | 如果PageSwapBacked(page)则__SetPageSwapBacked(newpage) |
| 422 | xas_lock_irq( & xas) |
| 424 | xas_unlock_irq( & xas) |
| 425 | 返回:负EAGAIN |
| 428 | 如果非page_ref_freeze(page, expected_count)则 |
| 429 | xas_unlock_irq( & xas) |
| 430 | 返回:负EAGAIN |
| 439 | page_ref_add(newpage, hpage_nr_pages(page)) |
| 440 | 如果PageSwapBacked(page)则 |
| 442 | 如果PageSwapCache(page)则 |
| 443 | SetPageSwapCache(newpage) |
| 444 | set_page_private(newpage, page_private(page)) |
| 446 | 否则 |
| 447 | VM_BUG_ON_PAGE(PageSwapCache(page), page) |
| 452 | 如果dirty则 |
| 453 | ClearPageDirty(page) |
| 454 | SetPageDirty(newpage) |
| 461 | 以i小于HPAGE_PMD_NR循环 |
| 474 | xas_unlock( & xas) |
| 501 | 开中断() |
| 名称 | 描述 |
|---|---|
| migrate_page | Common logic to directly migrate a single LRU page suitable for* pages that do not use PagePrivate/PagePrivate2.* Pages are locked upon entry and exit. |
| __buffer_migrate_page | |
| iomap_migrate_page | |
| aio_migratepage |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |