Messages in this thread | | | Subject | Re: [PATCH] mm,hwpoison: unmap poisoned page before invalidation | From | Miaohe Lin <> | Date | Mon, 28 Mar 2022 10:41:49 +0800 |
| |
On 2022/3/28 10:24, Rik van Riel wrote: > On Mon, 2022-03-28 at 10:14 +0800, Miaohe Lin wrote: >> On 2022/3/27 4:14, Rik van Riel wrote: >> >> >>> >>>>> /* Retry if a clean page was removed >>>>> from >>>>> the cache. */ >>>>> - if (invalidate_inode_page(vmf->page)) >>>>> - poisonret = 0; >>>>> - unlock_page(vmf->page); >>>>> + if (invalidate_inode_page(page)) >>>>> + poisonret = VM_FAULT_NOPAGE; >>>>> + unlock_page(page); >>> >> >> Sure, but when I think more about this, it seems this fix isn't >> ideal: >> If VM_FAULT_NOPAGE is returned with page table unset, the process >> will >> re-trigger page fault again and again until invalidate_inode_page >> succeeds >> to evict the inode page. This might hang the process a really long >> time. >> Or am I miss something? >> > If invalidate_inode_page fails, we will return > VM_FAULT_HWPOISON, and kill the task, instead > of looping indefinitely.
Oh, really sorry! It's a drowsy Monday morning. :)
This patch looks good to me. Thanks!
Reviewed-by: Miaohe Lin <linmiaohe@huawei.com>
>
| |