xfs
[Top] [All Lists]

[PATCH] Better defaults to mkfs logsize

To: linux-xfs@xxxxxxxxxxx
Subject: [PATCH] Better defaults to mkfs logsize
From: Andi Kleen <ak@xxxxxxx>
Date: Wed, 11 Jun 2003 11:39:02 +0200
Sender: linux-xfs-bounce@xxxxxxxxxxx
Here is a patch to mkfs in the same spirit as the earlier logbufs patch.

Another limiting factor for XFS metadata performance is the default logsize,
which is usually too small (compared to other Linux journaling fs and good
defaults) 

The patch scales the log size for an inline log much more aggressively.
If the file system is bigger than 1GB you will get at least 10MB of log.

The maximum size of the log (64MB) is reached at 128GB already, not at 1TB.

I guess even the maximum could be still enlarged (64MB is rather small these
days), but I didn't do that for now.

-Andi

diff -u xfsprogs/mkfs/xfs_mkfs.c-o xfsprogs/mkfs/xfs_mkfs.c
--- xfsprogs/mkfs/xfs_mkfs.c-o  2003-06-11 11:10:34.000000000 +0200
+++ xfsprogs/mkfs/xfs_mkfs.c    2003-06-11 11:27:24.000000000 +0200
@@ -1423,6 +1423,9 @@
                                [dirblocklog - XFS_MIN_BLOCKSIZE_LOG];
        ASSERT(i);
        min_logblocks = MAX(XFS_MIN_LOG_BLOCKS, i * XFS_MIN_LOG_FACTOR);
+       if (dblocks  >= (1024*1024*1024)>>blocklog) { 
+               min_logblocks = MAX(min_logblocks, (10*1024*1024)>>blocklog); 
+       } 
        if (logsize && xi.logBBsize > 0 && logblocks > DTOBT(xi.logBBsize)) {
                fprintf(stderr,
 _("size %s specified for log subvolume is too large, maximum is %lld 
blocks\n"),
@@ -1443,11 +1446,11 @@
        else if (loginternal && !logsize) {
                /*
                 * logblocks grows from min_logblocks to XFS_MAX_LOG_BLOCKS
-                * at 1TB
+                * at 128GB
                 *
-                * 8192 = 1TB / MAX_LOG_BYTES
+                * 2048 = 128GB / MAX_LOG_BYTES
                 */
-               logblocks = (dblocks << blocklog) / 8192;
+               logblocks = (dblocks << blocklog) / 2048;
                logblocks = logblocks >> blocklog;
                logblocks = MAX(min_logblocks, logblocks);
                logblocks = MAX(logblocks,


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] Better defaults to mkfs logsize, Andi Kleen <=