Function report |
Source Code:mm\memory-failure.c |
Create Date:2022-07-28 16:19:29 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:memory_failure - Handle memory failure of a page.*@pfn: Page Number of the corrupted page*@flags: fine tune action taken* This function is called by the low level machine check code* of an architecture when it detects hardware memory corruption* of a page
Proto:int memory_failure(unsigned long pfn, int flags)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| unsigned long | pfn | |
| int | flags |
| 1243 | If Not sysctl_memory_failure_recovery Then panic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns. |
| 1247 | If Not p Then |
| 1249 | pgmap = get_dev_pagemap(pfn, NULL) |
| 1250 | If pgmap Then Return memory_failure_dev_pagemap(pfn, flags, pgmap) |
| 1256 | Return -ENXIO |
| 1261 | If TestSetPageHWPoison(p) Then |
| 1267 | orig_head = hpage = compound_head(p) |
| 1268 | num_poisoned_pages_inc() |
| 1293 | If Not PageAnon(p) || Value for the false possibility is greater at compile time(split_huge_page(p)) Then |
| 1301 | If TestClearPageHWPoison(p) Then num_poisoned_pages_dec() |
| 1303 | put_hwpoison_page(p) |
| 1304 | Return -EBUSY |
| 1307 | VM_BUG_ON_PAGE(!page_count(p), p) |
| 1308 | hpage = compound_head(p) |
| 1321 | If Not PageLRU(p) && is_free_buddy_page(p) Then |
| 1322 | If flags & MF_COUNT_INCREASED Then "Dirty/Clean" indication is not 100% accurate due to the possibility of* setting PG_dirty outside page lock. See also comment above set_page_dirty(). |
| 1326 | Return 0 |
| 1335 | If PageCompound(p) && compound_head(p) != orig_head Then |
| 1338 | Go to out |
| 1356 | If Not PageHWPoison(p) Then |
| 1363 | If hwpoison_filter(p) Then |
| 1364 | If TestClearPageHWPoison(p) Then num_poisoned_pages_dec() |
| 1367 | put_hwpoison_page(p) |
| 1368 | Return 0 |
| 1390 | Go to out |
| 1396 | If (PageLRU(p) && !PageSwapCache(p) && See page-flags.h for PAGE_MAPPING_FLAGS == NULL) Then |
| 1399 | Go to out |
| 1402 | identify_page_state : |
| 1403 | res = identify_page_state(pfn, p, page_flags) |
| 1404 | out : |
| 1406 | Return res |
| Name | Describe |
|---|---|
| do_memory_failure | |
| memory_failure_work_func | |
| hwpoison_inject | |
| madvise_inject_error | Error injection support for memory error handling. |
| 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 |