On Thu, Feb 27, 2014 at 04:29:03PM -0600, Eric Sandeen wrote:
> On 2/27/14, 3:45 AM, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@xxxxxxxxxx>
> > Recent changes to the log size scaling have resulted in using the
> > default size multiplier for the log size even on small filesystems.
> > Commit 88cd79b ("xfs: Add xfs_log_rlimit.c") changed the calculation
> > of the maximum transaction size that the kernel would issues and
> > that significantly increased the minimum size of the default log.
> > As such the size of the log on small filesystems was typically
> > larger than the prefious default, even though the previous default
> > was still larger than the minimum needed.
> > Rework the default log size calculation such that it will use the
> > original log size default if it is larger than the minimum log size
> > required, and only use a larger log if the configuration of the
> > filesystem requires it.
> > This is especially obvious in xfs/216, where the default log size is
> > 10MB all the way up to 16GB filesystems. The current mkfs selects a
> > log size of 50MB for the same size filesystems and this is
> > unnecessarily large.
> > Return the scaling of the log size for small filesystems to
> > something similar to what xfs/216 expects.
> I can confirm that this fixes xfs/216, but I've lost the thread on
> why log size scaling was changed at all in 88cd79b, and why we now
> end up with something different in mkfs.xfs than what we originally
> had.... Are there resulting functional changes? Cosmetic? What's
> going on with log scaling, and who moved my cheese? :)
tl;dr: I screwed up with the original change that caused the log
size to increase. It wasn't caught by review, it caused quite a few
problems for xfstests, and some of the things it was doing made no
sense. So this patch is reverting the behaviour back to -almost-
the same as the 3.1.x series.
The only difference is that now the minimum log size takes into
account sunit padding on log writes IOWs, the log sizes should be
identical to 3.1.x for filesystems with lsu=0 and that's why tests
like xfs/216 pass again....