|
David Johansen |
447ac5 |
commit c329012ce4b44af08217f2a8f2b3b9b1b4b1c0d3
|
|
David Johansen |
447ac5 |
Author: lvying6 <lvying6@huawei.com>
|
|
David Johansen |
447ac5 |
Date: Sat Oct 31 17:57:15 2020 +0800
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
ras-page-isolation: page which is PAGE_OFFLINE_FAILED can be offlined again
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
OS may fail to offline page at the previous time. After some time,
|
|
David Johansen |
447ac5 |
this page's state changed, and the page can be offlined by OS.
|
|
David Johansen |
447ac5 |
At this time, Correctable errors on this page reached the threshold.
|
|
David Johansen |
447ac5 |
Rasdaemon should trigger to offline this page again.
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
Signed-off-by: lvying6 <lvying6@huawei.com>
|
|
David Johansen |
447ac5 |
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
diff --git a/ras-page-isolation.c b/ras-page-isolation.c
|
|
David Johansen |
447ac5 |
index dc07545..fd7bd70 100644
|
|
David Johansen |
447ac5 |
--- a/ras-page-isolation.c
|
|
David Johansen |
447ac5 |
+++ b/ras-page-isolation.c
|
|
David Johansen |
447ac5 |
@@ -237,12 +237,17 @@ static void page_offline(struct page_record *pr)
|
|
David Johansen |
447ac5 |
int ret;
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
/* Offlining page is not required */
|
|
David Johansen |
447ac5 |
- if (offline <= OFFLINE_ACCOUNT)
|
|
David Johansen |
447ac5 |
+ if (offline <= OFFLINE_ACCOUNT) {
|
|
David Johansen |
447ac5 |
+ log(TERM, LOG_INFO, "PAGE_CE_ACTION=%s, ignore to offline page at %#llx\n",
|
|
David Johansen |
447ac5 |
+ offline_choice[offline].name, addr);
|
|
David Johansen |
447ac5 |
return;
|
|
David Johansen |
447ac5 |
+ }
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
/* Ignore offlined pages */
|
|
David Johansen |
447ac5 |
- if (pr->offlined != PAGE_ONLINE)
|
|
David Johansen |
447ac5 |
+ if (pr->offlined == PAGE_OFFLINE) {
|
|
David Johansen |
447ac5 |
+ log(TERM, LOG_INFO, "page at %#llx is already offlined, ignore\n", addr);
|
|
David Johansen |
447ac5 |
return;
|
|
David Johansen |
447ac5 |
+ }
|
|
David Johansen |
447ac5 |
|
|
David Johansen |
447ac5 |
/* Time to silence this noisy page */
|
|
David Johansen |
447ac5 |
if (offline == OFFLINE_SOFT_THEN_HARD) {
|