Re: [PATCH 1/2] xfs_db: support computing btheight for all cursor types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05 May 2022 at 21:34, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
>
> Add the special magic btree type value 'all' to the btheight command so
> that we can display information about all known btree types at once.
>

Looks good.

Reviewed-by: Chandan Babu R <chandan.babu@xxxxxxxxxx>

> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
> ---
>  db/btheight.c     |   26 +++++++++++++++++++++++---
>  man/man8/xfs_db.8 |    3 +++
>  2 files changed, 26 insertions(+), 3 deletions(-)
>
>
> diff --git a/db/btheight.c b/db/btheight.c
> index 8aa17c89..e4cd4eda 100644
> --- a/db/btheight.c
> +++ b/db/btheight.c
> @@ -57,7 +57,7 @@ btheight_help(void)
>  "   -w min -- Show only the worst case scenario.\n"
>  "\n"
>  " Supported btree types:\n"
> -"   "
> +"   all "
>  ));
>  	for (i = 0, m = maps; i < ARRAY_SIZE(maps); i++, m++)
>  		printf("%s ", m->tag);
> @@ -107,7 +107,7 @@ calc_height(
>  
>  static int
>  construct_records_per_block(
> -	char		*tag,
> +	const char	*tag,
>  	int		blocksize,
>  	unsigned int	*records_per_block)
>  {
> @@ -235,7 +235,7 @@ _("%s: pointer size must be less than selected block size (%u bytes).\n"),
>  
>  static void
>  report(
> -	char			*tag,
> +	const char		*tag,
>  	unsigned int		report_what,
>  	unsigned long long	nr_records,
>  	unsigned int		blocksize)
> @@ -297,6 +297,19 @@ _("%s: worst case per %u-byte block: %u records (leaf) / %u keyptrs (node)\n"),
>  	}
>  }
>  
> +static void
> +report_all(
> +	unsigned int		report_what,
> +	unsigned long long	nr_records,
> +	unsigned int		blocksize)
> +{
> +	struct btmap		*m;
> +	int			i;
> +
> +	for (i = 0, m = maps; i < ARRAY_SIZE(maps); i++, m++)
> +		report(m->tag, report_what, nr_records, blocksize);
> +}
> +
>  static int
>  btheight_f(
>  	int		argc,
> @@ -366,6 +379,13 @@ _("The smallest block size this command will consider is 128 bytes.\n"));
>  		return 0;
>  	}
>  
> +	for (i = optind; i < argc; i++) {
> +		if (!strcmp(argv[i], "all")) {
> +			report_all(report_what, nr_records, blocksize);
> +			return 0;
> +		}
> +	}
> +
>  	for (i = optind; i < argc; i++)
>  		report(argv[i], report_what, nr_records, blocksize);
>  
> diff --git a/man/man8/xfs_db.8 b/man/man8/xfs_db.8
> index 58727495..55ac3487 100644
> --- a/man/man8/xfs_db.8
> +++ b/man/man8/xfs_db.8
> @@ -420,6 +420,9 @@ The supported btree types are:
>  .IR refcountbt ,
>  and
>  .IR rmapbt .
> +The magic value
> +.I all
> +can be used to walk through all btree types.
>  
>  Options are as follows:
>  .RS 1.0i


-- 
chandan



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux