From: Anand Jain <anand.jain@oracle.com>
To: David Sterba <dsterba@suse.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH v2 00/16] btrfs-progs: global verbose and quiet option
Date: Tue, 14 Jan 2020 14:14:24 +0800 [thread overview]
Message-ID: <8a2bac99-5c07-2aa9-fe3b-e09f2ad16213@oracle.com> (raw)
In-Reply-To: <1574678357-22222-1-git-send-email-anand.jain@oracle.com>
David,
I wonder if could this be integrated?
Thanks, Anand
On 25/11/19 6:39 PM, Anand Jain wrote:
> v1.1->v2:
> Mainly:
> . Splits define HELPINFO_INSERT_GLOBALS from --format option and
> . Rename HELPINFO_GLOBAL_OPTIONS_HEADER to HELPINFO_INSERT_GLOBALS
> . Create and use helper bconf_be_verbose() and bconf_be_quiet().
> . Use gobal bconf.verbose where possible and drop local verbose argument passing.
> . In some patches the bconf.verbose initialization wasn't necessary so drop it.
> Some small fixes as mentioned in the individual patch.
>
> v1->v1.1:
> . Fix typo in HELPINFO_INSERT_QUIET.
> . Remove #include <stdbool.h> where its no more required.
> (was needed when %bconf.verbose was declared as bool).
> . Use pr_verbose(-1,..) instead of all conditions printf()
> . Use pr_verbose(1,..) instead of pr_verbose(true,..)
>
> verbosity sample code as in v1.1
>
> global init
> -----------
> bconf.verbose = -1; //-1:default, 0:quiet, >1:verbose
>
> at global options
> -----------------
> case 'v':
> bconf.verbose < 0 ? bconf.verbose = 1 : bconf.verbose++;
> break;
> case 'q':
> bconf.verbose = 0;
> break;
>
> sub-command init
> ----------------
> For send/receive only (special cases, default verbosity is 1):
>
> if (bconf.verbose < 0)
> bconf.verbose = 1;
> else if (bconf.verbose > 0)
> bconf.verbose++;
>
> Non-send/receive:
> default verbosity is 0 (ref: cmds/rescue.c)
> if (bconf.verbose < 0)
> bconf.verbose = 0;
>
> at sub-command options
> ----------------------
> case 'v':
> bconf.verbose++;
> break;
> case 'q':
> bconf.verbose = 0;
> break;
>
>
> pr_verbose()
> ------------
> /*
> * level -1: prints message unless bconf.verbose == 0;
> * level 0: quiet
> * level >0: prints message only if <= bconf.verbose
> */
> void pr_verbose(int level, const char *fmt, ...)
> {
> va_list args;
>
> if (level == 0 || bconf.verbose == 0)
> return;
>
> if (level > bconf.verbose)
> return;
>
> va_start(args, fmt);
> vfprintf(stdout, fmt, args);
> va_end(args);
> }
>
>
> RFC->v1:
> .. Adds --quiet option to the global btrfs(8) command.
> .. Used global struct bconf.
> .. Refactored pr_verbose(), accepts level (int) as argument, so now the
> sub-command can specify the verbose level at which the particular
> verbose messages has to be printed.
> .. Added global help defines.
>
> Kindly note the following:-
>
> 1.
> There are certain sub-commands which does not have any verbose output
> or quiet output. However if the global options were used with those
> sub-commands then the command shall not report any usage error. Or
> my question is should it error out.? For example:
> (with the patch) btrfs --verbose device ready /dev/sdb
> actually there isn't any verbose output but we won't error out.
> Similarly,
> (without the patch) btrfs send -vvvvv will not show usage error
> as well.
> So I believe this is fine. IMO.
>
> 2.
> There is slight difference in output when global options are used
> as compared to the output using the same sequence of options at the
> sub-command level. For example:
>
> btrfs send -v -q -v is-equal-to btrfs send
> But same sequence in the global option
> btrfs -v -q -v send is-not-equal-to btrfs send
> but is-equal-to btrfs -v send or btrfs send -v.
> (similarly applies to receive as well).
>
> which IMO is fair expectation as -v is ending last.
>
>
> RFC:
> This patch set brings --verbose option to the top level btrfs command,
> such as 'btrfs --verbose'. With this we don't have to add or remember
> verbose option at the sub-commands level.
>
> As there are already verbose options to 11 sub-commands as listed
> below [1][2]. So the top level --verbose option here takes care to transpire
> verbose request from the top level to the sub-command level for 9 (not 11)
> sub-commands as in [1] as of now.
>
> This patch is RFC still for the following two reasons (comments appreciated).
>
> 1.
> The sub-commands as in [2] uses multi-level compile time verbose option,
> such as %g_verbose = 0 (quite), %g_verbose = 1 (default), %g_verbose > 1
> (real-verbose). And verbose at default is also part the .out files in
> fstests. So it needs further discussions on how to handle the multi-
> level verbose option using the global verbose option, and so sub-
> commands in [2] are untouched.
>
> 2.
> These patch has been unit-tested individually.
> These patches does not alter the verbose output.
> But it fixes the indentation in the command's help output, which may be
> used in fstests and btrfs-progs/tests and their verification is pending
> still, which I am planning to do it before v1.
>
> [1]
> btrfs subvolume delete --help
> -v|--verbose verbose output of operations
> btrfs filesystem defragment --help
> -v be verbose
> btrfs balance start --help
> -v|--verbose be verbose
> btrfs balance status --help
> -v|--verbose be verbose
> btrfs rescue chunk-recover --help
> -v Verbose mode
> btrfs rescue super-recover --help
> -v Verbose mode
> btrfs restore --help
> -v|--verbose verbose
> btrfs inspect-internal inode-resolve --help
> -v verbose mode
> btrfs inspect-internal logical-resolve --help
> -v verbose mode
>
> [2]
> btrfs send --help
> -v|--verbose enable verbose output to stderr, each occurrence of
> btrfs receive --help
> -v increase verbosity about performed action
>
>
>
> Anand Jain (16):
> btrfs-progs: split global help HELPINFO_INSERT_GLOBALS
> btrfs-progs: add global verbose and quiet options and helper functions
> btrfs-progs: send: use global verbose and quiet options
> btrfs-progs: receive: use global verbose and quiet options
> btrfs-progs: subvolume delete: use global verbose option
> btrfs-progs: filesystem defragment: use global verbose option
> btrfs-progs: balance start: use global verbose option
> btrfs-progs: balance status: use global verbose option
> btrfs-progs: rescue chunk-recover: use global verbose option
> btrfs-progs: rescue super-recover: use global verbose option
> btrfs-progs: restore: use global verbose option
> btrfs-progs: inspect-internal inode-resolve: use global verbose
> btrfs-progs: inspect-internal logical-resolve: use global verbose
> option
> btrfs-progs: refactor btrfs_scan_devices() to accept verbose argument
> btrfs-progs: device scan: add verbose option
> btrfs-progs: device scan: add quiet option
>
> btrfs.c | 20 ++++++++++--
> cmds/balance.c | 14 ++++----
> cmds/device.c | 7 ++--
> cmds/filesystem.c | 14 ++++----
> cmds/inspect.c | 41 +++++++++++------------
> cmds/receive.c | 80 +++++++++++++++++++++++++--------------------
> cmds/rescue-chunk-recover.c | 9 +++--
> cmds/rescue-super-recover.c | 7 ++--
> cmds/rescue.c | 18 ++++++----
> cmds/rescue.h | 4 +--
> cmds/restore.c | 53 +++++++++++++-----------------
> cmds/send.c | 33 ++++++++++++-------
> cmds/subvolume.c | 28 ++++++++--------
> common/device-scan.c | 3 +-
> common/device-scan.h | 2 +-
> common/help.c | 4 +--
> common/help.h | 9 ++++-
> common/messages.c | 25 ++++++++++++++
> common/messages.h | 3 ++
> common/utils.c | 16 ++++++++-
> common/utils.h | 11 +++++++
> disk-io.c | 2 +-
> 22 files changed, 245 insertions(+), 158 deletions(-)
>
next prev parent reply other threads:[~2020-01-14 6:14 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-25 10:39 [PATCH v2 00/16] btrfs-progs: global verbose and quiet option Anand Jain
2019-11-25 10:39 ` [PATCH 01/16] btrfs-progs: split global help HELPINFO_INSERT_GLOBALS Anand Jain
2019-11-25 10:39 ` [PATCH v2 02/16] btrfs-progs: add global verbose and quiet options and helper functions Anand Jain
2020-06-12 10:56 ` [PATCH v3 " Anand Jain
2020-06-12 15:39 ` David Sterba
2020-06-12 22:48 ` Anand Jain
2020-06-23 16:44 ` David Sterba
2020-06-29 15:36 ` David Sterba
2019-11-25 10:39 ` [PATCH v2 03/16] btrfs-progs: send: use global verbose and quiet options Anand Jain
2020-06-12 10:58 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 04/16] btrfs-progs: receive: " Anand Jain
2020-06-12 11:24 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 05/16] btrfs-progs: subvolume delete: use global verbose option Anand Jain
2020-06-12 11:24 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 06/16] btrfs-progs: filesystem defragment: " Anand Jain
2020-06-08 6:31 ` Anand Jain
2020-06-11 16:56 ` [PATCH v3 " Anand Jain
2020-06-12 11:25 ` [PATCH v4 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 07/16] btrfs-progs: balance start: " Anand Jain
2020-06-12 11:25 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 08/16] btrfs-progs: balance status: " Anand Jain
2020-06-12 11:25 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 09/16] btrfs-progs: rescue chunk-recover: " Anand Jain
2020-06-12 11:25 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 10/16] btrfs-progs: rescue super-recover: " Anand Jain
2020-06-12 11:25 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 11/16] btrfs-progs: restore: " Anand Jain
2020-06-12 11:26 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 12/16] btrfs-progs: inspect-internal inode-resolve: use global verbose Anand Jain
2020-06-12 11:26 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH v2 13/16] btrfs-progs: inspect-internal logical-resolve: use global verbose option Anand Jain
2020-06-12 11:26 ` [PATCH v3 " Anand Jain
2019-11-25 10:39 ` [PATCH 14/16] btrfs-progs: refactor btrfs_scan_devices() to accept verbose argument Anand Jain
2019-11-25 10:39 ` [PATCH v2 15/16] btrfs-progs: device scan: add verbose option Anand Jain
2019-11-25 10:39 ` [PATCH 16/16] btrfs-progs: device scan: add quiet option Anand Jain
2019-12-20 5:36 ` [PATCH v2 00/16] btrfs-progs: global verbose and " Anand Jain
2020-01-14 6:14 ` Anand Jain [this message]
2020-01-14 11:40 ` David Sterba
2020-03-28 5:45 ` Anand Jain
2020-05-20 10:01 ` Anand Jain
2020-06-05 9:24 ` David Sterba
2020-06-05 10:12 ` Anand Jain
2020-06-10 10:17 ` David Sterba
2020-06-11 18:13 ` Anand Jain
2020-06-11 16:36 ` [PATCH v3 02/16] btrfs-progs: add global verbose and quiet options and helper functions Anand Jain
2020-06-11 16:39 ` [PATCH v3 11/16] btrfs-progs: restore: use global verbose option Anand Jain
2020-06-11 16:41 ` [PATCH v2 16/16] btrfs-progs: device scan: add quiet option Anand Jain
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=8a2bac99-5c07-2aa9-fe3b-e09f2ad16213@oracle.com \
--to=anand.jain@oracle.com \
--cc=dsterba@suse.com \
--cc=linux-btrfs@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.