Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 342386 Details for
Bug 462066
[request action from kernel teams] Change in Linux 3.6 and later kernels causes deadlock when using ZFS
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to revert commits
patch (text/plain), 2.82 KB, created by
Richard Yao (RETIRED)
on 2013-03-17 15:44:03 UTC
(
hide
)
Description:
Patch to revert commits
Filename:
MIME Type:
Creator:
Richard Yao (RETIRED)
Created:
2013-03-17 15:44:03 UTC
Size:
2.82 KB
patch
obsolete
>Revert memcg patches that prevent OOM with too many dirty pages > >This is a monolithic patch that reverts the following commits: > >torvalds/linux@c3b94f44fcb0725471ecebb701c077a0ed67bd07 >torvalds/linux@e62e384e9da8d9a0c599795464a7e76fd490931c > >These changes cause attempts by ZFS to flush dirty pages to deadlock. A precise >explanation is available at the ZFSOnLinux issue tracker: > >https://github.com/zfsonlinux/zfs/issues/1342i > >I have a fix in development, but it will not be ready for some time. These >patches only benefit kernels built with CONFIG_MEMCG (default N in Kconfig) >when memory cgroups are actually used, are given small quantities of RAM and >have significant disk IO occur in them. As far as I can tell, nothing in the >main tree uses this and the one user on the forums that appears to use memory >cgroups does not use them under conditions that would trigger the issue that >these patches are meant to solve. Reverting these commits is a reasonable >stopgap measure until a fix in ZFS is ready. > >Signed-off: Richard Yao <ryao@gentoo.org> >diff --git a/mm/vmscan.c b/mm/vmscan.c >index 88c5fed..13abf1b 100644 >--- a/mm/vmscan.c >+++ b/mm/vmscan.c >@@ -723,41 +723,9 @@ static unsigned long shrink_page_list(struct list_head *page_list, > (PageSwapCache(page) && (sc->gfp_mask & __GFP_IO)); > > if (PageWriteback(page)) { >- /* >- * memcg doesn't have any dirty pages throttling so we >- * could easily OOM just because too many pages are in >- * writeback and there is nothing else to reclaim. >- * >- * Check __GFP_IO, certainly because a loop driver >- * thread might enter reclaim, and deadlock if it waits >- * on a page for which it is needed to do the write >- * (loop masks off __GFP_IO|__GFP_FS for this reason); >- * but more thought would probably show more reasons. >- * >- * Don't require __GFP_FS, since we're not going into >- * the FS, just waiting on its writeback completion. >- * Worryingly, ext4 gfs2 and xfs allocate pages with >- * grab_cache_page_write_begin(,,AOP_FLAG_NOFS), so >- * testing may_enter_fs here is liable to OOM on them. >- */ >- if (global_reclaim(sc) || >- !PageReclaim(page) || !(sc->gfp_mask & __GFP_IO)) { >- /* >- * This is slightly racy - end_page_writeback() >- * might have just cleared PageReclaim, then >- * setting PageReclaim here end up interpreted >- * as PageReadahead - but that does not matter >- * enough to care. What we do want is for this >- * page to have PageReclaim set next time memcg >- * reclaim reaches the tests above, so it will >- * then wait_on_page_writeback() to avoid OOM; >- * and it's also appropriate in global reclaim. >- */ >- SetPageReclaim(page); >- nr_writeback++; >- goto keep_locked; >- } >- wait_on_page_writeback(page); >+ nr_writeback++; >+ unlock_page(page); >+ goto keep; > } > > if (!force_reclaim)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 462066
:
342386
|
342410