Thread (4 messages) 4 messages, 3 authors, 2011-08-25

Re: [PATCH] fs / ext3: Always unlock updates in ext3_freeze()

From: Pavel Machek <hidden>
Date: 2011-08-25 13:50:07
Also in: linux-fsdevel, lkml

Hi!
quoted
quoted
quoted
The problem really isn't XFS specific, nor is it new - the fact is
that any filesystem that has registered a shrinker or can do async
work in the background post-sync is vulnerable to this problem. It's
Should we avoid calling shrinkers while hibernating?
If you like getting random OOM problems when hibernating, then go
for it.  Besides, shrinkers are used for more than just filesystems,
so you might find you screw entire classes of users by doing this
(eg everyone using intel graphics and 3D).
quoted
Or put BUG_ON()s into filesystem shrinkers so that this can not
happen?
Definitely not. If your concern is filesystem shrinkers and you want
a large hammer to hit the problem with then do your hibernate
image allocation wih GFP_NOFS and the filesystem shrinkers will
abort without doing anything.
I think we can do that, actually.
I believe we should, yes. Question is if it helps much, because
various drivers (and userspace in case uswsusp?) will still trigger
GFP_KERNEL allocations.

Something like this?
--- snapshot.c.ofic	2011-08-25 15:48:41.000000000 +0200
+++ snapshot.c	2011-08-25 15:49:07.000000000 +0200
@@ -1107,7 +1107,7 @@
 
 /* Helper functions used for the shrinking of memory. */
 
-#define GFP_IMAGE	(GFP_KERNEL | __GFP_NOWARN)
+#define GFP_IMAGE	(GFP_NODS | __GFP_NOWARN)
 
 /**
  * preallocate_image_pages - Allocate a number of pages for hibernation image

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help