From: Minchan Kim <minchan@kernel.org> To: Hugh Dickins <hughd@google.com> Cc: Andrew Morton <akpm@linux-foundation.org>, "Darrick J . Wong" <darrick.wong@oracle.com>, Hyeoncheol Lee <cheol.lee@lge.com>, yjay.kim@lge.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2] mm: support anonymous stable page Date: Tue, 22 Nov 2016 13:43:22 +0900 [thread overview] Message-ID: <20161122044322.GA2864@bbox> (raw) In-Reply-To: <alpine.LSU.2.11.1611211932410.1085@eggly.anvils> Hi Hugh, On Mon, Nov 21, 2016 at 07:46:28PM -0800, Hugh Dickins wrote: > On Mon, 21 Nov 2016, Minchan Kim wrote: > > From: Minchan Kim <minchan@kernel.org> > > Date: Fri, 11 Nov 2016 15:02:57 +0900 > > Subject: [PATCH v2] mm: support anonymous stable page > > > > For developemnt for zram-swap asynchronous writeback, I found > > strange corruption of compressed page. With investigation, it > > reveals currently stable page doesn't support anonymous page. > > IOW, reuse_swap_page can reuse the page without waiting > > writeback completion so that it can corrupt data during > > zram compression. It can affect every swap device which supports > > asynchronous writeback and CRC checking as well as zRAM. > > > > Unfortunately, reuse_swap_page should be atomic so that we > > cannot wait on writeback in there so the approach in this patch > > is simply return false if we found it needs stable page. > > Although it increases memory footprint temporarily, it happens > > rarely and it should be reclaimed easily althoug it happened. > > Also, It would be better than waiting of IO completion, which > > is critial path for application latency. > > > > Cc: Hugh Dickins <hughd@google.com> > > Cc: Darrick J. Wong <darrick.wong@oracle.com> > > Signed-off-by: Minchan Kim <minchan@kernel.org> > > Acked-by: Hugh Dickins <hughd@google.com> Thanks! > > Looks good, thanks: we can always optimize away that little overhead > in the PageWriteback case, if it ever shows up in someone's testing. Yeb. > > Andrew might ask if we should Cc stable (haha): I think we agree > that it's a defect we've been aware of ever since stable pages were > first proposed, but nobody has actually been troubled by it before > your async zram development: so, you're right to be fixing it ahead > of your zram changes, but we don't see a call for backporting. I thought so until I see your comment. However, I checked again and found it seems a ancient bug since zram birth. swap_writepage unlock the page right before submitting bio while it keeps the lock during rw_page operation during bdev_write_page. So, if zram_rw_page fails(e.g, -ENOMEM) and then fallback to submit_bio in __swap_writepage, the problem can occur. Hmm, I will resend patchset with zram fix part with marking the stable. Thanks, Hugh!
WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org> To: Hugh Dickins <hughd@google.com> Cc: Andrew Morton <akpm@linux-foundation.org>, "Darrick J . Wong" <darrick.wong@oracle.com>, Hyeoncheol Lee <cheol.lee@lge.com>, yjay.kim@lge.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2] mm: support anonymous stable page Date: Tue, 22 Nov 2016 13:43:22 +0900 [thread overview] Message-ID: <20161122044322.GA2864@bbox> (raw) In-Reply-To: <alpine.LSU.2.11.1611211932410.1085@eggly.anvils> Hi Hugh, On Mon, Nov 21, 2016 at 07:46:28PM -0800, Hugh Dickins wrote: > On Mon, 21 Nov 2016, Minchan Kim wrote: > > From: Minchan Kim <minchan@kernel.org> > > Date: Fri, 11 Nov 2016 15:02:57 +0900 > > Subject: [PATCH v2] mm: support anonymous stable page > > > > For developemnt for zram-swap asynchronous writeback, I found > > strange corruption of compressed page. With investigation, it > > reveals currently stable page doesn't support anonymous page. > > IOW, reuse_swap_page can reuse the page without waiting > > writeback completion so that it can corrupt data during > > zram compression. It can affect every swap device which supports > > asynchronous writeback and CRC checking as well as zRAM. > > > > Unfortunately, reuse_swap_page should be atomic so that we > > cannot wait on writeback in there so the approach in this patch > > is simply return false if we found it needs stable page. > > Although it increases memory footprint temporarily, it happens > > rarely and it should be reclaimed easily althoug it happened. > > Also, It would be better than waiting of IO completion, which > > is critial path for application latency. > > > > Cc: Hugh Dickins <hughd@google.com> > > Cc: Darrick J. Wong <darrick.wong@oracle.com> > > Signed-off-by: Minchan Kim <minchan@kernel.org> > > Acked-by: Hugh Dickins <hughd@google.com> Thanks! > > Looks good, thanks: we can always optimize away that little overhead > in the PageWriteback case, if it ever shows up in someone's testing. Yeb. > > Andrew might ask if we should Cc stable (haha): I think we agree > that it's a defect we've been aware of ever since stable pages were > first proposed, but nobody has actually been troubled by it before > your async zram development: so, you're right to be fixing it ahead > of your zram changes, but we don't see a call for backporting. I thought so until I see your comment. However, I checked again and found it seems a ancient bug since zram birth. swap_writepage unlock the page right before submitting bio while it keeps the lock during rw_page operation during bdev_write_page. So, if zram_rw_page fails(e.g, -ENOMEM) and then fallback to submit_bio in __swap_writepage, the problem can occur. Hmm, I will resend patchset with zram fix part with marking the stable. Thanks, Hugh! -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-11-22 4:43 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-20 23:30 [PATCH v2] mm: support anonymous stable page Minchan Kim 2016-11-20 23:30 ` Minchan Kim 2016-11-22 3:46 ` Hugh Dickins 2016-11-22 3:46 ` Hugh Dickins 2016-11-22 4:43 ` Minchan Kim [this message] 2016-11-22 4:43 ` Minchan Kim 2016-11-23 4:43 ` Hugh Dickins 2016-11-23 4:43 ` Hugh Dickins 2016-11-23 7:41 ` Minchan Kim 2016-11-23 7:41 ` Minchan Kim
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=20161122044322.GA2864@bbox \ --to=minchan@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=cheol.lee@lge.com \ --cc=darrick.wong@oracle.com \ --cc=hughd@google.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=yjay.kim@lge.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: linkBe 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.