Function report |
Source Code:mm\migrate.c |
Create Date:2022-07-28 15:59:03 |
Last Modify:2022-05-20 09:53:13 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:__unmap_and_move
Proto:static int __unmap_and_move(struct page *page, struct page *newpage, int force, enum migrate_mode mode)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct page * | page | |
struct page * | newpage | |
int | force | |
enum migrate_mode | mode |
1008 | page_was_mapped = 0 |
1010 | is_lru = Not __PageMovable(page) |
1012 | If Not Return true if the page was successfully locked Then |
1013 | If Not force || mode == MIGRATE_ASYNC Then Go to out |
1029 | If flags & Allocating memory Then Go to out |
1043 | Case mode == MIGRATE_SYNC |
1044 | Case mode == MIGRATE_SYNC_NO_COPY |
1045 | Break |
1046 | Default |
1048 | Go to out_unlock |
1050 | If Not force Then Go to out_unlock |
1080 | If Value for the false possibility is greater at compile time(!Return true if the page was successfully locked) Then Go to out_unlock |
1083 | If Value for the false possibility is greater at compile time(!is_lru) Then |
1085 | Go to out_unlock_both |
1100 | If Not See page-flags.h for PAGE_MAPPING_FLAGS Then |
1101 | VM_BUG_ON_PAGE(PageAnon(page), page) |
1103 | try_to_free_buffers(page) |
1104 | Go to out_unlock_both |
1112 | page_was_mapped = 1 |
1118 | If page_was_mapped Then Get rid of all migration entries and replace them by* references to the indicated page. |
1122 | out_unlock_both : |
1124 | out_unlock : |
1126 | If anon_vma Then put_anon_vma(anon_vma) |
1129 | out : |
1146 | Return rc |
Name | Describe |
---|---|
unmap_and_move | Obtain the lock on page, remove all ptes and migrate the page* to the newly allocated page in newpage. |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |