linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 0/5] mkfs: Configuration file defined options
Date: Wed, 14 Oct 2020 22:13:00 -0700	[thread overview]
Message-ID: <20201015051300.GM9832@magnolia> (raw)
In-Reply-To: <20201015032925.1574739-1-david@fromorbit.com>

On Thu, Oct 15, 2020 at 02:29:20PM +1100, Dave Chinner wrote:
> Version 2:
> 
> - "-c file=xxx" > "-c options=xxx"
> - split out constification into new patch
> - removed debug output
> - fixed some comments
> - added man page stuff
> 
> Hi Folks,
> 
> Because needing config files for mkfs came up yet again in
> discussion, here is a simple implementation of INI format config
> files. These config files behave identically to options specified on
> the command line - the do not change defaults, they do not override
> CLI options, they are not overridden by cli options.
> 
> Example:
> 
> $ echo -e "[metadata]\ncrc = 0" > foo
> $ mkfs/mkfs.xfs -N -c options=foo -d file=1,size=100m blah
> Parameters parsed from config file foo successfully
> meta-data=blah                   isize=256    agcount=4, agsize=6400 blks
>          =                       sectsz=512   attr=2, projid32bit=1
>          =                       crc=0        finobt=0, sparse=0, rmapbt=0
>          =                       reflink=0
> data     =                       bsize=4096   blocks=25600, imaxpct=25
>          =                       sunit=0      swidth=0 blks
> naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
> log      =internal log           bsize=4096   blocks=853, version=2
>          =                       sectsz=512   sunit=0 blks, lazy-count=1
> realtime =none                   extsz=4096   blocks=0, rtextents=0
> $
> 
> And there's a V4 filesystem as specified by the option defined
> in the config file. If we do:
> 
> $ mkfs/mkfs.xfs -N -c options=foo -m crc=1 -d file=1,size=100m blah
> -m crc option respecified
> Usage: mkfs.xfs
> .....
> $
> 
> You can see it errors out because the CRC option was specified in
> both the config file and on the CLI.
> 
> There's lots of stuff we can do to make the conflict and respec
> error messages better, but that doesn't change the basic
> functionality of config file based mkfs options. To allow for future
> changes to the way we want to apply config files, I created a
> full option subtype for config files. That means we can add another
> option to say "apply config file as default values rather than as
> options" if we decide that is functionality that we want to support.
> 
> However, policy decisions like that are completely separate to the
> mechanism, so these patches don't try to address desires to ship
> "tuned" configs, system wide option files, shipping distro specific
> defaults in config files, etc. This is purely a mechanism to allow
> users to specify options via files instead of on the CLI.  No more,
> no less.
> 
> This has only been given a basic smoke testing right now (see above!
> :).  I need to get Darrick's tests from the previous round of config

This was in the v1 series; have you gotten Darrick's fstests to do more
substantial testing? ;)

--D

> file bikeshedding working in my test environment to do more
> substantial testing of this....
> 
> Cheers,
> 
> Dave.
> 
> 
> Dave Chinner (5):
>   build: add support for libinih for mkfs
>   mkfs: add initial ini format config file parsing support
>   mkfs: constify various strings
>   mkfs: hook up suboption parsing to ini files
>   mkfs: document config files in mkfs.xfs(8)
> 
>  configure.ac         |   3 +
>  doc/INSTALL          |   5 +
>  include/builddefs.in |   1 +
>  include/linux.h      |   2 +-
>  m4/package_inih.m4   |  20 ++++
>  man/man8/mkfs.xfs.8  | 113 +++++++++++++++++++--
>  mkfs/Makefile        |   2 +-
>  mkfs/xfs_mkfs.c      | 228 ++++++++++++++++++++++++++++++++++++++-----
>  8 files changed, 340 insertions(+), 34 deletions(-)
>  create mode 100644 m4/package_inih.m4
> 
> -- 
> 2.28.0
> 

  parent reply	other threads:[~2020-10-15  5:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-15  3:29 [PATCH 0/5] mkfs: Configuration file defined options Dave Chinner
2020-10-15  3:29 ` [PATCH 1/5] build: add support for libinih for mkfs Dave Chinner
2020-10-15  5:40   ` Darrick J. Wong
2020-10-15  3:29 ` [PATCH 2/5] mkfs: add initial ini format config file parsing support Dave Chinner
2020-10-15  5:46   ` Darrick J. Wong
2020-10-15  6:09     ` Dave Chinner
2020-10-15  3:29 ` [PATCH 3/5] mkfs: constify various strings Dave Chinner
2020-10-15  5:31   ` Darrick J. Wong
2020-10-15  3:29 ` [PATCH 4/5] mkfs: hook up suboption parsing to ini files Dave Chinner
2020-10-15  5:24   ` Darrick J. Wong
2020-10-15  3:29 ` [PATCH 5/5] mkfs: document config files in mkfs.xfs(8) Dave Chinner
2020-10-15  5:36   ` Darrick J. Wong
2020-10-15  5:13 ` Darrick J. Wong [this message]
2020-10-15  5:32   ` [PATCH 0/5] mkfs: Configuration file defined options Dave Chinner
2020-10-15  5:39     ` Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201015051300.GM9832@magnolia \
    --to=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).