From: "Huang\, Ying" <ying.huang@intel.com>
To: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: huang ying <huang.ying.caritas@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@kernel.org>,
Vlastimil Babka <vbabka@suse.cz>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Minchan Kim <minchan@kernel.org>,
Seth Jennings <sjenning@redhat.com>,
Dan Streetman <ddstreet@ieee.org>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: bisected bd4c82c22c367e is the first bad commit (was [Bug 198617] New: zswap causing random applications to crash)
Date: Mon, 05 Feb 2018 20:00:57 +0800 [thread overview]
Message-ID: <87d11j4pdy.fsf@yhuang-dev.intel.com> (raw)
In-Reply-To: <20180205013758.GA648@jagdpanzerIV> (Sergey Senozhatsky's message of "Mon, 5 Feb 2018 10:37:58 +0900")
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> writes:
> Hi,
>
> On (02/04/18 22:21), huang ying wrote:
> [..]
>> >> After disabling zswap no crashes at all.
>> >>
>> >> /etc/systemd/swap.conf
>> >> zswap_enabled=1
>> >> zswap_compressor=lz4 # lzo lz4
>> >> zswap_max_pool_percent=25 # 1-99
>> >> zswap_zpool=zbud # zbud z3fold
>> >
> [..]
>> Can you give me some detailed steps to reproduce this? Like the
>> kernel configuration file, swap configuration, etc. Any kernel
>> WARNING during testing? Can you reproduce this with a real swap
>> device instead of zswap?
>
> No warnings (at least no warnings with my .config). Tested it only with
> zram based swap (I'm running swap-less x86 systems, so zram is the easiest
> way). It seems it's THP + frontswap that makes things unstable, rather
> than THP + swap.
>
> Kernel zswap boot params:
> zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=10 zswap.zpool=zbud
>
> Then I add a 4G zram swap and run a silly memory hogger. I don't think
> you'll have any problems reproducing it, but just in case I attached my
> .config
I have successfully reproduced the issue and find the problem. The
following patch fix the issue for me, can you try it?
Best Regards,
Huang, Ying
---------------------------------8<-------------------------------
WARNING: multiple messages have this Message-ID (diff)
From: "Huang\, Ying" <ying.huang@intel.com>
To: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: huang ying <huang.ying.caritas@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
"Michal Hocko" <mhocko@kernel.org>,
Vlastimil Babka <vbabka@suse.cz>,
"Sergey Senozhatsky" <sergey.senozhatsky@gmail.com>,
Minchan Kim <minchan@kernel.org>,
Seth Jennings <sjenning@redhat.com>,
Dan Streetman <ddstreet@ieee.org>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
<linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: bisected bd4c82c22c367e is the first bad commit (was [Bug 198617] New: zswap causing random applications to crash)
Date: Mon, 05 Feb 2018 20:00:57 +0800 [thread overview]
Message-ID: <87d11j4pdy.fsf@yhuang-dev.intel.com> (raw)
In-Reply-To: <20180205013758.GA648@jagdpanzerIV> (Sergey Senozhatsky's message of "Mon, 5 Feb 2018 10:37:58 +0900")
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> writes:
> Hi,
>
> On (02/04/18 22:21), huang ying wrote:
> [..]
>> >> After disabling zswap no crashes at all.
>> >>
>> >> /etc/systemd/swap.conf
>> >> zswap_enabled=1
>> >> zswap_compressor=lz4 # lzo lz4
>> >> zswap_max_pool_percent=25 # 1-99
>> >> zswap_zpool=zbud # zbud z3fold
>> >
> [..]
>> Can you give me some detailed steps to reproduce this? Like the
>> kernel configuration file, swap configuration, etc. Any kernel
>> WARNING during testing? Can you reproduce this with a real swap
>> device instead of zswap?
>
> No warnings (at least no warnings with my .config). Tested it only with
> zram based swap (I'm running swap-less x86 systems, so zram is the easiest
> way). It seems it's THP + frontswap that makes things unstable, rather
> than THP + swap.
>
> Kernel zswap boot params:
> zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=10 zswap.zpool=zbud
>
> Then I add a 4G zram swap and run a silly memory hogger. I don't think
> you'll have any problems reproducing it, but just in case I attached my
> .config
I have successfully reproduced the issue and find the problem. The
following patch fix the issue for me, can you try it?
Best Regards,
Huang, Ying
---------------------------------8<-------------------------------
>From 4c52d531680f91572ebc6f4525a018e32a934ef0 Mon Sep 17 00:00:00 2001
From: Huang Ying <huang.ying.caritas@gmail.com>
Date: Mon, 5 Feb 2018 19:27:43 +0800
Subject: [PATCH] fontswap thp fix
---
mm/page_io.c | 2 +-
mm/vmscan.c | 16 +++++++++++++---
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/mm/page_io.c b/mm/page_io.c
index b41cf9644585..6dca817ae7a0 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -250,7 +250,7 @@ int swap_writepage(struct page *page, struct writeback_control *wbc)
unlock_page(page);
goto out;
}
- if (frontswap_store(page) == 0) {
+ if (!PageTransHuge(page) && frontswap_store(page) == 0) {
set_page_writeback(page);
unlock_page(page);
end_page_writeback(page);
diff --git a/mm/vmscan.c b/mm/vmscan.c
index bee53495a829..d1c1e00b08bb 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -55,6 +55,7 @@
#include <linux/swapops.h>
#include <linux/balloon_compaction.h>
+#include <linux/frontswap.h>
#include "internal.h"
@@ -1063,14 +1064,23 @@ static unsigned long shrink_page_list(struct list_head *page_list,
/* cannot split THP, skip it */
if (!can_split_huge_page(page, NULL))
goto activate_locked;
+ /*
+ * Split THP if frontswap enabled,
+ * because it cannot process THP
+ */
+ if (frontswap_enabled()) {
+ if (split_huge_page_to_list(
+ page, page_list))
+ goto activate_locked;
+ }
/*
* Split pages without a PMD map right
* away. Chances are some or all of the
* tail pages can be freed without IO.
*/
- if (!compound_mapcount(page) &&
- split_huge_page_to_list(page,
- page_list))
+ else if (!compound_mapcount(page) &&
+ split_huge_page_to_list(page,
+ page_list))
goto activate_locked;
}
if (!add_to_swap(page)) {
--
2.15.1
next prev parent reply other threads:[~2018-02-05 12:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180130114841.aa2d3bd99526c03c6a5b5810@linux-foundation.org>
2018-02-03 1:34 ` bisected bd4c82c22c367e is the first bad commit (was [Bug 198617] New: zswap causing random applications to crash) Sergey Senozhatsky
2018-02-03 1:34 ` Sergey Senozhatsky
2018-02-03 2:38 ` Sergey Senozhatsky
2018-02-03 2:38 ` Sergey Senozhatsky
2018-02-04 14:21 ` huang ying
2018-02-04 14:21 ` huang ying
2018-02-05 1:37 ` Sergey Senozhatsky
2018-02-05 1:42 ` Huang, Ying
2018-02-05 1:42 ` Huang, Ying
2018-02-05 12:00 ` Huang, Ying [this message]
2018-02-05 12:00 ` Huang, Ying
2018-02-05 12:39 ` Sergey Senozhatsky
2018-02-05 12:39 ` Sergey Senozhatsky
2018-02-05 12:43 ` Sergey Senozhatsky
2018-02-05 12:43 ` Sergey Senozhatsky
2018-02-06 0:24 ` Andrew Morton
2018-02-06 0:24 ` Andrew Morton
2018-02-06 0:31 ` Huang, Ying
2018-02-06 0:31 ` Huang, Ying
2018-02-06 2:31 ` Sergey Senozhatsky
2018-02-06 2:31 ` Sergey Senozhatsky
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=87d11j4pdy.fsf@yhuang-dev.intel.com \
--to=ying.huang@intel.com \
--cc=akpm@linux-foundation.org \
--cc=ddstreet@ieee.org \
--cc=huang.ying.caritas@gmail.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=sergey.senozhatsky@gmail.com \
--cc=sjenning@redhat.com \
--cc=vbabka@suse.cz \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.