@@ -316,7 +316,7 @@ static void timeval_subtract(struct timeval *result, struct timeval *x,
316
316
}
317
317
318
318
static int calc_root_size (struct btrfs_root * tree_root , struct btrfs_key * key ,
319
- int find_inline )
319
+ int find_inline , unsigned int unit_mode )
320
320
{
321
321
struct btrfs_root * root ;
322
322
struct btrfs_path path = { 0 };
@@ -385,26 +385,25 @@ static int calc_root_size(struct btrfs_root *tree_root, struct btrfs_key *key,
385
385
pr_verbose (LOG_DEFAULT , "\tTotal read time: %d s %d us\n" , (int )diff .tv_sec ,
386
386
(int )diff .tv_usec );
387
387
} else {
388
- pr_verbose (LOG_DEFAULT , "\tTotal size: %s\n" , pretty_size (stat .total_bytes ));
389
- pr_verbose (LOG_DEFAULT , "\t\tInline data: %s\n" , pretty_size (stat .total_inline ));
388
+ pr_verbose (LOG_DEFAULT , "\tTotal size: %s\n" , pretty_size_mode (stat .total_bytes , unit_mode ));
389
+ pr_verbose (LOG_DEFAULT , "\t\tInline data: %s\n" , pretty_size_mode (stat .total_inline , unit_mode ));
390
390
pr_verbose (LOG_DEFAULT , "\tTotal seeks: %llu\n" , stat .total_seeks );
391
391
pr_verbose (LOG_DEFAULT , "\t\tForward seeks: %llu\n" , stat .forward_seeks );
392
392
pr_verbose (LOG_DEFAULT , "\t\tBackward seeks: %llu\n" , stat .backward_seeks );
393
393
pr_verbose (LOG_DEFAULT , "\t\tAvg seek len: %s\n" , stat .total_seeks ?
394
- pretty_size (stat .total_seek_len / stat .total_seeks ) :
395
- pretty_size ( 0 ));
394
+ pretty_size_mode (stat .total_seek_len / stat .total_seeks , unit_mode ) :
395
+ pretty_size_mode ( 0 , unit_mode ));
396
396
print_seek_histogram (& stat );
397
397
pr_verbose (LOG_DEFAULT , "\tTotal clusters: %llu\n" , stat .total_clusters );
398
398
pr_verbose (LOG_DEFAULT , "\t\tAvg cluster size: %s\n" ,
399
- pretty_size ((stat .total_cluster_size /
400
- stat .total_clusters )));
399
+ pretty_size_mode ((stat .total_cluster_size /
400
+ stat .total_clusters ), unit_mode ));
401
401
pr_verbose (LOG_DEFAULT , "\t\tMin cluster size: %s\n" ,
402
- pretty_size (stat .min_cluster_size ));
402
+ pretty_size_mode (stat .min_cluster_size , unit_mode ));
403
403
pr_verbose (LOG_DEFAULT , "\t\tMax cluster size: %s\n" ,
404
- pretty_size (stat .max_cluster_size ));
404
+ pretty_size_mode (stat .max_cluster_size , unit_mode ));
405
405
pr_verbose (LOG_DEFAULT , "\tTotal disk spread: %s\n" ,
406
- pretty_size (stat .highest_bytenr -
407
- stat .lowest_bytenr ));
406
+ pretty_size_mode (stat .highest_bytenr - stat .lowest_bytenr , unit_mode ));
408
407
pr_verbose (LOG_DEFAULT , "\tTotal read time: %d s %d us\n" , (int )diff .tv_sec ,
409
408
(int )diff .tv_usec );
410
409
}
@@ -442,6 +441,7 @@ static const char * const cmd_inspect_tree_stats_usage[] = {
442
441
"Print various stats for trees" ,
443
442
"" ,
444
443
OPTLINE ("-b" , "raw numbers in bytes" ),
444
+ HELPINFO_UNITS_LONG ,
445
445
OPTLINE ("-t <rootid>" , "print only tree with the given rootid" ),
446
446
NULL
447
447
};
@@ -451,10 +451,13 @@ static int cmd_inspect_tree_stats(const struct cmd_struct *cmd,
451
451
{
452
452
struct btrfs_key key = { .type = BTRFS_ROOT_ITEM_KEY };
453
453
struct btrfs_root * root ;
454
+ unsigned int unit_mode ;
454
455
int opt ;
455
456
int ret = 0 ;
456
457
u64 tree_id = 0 ;
457
458
459
+ unit_mode = get_unit_mode_from_arg (& argc , argv , 0 );
460
+
458
461
optind = 0 ;
459
462
while ((opt = getopt (argc , argv , "vbt:" )) != -1 ) {
460
463
switch (opt ) {
@@ -499,32 +502,32 @@ static int cmd_inspect_tree_stats(const struct cmd_struct *cmd,
499
502
pr_verbose (LOG_DEFAULT , "Calculating size of tree (%llu)\n" , tree_id );
500
503
key .objectid = tree_id ;
501
504
key .offset = (u64 )- 1 ;
502
- ret = calc_root_size (root , & key , 1 );
505
+ ret = calc_root_size (root , & key , 1 , unit_mode );
503
506
goto out ;
504
507
}
505
508
506
509
pr_verbose (LOG_DEFAULT , "Calculating size of root tree\n" );
507
510
key .objectid = BTRFS_ROOT_TREE_OBJECTID ;
508
- ret = calc_root_size (root , & key , 0 );
511
+ ret = calc_root_size (root , & key , 0 , unit_mode );
509
512
if (ret )
510
513
goto out ;
511
514
512
515
pr_verbose (LOG_DEFAULT , "Calculating size of extent tree\n" );
513
516
key .objectid = BTRFS_EXTENT_TREE_OBJECTID ;
514
- ret = calc_root_size (root , & key , 0 );
517
+ ret = calc_root_size (root , & key , 0 , unit_mode );
515
518
if (ret )
516
519
goto out ;
517
520
518
521
pr_verbose (LOG_DEFAULT , "Calculating size of csum tree\n" );
519
522
key .objectid = BTRFS_CSUM_TREE_OBJECTID ;
520
- ret = calc_root_size (root , & key , 0 );
523
+ ret = calc_root_size (root , & key , 0 , unit_mode );
521
524
if (ret )
522
525
goto out ;
523
526
524
527
key .objectid = BTRFS_FS_TREE_OBJECTID ;
525
528
key .offset = (u64 )- 1 ;
526
529
pr_verbose (LOG_DEFAULT , "Calculating size of fs tree\n" );
527
- ret = calc_root_size (root , & key , 1 );
530
+ ret = calc_root_size (root , & key , 1 , unit_mode );
528
531
if (ret )
529
532
goto out ;
530
533
out :
0 commit comments