[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220429142206.294714-4-pizhenwei@bytedance.com>
Date: Fri, 29 Apr 2022 22:22:05 +0800
From: zhenwei pi <pizhenwei@...edance.com>
To: akpm@...ux-foundation.org, naoya.horiguchi@....com
Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org,
zhenwei pi <pizhenwei@...edance.com>,
Wu Fengguang <fengguang.wu@...el.com>
Subject: [PATCH 3/4] mm/memofy-failure.c: optimize hwpoison_filter
In the memory failure procedure, hwpoison_filter has higher priority,
if memory_filter() filters the error event, there is no need to do
the further work.
Cc: Wu Fengguang <fengguang.wu@...el.com>
Signed-off-by: zhenwei pi <pizhenwei@...edance.com>
---
mm/memory-failure.c | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index ece05858568f..a6a27c8b800f 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1800,6 +1800,11 @@ int memory_failure(unsigned long pfn, int flags)
goto unlock_mutex;
}
+ if (hwpoison_filter(p)) {
+ res = -EOPNOTSUPP;
+ goto unlock_mutex;
+ }
+
try_again:
res = try_memory_failure_hugetlb(pfn, flags, &hugetlb);
if (hugetlb)
@@ -1937,15 +1942,6 @@ int memory_failure(unsigned long pfn, int flags)
*/
page_flags = p->flags;
- if (hwpoison_filter(p)) {
- if (TestClearPageHWPoison(p))
- num_poisoned_pages_dec();
- unlock_page(p);
- put_page(p);
- res = -EOPNOTSUPP;
- goto unlock_mutex;
- }
-
/*
* __munlock_pagevec may clear a writeback page's LRU flag without
* page_lock. We need wait writeback completion for this page or it
--
2.20.1
Powered by blists - more mailing lists