mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-04-06 17:49:11 +03:00
Allow printing special vdev metaslab groups
Sometimes, we'd like to know info about the metaslab groups on special vdevs too. So let's make -MM do something useful. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Allan Jude <allan@klarasystems.com> Signed-off-by: Rich Ercolani <rincebrain@gmail.com> Closes #12750
This commit is contained in:
parent
34eef3e9a7
commit
c5ccbbdcf6
@ -1734,10 +1734,11 @@ print_vdev_metaslab_header(vdev_t *vd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dump_metaslab_groups(spa_t *spa)
|
dump_metaslab_groups(spa_t *spa, boolean_t show_special)
|
||||||
{
|
{
|
||||||
vdev_t *rvd = spa->spa_root_vdev;
|
vdev_t *rvd = spa->spa_root_vdev;
|
||||||
metaslab_class_t *mc = spa_normal_class(spa);
|
metaslab_class_t *mc = spa_normal_class(spa);
|
||||||
|
metaslab_class_t *smc = spa_special_class(spa);
|
||||||
uint64_t fragmentation;
|
uint64_t fragmentation;
|
||||||
|
|
||||||
metaslab_class_histogram_verify(mc);
|
metaslab_class_histogram_verify(mc);
|
||||||
@ -1746,7 +1747,8 @@ dump_metaslab_groups(spa_t *spa)
|
|||||||
vdev_t *tvd = rvd->vdev_child[c];
|
vdev_t *tvd = rvd->vdev_child[c];
|
||||||
metaslab_group_t *mg = tvd->vdev_mg;
|
metaslab_group_t *mg = tvd->vdev_mg;
|
||||||
|
|
||||||
if (mg == NULL || mg->mg_class != mc)
|
if (mg == NULL || (mg->mg_class != mc &&
|
||||||
|
(!show_special || mg->mg_class != smc)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
metaslab_group_histogram_verify(mg);
|
metaslab_group_histogram_verify(mg);
|
||||||
@ -7673,7 +7675,7 @@ dump_zpool(spa_t *spa)
|
|||||||
if (dump_opt['d'] > 2 || dump_opt['m'])
|
if (dump_opt['d'] > 2 || dump_opt['m'])
|
||||||
dump_metaslabs(spa);
|
dump_metaslabs(spa);
|
||||||
if (dump_opt['M'])
|
if (dump_opt['M'])
|
||||||
dump_metaslab_groups(spa);
|
dump_metaslab_groups(spa, dump_opt['M'] > 1);
|
||||||
if (dump_opt['d'] > 2 || dump_opt['m']) {
|
if (dump_opt['d'] > 2 || dump_opt['m']) {
|
||||||
dump_log_spacemaps(spa);
|
dump_log_spacemaps(spa);
|
||||||
dump_log_spacemap_obsolete_stats(spa);
|
dump_log_spacemap_obsolete_stats(spa);
|
||||||
|
@ -266,12 +266,10 @@ the percentage of free space in each space map.
|
|||||||
.It Fl mmmm
|
.It Fl mmmm
|
||||||
Display every spacemap record.
|
Display every spacemap record.
|
||||||
.It Fl M
|
.It Fl M
|
||||||
Display the offset, spacemap, and free space of each metaslab.
|
Display all "normal" vdev metaslab group information - per-vdev metaslab count, fragmentation,
|
||||||
|
and free space histogram, as well as overall pool fragmentation and histogram.
|
||||||
.It Fl MM
|
.It Fl MM
|
||||||
Also display information about the maximum contiguous free space and the
|
"Special" vdevs are added to -M's normal output.
|
||||||
percentage of free space in each space map.
|
|
||||||
.It Fl MMM
|
|
||||||
Display every spacemap record.
|
|
||||||
.It Fl O Ar dataset path
|
.It Fl O Ar dataset path
|
||||||
Look up the specified
|
Look up the specified
|
||||||
.Ar path
|
.Ar path
|
||||||
|
Loading…
Reference in New Issue
Block a user