From: Li Wang <liwang@redhat.com>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Linux-MM <linux-mm@kvack.org>, LTP List <ltp@lists.linux.it>,
mike.kravetz@oracle.com, xishi.qiuxishi@alibaba-inc.com,
mhocko@kernel.org, Cyril Hrubis <chrubis@suse.cz>
Subject: [MM Bug?] mmap() triggers SIGBUS while doing the numa_move_pages() for offlined hugepage in background
Date: Mon, 29 Jul 2019 13:17:27 +0800 [thread overview]
Message-ID: <CAEemH2dMW6oh6Bbm=yqUADF+mDhuQgFTTGYftB+xAhqqdYV3Ng@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2557 bytes --]
Hi Naoya and Linux-MMers,
The LTP/move_page12 V2 triggers SIGBUS in the kernel-v5.2.3 testing.
https://github.com/wangli5665/ltp/blob/master/testcases/kernel/syscalls/move_pages/move_pages12.c
It seems like the retry mmap() triggers SIGBUS while doing the
numa_move_pages()
in background. That is very similar to the kernel bug which was mentioned
by commit 6bc9b56433b76e40d(mm: fix race on soft-offlining ): A race
condition between soft offline and hugetlb_fault which causes unexpected
process SIGBUS killing.
I'm not sure if that below patch is making sene to memory-failures.c, but after
building a new kernel-5.2.3 with this change, the problem can NOT be
reproduced.
Any comments?
----------------------------------
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1695,15 +1695,16 @@ static int soft_offline_huge_page(struct page
*page, int flags)
unlock_page(hpage);
ret = isolate_huge_page(hpage, &pagelist);
+ if (!ret) {
+ pr_info("soft offline: %#lx hugepage failed to isolate\n",
pfn);
+ return -EBUSY;
+ }
+
/*
* get_any_page() and isolate_huge_page() takes a refcount each,
* so need to drop one here.
*/
put_hwpoison_page(hpage);
- if (!ret) {
- pr_info("soft offline: %#lx hugepage failed to isolate\n",
pfn);
- return -EBUSY;
- }
----- test on kernel-v5.2.3 ------
# ./move_pages12
tst_test.c:1100: INFO: Timeout per run is 0h 05m 00s
move_pages12.c:251: INFO: Free RAM 194212832 kB
move_pages12.c:269: INFO: Increasing 2048kB hugepages pool on node 0 to 4
move_pages12.c:279: INFO: Increasing 2048kB hugepages pool on node 1 to 6
move_pages12.c:195: INFO: Allocating and freeing 4 hugepages on node 0
move_pages12.c:195: INFO: Allocating and freeing 4 hugepages on node 1
move_pages12.c:185: PASS: Bug not reproduced
tst_test.c:1145: BROK: Test killed by SIGBUS!
move_pages12.c:114: FAIL: move_pages failed: ESRCH
----- test on kernel-v5.2.3 + above patch------
# ./move_pages12
tst_test.c:1100: INFO: Timeout per run is 0h 05m 00s
move_pages12.c:252: INFO: Free RAM 64780164 kB
move_pages12.c:270: INFO: Increasing 2048kB hugepages pool on node 0 to 7
move_pages12.c:280: INFO: Increasing 2048kB hugepages pool on node 1 to 10
move_pages12.c:196: INFO: Allocating and freeing 4 hugepages on node 0
move_pages12.c:196: INFO: Allocating and freeing 4 hugepages on node 1
move_pages12.c:186: PASS: Bug not reproduced
move_pages12.c:186: PASS: Bug not reproduced
--
Regards,
Li Wang
[-- Attachment #2: Type: text/html, Size: 3934 bytes --]
next reply other threads:[~2019-07-29 5:17 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-29 5:17 Li Wang [this message]
2019-07-29 19:00 ` Mike Kravetz
2019-07-30 6:29 ` Li Wang
2019-07-31 0:44 ` Mike Kravetz
2019-08-02 0:19 ` Mike Kravetz
2019-08-02 4:15 ` Naoya Horiguchi
2019-08-02 17:42 ` Mike Kravetz
2019-08-05 0:40 ` Naoya Horiguchi
2019-08-05 8:57 ` Michal Hocko
2019-08-05 17:36 ` Mike Kravetz
2019-08-07 0:07 ` Mike Kravetz
2019-08-07 7:39 ` Michal Hocko
2019-08-07 15:10 ` Mike Kravetz
2019-08-02 9:59 ` Li Wang
2019-07-30 6:38 ` Li Wang
2019-08-02 3:48 ` Naoya Horiguchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAEemH2dMW6oh6Bbm=yqUADF+mDhuQgFTTGYftB+xAhqqdYV3Ng@mail.gmail.com' \
--to=liwang@redhat.com \
--cc=chrubis@suse.cz \
--cc=linux-mm@kvack.org \
--cc=ltp@lists.linux.it \
--cc=mhocko@kernel.org \
--cc=mike.kravetz@oracle.com \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=xishi.qiuxishi@alibaba-inc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox