On Wed, 2011-07-27 at 13:13 +0400, Roman Ovchinnikov wrote:
> On Tue, Jul 26, 2011 at 11:02 PM, Alex Elder <aelder@xxxxxxx> wrote:
> > On Fri, 2011-07-22 at 11:52 -0400, Christoph Hellwig wrote:
> >> On Mon, May 23, 2011 at 02:34:54AM +0400, CoolCold wrote:
> >> > Basing on irc discussions and questions about reading xfs_info output
> >> > I've added example in xfs_growfs manpage.
> >> Alex, Dave, Eric, do you guys have any comments on this? Language
> >> nitpicks from the native speakers? Otherwise I'd be inclined to put it
> >> in.
I have some stuff at the very end of this message I'd like some
feedback on--so dear reader please take a look at that before
you delete this message.
> >> > Signed-off-by: Roman Ovchinnikov <coolthecold@xxxxxxxxx>
> > I had to dust off my troff command knowledge to review this.
> > It has been many years...
> I was testing how manpage will look with "man man/man8/xfs_growfs.8",
> works for me.
Yes it works fine. I was just trying to understand what
the "Vb" (verbatim) macro was doing. Today I found a
"groff_man(7)" manual page, which documents the ".EX"
and ".EE" macros which do what the ".Vb" macro defined
here does, plus drops hyphenation and does a better
job of temporarily substituting the font.
I looked for something like that yesterday but didn't
find it until today. I guess I would prefer to use
the .EE/.EX macros if they work. But I'll leave it
up to you to decide.
> > Christoph prompted to review this from a native speaker's
> > point of view though, so I do that here. I do end up
> > with a question for others to try to resolve.
> > I think what you are doing (adding the example) is a good idea
> > to help clarify things in any case.
> >> > ---
> >> > man/man8/xfs_growfs.8 | 34 ++++++++++++++++++++++++++++++++++
> >> > 1 files changed, 34 insertions(+), 0 deletions(-)
> >> >
> >> > diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8
> >> > index 02793ae..c782fc1 100644
> >> > --- a/man/man8/xfs_growfs.8
> >> > +++ b/man/man8/xfs_growfs.8
> >> > @@ -1,3 +1,14 @@
> >> > +.\" Verbatim blocks taken from openssl req manpage content
> >> > +.de Vb \" Begin verbatim text
> >> > +.ft CW
> >> > +.nf
> >> > +.ne \\$1
> >> > +..
> >> > +.de Ve \" End verbatim text
> >> > +.ft R
> >> > +.fi
> >> > +..
> >> > +
> >> > .TH xfs_growfs 8
> >> > .SH NAME
> >> > xfs_growfs, xfs_info \- expand an XFS filesystem
> >> > @@ -105,6 +116,7 @@ this is specified with
> >> > Specifies that no change to the filesystem is to be made.
> >> > The filesystem geometry is printed, and argument checking is performed,
> >> > but no growth occurs.
> >> > +.B See output examples below.
> >> > .TP
> >> > .BI "\-r | \-R " size
> >> > Specifies that the real-time section of the filesystem should be grown.
> >> > If the
> >> > @@ -152,6 +164,28 @@ reside. In order to grow a filesystem, it is
> >> > necessary to provide added
> >> > space for it to occupy. Therefore there must be at least one spare new
> >> > disk partition available. Adding the space is often done through the use
> >> > of a logical volume manager.
> >> > +.SH "EXAMPLES"
> >> > +
> >> > +Examining xfs_info output.
> > How about, "Understanding xfs_info output"
> >> > +.PP
> >> > +Let's assume one have the next xfs_info output:
> >> > +.PP
> >> > +.Vb 1
> > Maybe you could add something indicating how the command was issued.
> > I.e.:
> > \&# xfs_info /dev/sda
> >> > +\& meta-data=/dev/sda isize=256 agcount=32, agsize=16777184 blks
> >> > +\& = sectsz=512 attr=2
> >> > +\& data = bsize=4096 blocks=536869888, imaxpct=5
> >> > +\& = sunit=32 swidth=128 blks
> >> > +\& naming =version 2 bsize=4096
> >> > +\& log =internal bsize=4096 blocks=32768, version=2
> >> > +\& = sectsz=512 sunit=32 blks, lazy-count=1
> >> > +\& realtime =none extsz=524288 blocks=0, rtextents=0
> > I think you should drop the space character after each '&' above.
> > The way you have it puts a slight indent in the output.
> Personally I like indentation here, to make the text look like "quote",
> and may be I'd add one more space
OK. I wasn't sure multiple spaces would reliably show up,
but since the formatting will be disabled it might. I
think the indent is fine, but maybe you should use ".RS"
and ".RE" to control the position of the left margin.
> >> > +.Ve
> >> > +.PP
> >> > +
> >> > +Here, data section block size (bsize) is 4096 bytes. Therefore
> >> > +"sunit=32 swidth=128 blks" means stripe unit is 32*4096 bytes = 128
> >> > kibibytes
> >> > +and stripe width is 128*4096 bytes = 512 kibibytes. Filesystem is
> >> > striped
> >> > +over 4 ( 128 / 32 ) stripes.
> > I'll just write what I think it should be rather than trying
> > to show lots of little changes:
> > Here, the data section of the output indicates "bsize=4096",
> > meaning the data block size for this filesystem is 4096 bytes.
> > This section also shows "sunit=32 swidth=128 blks", which means
> > the stripe unit is 32*4096 bytes = 128 kibibytes and the stripe
> > width is 128*4096 bytes = 512 kibibytes.
> > The last sentence I'm not sure I agree with. I think you're
> > trying to explain the relationship between a stripe width
> > and stripe unit, and the components that make up a stripe.
> > Your use of the term "stripe" doesn't match what I take
> > to be its meaning. I'm not saying my meaning is right, but
> > I'd like to make sure we have agreement on these terms.
> Generally I was trying to fact out units of measurement - as,say,
> mkfs.xfs manpage describes option parameters as 512 bytes blocks/just
> bytes to be specified when calling mkfs.xfs, and when someone gets
> xfs_info output for that mount point it really differs from parameters
> he passed to mkfs.xfs (at least at first sight).
I think this is good. My only concern was that we use
terminology consistently, so it doesn't just shift to
a different source of confusion.
> > Given that, I would re-state your last sentence (using my
> > terminology as):
> > A single stripe of this filesystem therefore consists
> > of four stripe units (128 blocks / 32 blocks per unit).
> > I.e., my meaning says that a "stripe" is "stripe width"
> > blocks wide, made up of four "stripe units", each of which
> > is 32 blocks, where a block is 4096 bytes.
> > I think you are using the term "stripe" to represent what
> > I'm calling the "stripe unit".
> > Perhaps someone else can help ensure we're using
> > terms with meaning consistent with how XFS has used
> > them historically.
> I've checked manpage for mkfs.xfs and it operates with terms
> "stripe unit" & "stripe width" in your understanding, so I
> think this is historically proper way to think about stripes.
OK, thanks for checking.
> > -Alex
> >> > .SH SEE ALSO
> >> > .BR mkfs.xfs (8),
> >> > .BR md (4),
> So, I've updated patch (now it mostly contains your text), but left
> indentation. Patch is attached and url for it is
> I'm new to all this public patch-through-email process,
> should I start new mail thread with new patch text inside
Below is the typical process. It's quite a bit more
than what you're asking for, but I've been asked it
more than once so I thought I'd write something up
once and for all so I can refer to it later.
A quick look shows this is not really documented on
the xfs.org Wiki, so if others don't point me at
another place that has this I can put a copy of the
following there. Please review and comment.
- Developer makes a change against a particular version
of the XFS master branch (typically it's the latest
- Developer tests the change:
- Builds clean--no errors or warnings appear
as a result of the change
- Test system boots and/or XFS kernel module
loads without any error or warning using
this newly-built code
- New code is run through "xfstests", and the
result shows no new or unexplainable test
- Developer proposes the change by submitting it
to the XFS mailing list for discussion and review.
Note that the file "Documentation/SubmittingPatches"
in the Linux kernel source tree covers much of this,
and in particular the Developer's Certificate of
Origin (DCO). A copy of that file can also be found
- A patch(1) file is created, encoding the change
using unified diff format. It is also preferable
to have the diff include the C function name with
each hunk if possible, and depending on how the
patch is generated you may be able to sort the
order of the files in the patch and use a canonical
"a/..." versus "b/..." naming scheme for the files.
The "git format-patch" and "quilt refresh" commands
are good tools for formatting patches for review.
- The patch file is sent to the XFS mailing list
- To: xfs@xxxxxxxxxxx
- Subject: [PATCH] xfs: <very short summary>
- Above the patch there should be a concise
but complete explanation for the change
(unless it is trivial enough that the
subject line alone does it well enough).
- There must be a signoff line:
Signed-off-by: I. Develop Code <idc@xxxxxxxx>
- Then comes the patch text
- People on the XFS mailing list will review the
- This is often done within a (non-weekend) day
or two, but occasionally may take a week or more.
- If a few weeks go by without any attention,
re-post the patch to the mailing list, indicating
that you are posting it again. This can just be
a polite "may I get a review" request in response
to your original posting.
- Reviewers will comment on the patch, possibly
requesting changes. All reviews and follow-up
discussion is normally copied to the entire
mailing list to ensure it is public and gets
- If a reviewer accepts the patch, a signoff is
supplied, for example:
Reviewed-by: Alex Elder <aelder@xxxxxxx>
Other lesser degrees of signoff are sometimes seen,
such as "Signed-off-by" or "Acked-by". These are
all connected to the DCO process documented as
- If the review comes back positive, the XFS maintainer
will pull the changes in, and in time it will get
published in an update to the XFS master branch.
- Developer may be requested to make changes during review
- In this case, the process above pretty much repeats,
using the previous code as a basis of the change.
- When posting the updated patch for review, a few
things are different:
- Subject: [PATCH, v2] xfs: <same very short summary>
(and similarly "v3", etc. for subsequent updates.)
- If someone has already indicated they approve
the patch (for example it's one of a series
in which other patches are getting updated),
include that person's signoff line in the
- Add a very short description of what changed
since the last time it was posted to the end
of the description.