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'sShould 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