* [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
@ 2008-02-21 23:08 David Chinner
2008-02-22 2:44 ` Niv Sardi
0 siblings, 1 reply; 8+ messages in thread
From: David Chinner @ 2008-02-21 23:08 UTC (permalink / raw)
To: xfs-dev; +Cc: xfs-oss
Increase the maximum log size supported by mkfs.
The log size can be increased easily in mkfs by changing a few
defines and a couple of types to allow the log size to increase to
1GB. Theoretically, the log size can be made much, much larger than
this (up to 2^32 sectors), but going beyond 2^30 *bytes* causes
integer overflow issues in the kernel log code.
e.g. a 2GB log (2^31 bytes) will not mount because the
space calculations in the kernel use "int" types and
overflow:
STATIC int
xlog_space_left(xlog_t *log, int cycle, int bytes)
Hence logs larger than 2^30 will not work without kernel
modifications. Therefore this change is limited to increasing the
log size to what we can currently support in kernel space with
needing kernel modifications.
Signed-off-by: Dave Chinner <dgc@sgi.com>
---
xfsprogs/include/xfs_fs.h | 8 ++++----
xfsprogs/mkfs/xfs_mkfs.c | 14 +++++++-------
2 files changed, 11 insertions(+), 11 deletions(-)
Index: xfs-cmds/xfsprogs/include/xfs_fs.h
===================================================================
--- xfs-cmds.orig/xfsprogs/include/xfs_fs.h 2008-02-19 11:38:24.333887808 +1100
+++ xfs-cmds/xfsprogs/include/xfs_fs.h 2008-02-19 18:16:21.701796360 +1100
@@ -248,10 +248,10 @@ typedef struct xfs_fsop_resblks {
* Minimum and maximum sizes need for growth checks
*/
#define XFS_MIN_AG_BLOCKS 64
-#define XFS_MIN_LOG_BLOCKS 512
-#define XFS_MAX_LOG_BLOCKS (64 * 1024)
-#define XFS_MIN_LOG_BYTES (256 * 1024)
-#define XFS_MAX_LOG_BYTES (128 * 1024 * 1024)
+#define XFS_MIN_LOG_BLOCKS 512ULL
+#define XFS_MAX_LOG_BLOCKS (1024 * 1024ULL)
+#define XFS_MIN_LOG_BYTES (10 * 1024 * 1024ULL)
+#define XFS_MAX_LOG_BYTES (1 * 1024 * 1024 * 1024ULL)
/*
* Structures for XFS_IOC_FSGROWFSDATA, XFS_IOC_FSGROWFSLOG & XFS_IOC_FSGROWFSRT
Index: xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c
===================================================================
--- xfs-cmds.orig/xfsprogs/mkfs/xfs_mkfs.c 2008-02-07 20:14:08.000000000 +1100
+++ xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c 2008-02-22 09:56:14.307824979 +1100
@@ -362,13 +362,13 @@ validate_log_size(__uint64_t logblocks,
}
if (logblocks > XFS_MAX_LOG_BLOCKS) {
fprintf(stderr,
- _("log size %lld blocks too large, maximum size is %d blocks\n"),
+ _("log size %lld blocks too large, maximum size is %lld blocks\n"),
(long long)logblocks, XFS_MAX_LOG_BLOCKS);
usage();
}
if ((logblocks << blocklog) > XFS_MAX_LOG_BYTES) {
fprintf(stderr,
- _("log size %lld bytes too large, maximum size is %d bytes\n"),
+ _("log size %lld bytes too large, maximum size is %lld bytes\n"),
(long long)(logblocks << blocklog), XFS_MAX_LOG_BYTES);
usage();
}
@@ -1728,7 +1728,7 @@ reported by the device (%u).\n"),
min_logblocks = max_tr_res * XFS_MIN_LOG_FACTOR;
min_logblocks = MAX(XFS_MIN_LOG_BLOCKS, min_logblocks);
if (!logsize && dblocks >= (1024*1024*1024) >> blocklog)
- min_logblocks = MAX(min_logblocks, (10*1024*1024)>>blocklog);
+ min_logblocks = MAX(min_logblocks, XFS_MIN_LOG_BYTES>>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"),
@@ -1748,10 +1748,10 @@ _("size %s specified for log subvolume i
logblocks = 0;
} else if (loginternal && !logsize) {
/*
- * logblocks grows from min_logblocks to XFS_MAX_LOG_BLOCKS
- * at 128GB
- *
- * 2048 = 128GB / MAX_LOG_BYTES
+ * With a 1GB max log size, default to maximum size
+ * at 2TB. This keeps the same ratio from the older
+ * max log size of 128M at 256GB fs size. IOWs,
+ * the ratio of fs size to log size is 2048:1.
*/
logblocks = (dblocks << blocklog) / 2048;
logblocks = logblocks >> blocklog;
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-21 23:08 [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs David Chinner
@ 2008-02-22 2:44 ` Niv Sardi
2008-02-22 5:03 ` David Chinner
0 siblings, 1 reply; 8+ messages in thread
From: Niv Sardi @ 2008-02-22 2:44 UTC (permalink / raw)
To: David Chinner; +Cc: xfs-dev, xfs-oss
David Chinner <dgc@sgi.com> writes:
> Increase the maximum log size supported by mkfs.
>
> The log size can be increased easily in mkfs by changing a few
> defines and a couple of types to allow the log size to increase to
> 1GB. Theoretically, the log size can be made much, much larger than
> this (up to 2^32 sectors), but going beyond 2^30 *bytes* causes
> integer overflow issues in the kernel log code.
>
> e.g. a 2GB log (2^31 bytes) will not mount because the
> space calculations in the kernel use "int" types and
> overflow:
>
> STATIC int
> xlog_space_left(xlog_t *log, int cycle, int bytes)
>
> Hence logs larger than 2^30 will not work without kernel
> modifications. Therefore this change is limited to increasing the
> log size to what we can currently support in kernel space with
> needing kernel modifications.
I'm glad you got time to get around this, I didn't include it in the
first batch as I was told it 'broke things'.
Looks good to me.
Cheers,
--
Niv Sardi
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-22 2:44 ` Niv Sardi
@ 2008-02-22 5:03 ` David Chinner
2008-02-22 5:44 ` Lachlan McIlroy
0 siblings, 1 reply; 8+ messages in thread
From: David Chinner @ 2008-02-22 5:03 UTC (permalink / raw)
To: Niv Sardi; +Cc: David Chinner, xfs-dev, xfs-oss
On Fri, Feb 22, 2008 at 01:44:38PM +1100, Niv Sardi wrote:
> David Chinner <dgc@sgi.com> writes:
> > Increase the maximum log size supported by mkfs.
....
> > Hence logs larger than 2^30 will not work without kernel
> > modifications. Therefore this change is limited to increasing the
> > log size to what we can currently support in kernel space with
> > needing kernel modifications.
>
> I'm glad you got time to get around this, I didn't include it in the
> first batch as I was told it 'broke things'.
Right. There's all sorts of nasties lurking if we go over 1GB in
size, but AFAICT up to 1GB is OK. There's still lots of validation
needing to be done - that's why this is an "RFC" and not something
ready for checkin yet. That's where more eye's and testers are
handy...
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-22 5:03 ` David Chinner
@ 2008-02-22 5:44 ` Lachlan McIlroy
2008-02-22 6:53 ` David Chinner
0 siblings, 1 reply; 8+ messages in thread
From: Lachlan McIlroy @ 2008-02-22 5:44 UTC (permalink / raw)
To: David Chinner; +Cc: Niv Sardi, xfs-dev, xfs-oss
David Chinner wrote:
> On Fri, Feb 22, 2008 at 01:44:38PM +1100, Niv Sardi wrote:
>> David Chinner <dgc@sgi.com> writes:
>>> Increase the maximum log size supported by mkfs.
> ....
>>> Hence logs larger than 2^30 will not work without kernel
>>> modifications. Therefore this change is limited to increasing the
>>> log size to what we can currently support in kernel space with
>>> needing kernel modifications.
>> I'm glad you got time to get around this, I didn't include it in the
>> first batch as I was told it 'broke things'.
>
> Right. There's all sorts of nasties lurking if we go over 1GB in
> size, but AFAICT up to 1GB is OK. There's still lots of validation
> needing to be done - that's why this is an "RFC" and not something
> ready for checkin yet. That's where more eye's and testers are
> handy...
>
Dave, have you run any tests to see if we get any speed-ups with
this change?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-22 5:44 ` Lachlan McIlroy
@ 2008-02-22 6:53 ` David Chinner
2008-02-25 1:10 ` Mark Goodwin
0 siblings, 1 reply; 8+ messages in thread
From: David Chinner @ 2008-02-22 6:53 UTC (permalink / raw)
To: Lachlan McIlroy; +Cc: David Chinner, Niv Sardi, xfs-dev, xfs-oss
On Fri, Feb 22, 2008 at 04:44:02PM +1100, Lachlan McIlroy wrote:
> David Chinner wrote:
> >On Fri, Feb 22, 2008 at 01:44:38PM +1100, Niv Sardi wrote:
> >>David Chinner <dgc@sgi.com> writes:
> >>>Increase the maximum log size supported by mkfs.
> >....
> >>>Hence logs larger than 2^30 will not work without kernel
> >>>modifications. Therefore this change is limited to increasing the
> >>>log size to what we can currently support in kernel space with
> >>>needing kernel modifications.
> >>I'm glad you got time to get around this, I didn't include it in the
> >>first batch as I was told it 'broke things'.
> >
> >Right. There's all sorts of nasties lurking if we go over 1GB in
> >size, but AFAICT up to 1GB is OK. There's still lots of validation
> >needing to be done - that's why this is an "RFC" and not something
> >ready for checkin yet. That's where more eye's and testers are
> >handy...
>
> Dave, have you run any tests to see if we get any speed-ups with
> this change?
Not yet - I've been running it through QA with different log sizes
first to see if there's anything obviously broken with the kernel
w.r.t. larger log sizes (nothing wrong so far).
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-22 6:53 ` David Chinner
@ 2008-02-25 1:10 ` Mark Goodwin
2008-02-25 1:31 ` Lachlan McIlroy
0 siblings, 1 reply; 8+ messages in thread
From: Mark Goodwin @ 2008-02-25 1:10 UTC (permalink / raw)
To: David Chinner; +Cc: Lachlan McIlroy, Niv Sardi, xfs-dev, xfs-oss
David Chinner wrote:
> On Fri, Feb 22, 2008 at 04:44:02PM +1100, Lachlan McIlroy wrote:
>> David Chinner wrote:
>>> On Fri, Feb 22, 2008 at 01:44:38PM +1100, Niv Sardi wrote:
>>>> David Chinner <dgc@sgi.com> writes:
>>>>> Increase the maximum log size supported by mkfs.
>>> ....
>>>>> Hence logs larger than 2^30 will not work without kernel
>>>>> modifications.
> Therefore this change is limited to increasing the
>>>>> log size to what we can currently support in kernel space with
>>>>> needing kernel modifications.
Does anyone know of any work in mainline to address this?
>>>> I'm glad you got time to get around this, I didn't include it in the
>>>> first batch as I was told it 'broke things'.
>>> Right. There's all sorts of nasties lurking if we go over 1GB in
>>> size, but AFAICT up to 1GB is OK. There's still lots of validation
>>> needing to be done - that's why this is an "RFC" and not something
>>> ready for checkin yet. That's where more eye's and testers are
>>> handy...
>> Dave, have you run any tests to see if we get any speed-ups with
>> this change?
>
> Not yet - I've been running it through QA with different log sizes
> first to see if there's anything obviously broken with the kernel
> w.r.t. larger log sizes (nothing wrong so far).
What sort of improvements are we expecting? Log bound benchmarks will
tail-push later than they do now, wont they? Which particular benchmarks
are you thinking of running?
Thanks
--
Mark Goodwin markgw@sgi.com
Engineering Manager for XFS and PCP Phone: +61-3-99631937
SGI Australian Software Group Cell: +61-4-18969583
-------------------------------------------------------------
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-25 1:10 ` Mark Goodwin
@ 2008-02-25 1:31 ` Lachlan McIlroy
2008-02-28 18:17 ` David Chinner
0 siblings, 1 reply; 8+ messages in thread
From: Lachlan McIlroy @ 2008-02-25 1:31 UTC (permalink / raw)
To: markgw; +Cc: David Chinner, Niv Sardi, xfs-dev, xfs-oss
Mark Goodwin wrote:
>
> David Chinner wrote:
>> On Fri, Feb 22, 2008 at 04:44:02PM +1100, Lachlan McIlroy wrote:
>>> David Chinner wrote:
>>>> On Fri, Feb 22, 2008 at 01:44:38PM +1100, Niv Sardi wrote:
>>>>> David Chinner <dgc@sgi.com> writes:
>>>>>> Increase the maximum log size supported by mkfs.
>>>> ....
>>>>>> Hence logs larger than 2^30 will not work without kernel
>>>>>> modifications.
>> Therefore this change is limited to increasing the
>>>>>> log size to what we can currently support in kernel space with
>>>>>> needing kernel modifications.
>
> Does anyone know of any work in mainline to address this?
>
>>>>> I'm glad you got time to get around this, I didn't include it in the
>>>>> first batch as I was told it 'broke things'.
>>>> Right. There's all sorts of nasties lurking if we go over 1GB in
>>>> size, but AFAICT up to 1GB is OK. There's still lots of validation
>>>> needing to be done - that's why this is an "RFC" and not something
>>>> ready for checkin yet. That's where more eye's and testers are
>>>> handy...
>>> Dave, have you run any tests to see if we get any speed-ups with
>>> this change?
>>
>> Not yet - I've been running it through QA with different log sizes
>> first to see if there's anything obviously broken with the kernel
>> w.r.t. larger log sizes (nothing wrong so far).
>
> What sort of improvements are we expecting? Log bound benchmarks will
> tail-push later than they do now, wont they? Which particular benchmarks
> are you thinking of running?
>
Does a larger on-disk log mean we can have a lot more items in the AIL?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs
2008-02-25 1:31 ` Lachlan McIlroy
@ 2008-02-28 18:17 ` David Chinner
0 siblings, 0 replies; 8+ messages in thread
From: David Chinner @ 2008-02-28 18:17 UTC (permalink / raw)
To: Lachlan McIlroy; +Cc: markgw, David Chinner, Niv Sardi, xfs-dev, xfs-oss
On Mon, Feb 25, 2008 at 12:31:19PM +1100, Lachlan McIlroy wrote:
> Does a larger on-disk log mean we can have a lot more items in the AIL?
Yes.
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-02-28 18:17 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-21 23:08 [RFC, patch 1/2] Allow up to 1GB logs in mkfs.xfs David Chinner
2008-02-22 2:44 ` Niv Sardi
2008-02-22 5:03 ` David Chinner
2008-02-22 5:44 ` Lachlan McIlroy
2008-02-22 6:53 ` David Chinner
2008-02-25 1:10 ` Mark Goodwin
2008-02-25 1:31 ` Lachlan McIlroy
2008-02-28 18:17 ` David Chinner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox