linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PATCH reduce impact of FIFREEZE on userland processes
@ 2012-12-05 21:17 Alun
  2012-12-07  0:42 ` Dave Chinner
  0 siblings, 1 reply; 8+ messages in thread
From: Alun @ 2012-12-05 21:17 UTC (permalink / raw)
  To: Alexander Viro; +Cc: linux-fsdevel, linux-kernel


This patch is against kernel version 3.7-rc7.

The FIFREEZE ioctl blocks userland writes, then calls sync_filesystem.
If there is a large amount of dirty data, this sync can take a
substantial time to complete, with corresponding loss of responsiveness
to any userland processes wishing to write.

This patch simply adds an extra call to sync_filesystem prior to
blocking writes, so that (hopefully) the majority of outstanding dirty
data has been flushed before we impact on userland.

I'm a complete kernel newbie and have only done some pretty minimal
testing on my own machine, but with the patch in place the impact of
running "fsfreeze -f" immediately followed by "fsfreeze -u" on a
moderately loaded filesystem (as measured by time taken for a write()
to complete) was reduced from 2.5 to 0.2 seconds. Hopefully there's no
subtlety in how all this works, and that adding the extra call has no
scary implications...

Signed-off-by: Alun Jones <alun.linux@ty-penguin.org.uk>

--- linux-3.7-rc7/fs/super.c.orig       2012-11-29 17:35:37.000000000
+0000 +++ linux-3.7-rc7/fs/super.c    2012-12-05 20:56:38.730631855
+0000 @@ -1314,6 +1314,11 @@ int freeze_super(struct super_block *sb)
                return 0;
        }
 
+       /* Sync before we block writes to reduce the amount of
+        * work that has to be done afterwards.
+        */
+       sync_filesystem(sb);
+
        /* From now on, no new normal writers can start */
        sb->s_writers.frozen = SB_FREEZE_WRITE;
        smp_wmb();

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-12-10  2:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-05 21:17 PATCH reduce impact of FIFREEZE on userland processes Alun
2012-12-07  0:42 ` Dave Chinner
2012-12-07  8:59   ` Alun
2012-12-08  1:20     ` Dave Chinner
2012-12-08  8:47       ` Alun
2012-12-10  2:44         ` Dave Chinner
2012-12-08 12:12   ` Christoph Hellwig
2012-12-10  2:28     ` Dave Chinner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).