@@ -81,13 +81,26 @@ def print_indented(self,
8181 )
8282 print ("" .ljust (indent ), "-" * 60 )
8383
84+ prev = None
8485 for vdev in vdevs :
8586 level = 0
8687 pvd = vdev .vdev_parent
8788 while pvd :
8889 level += 2
8990 pvd = pvd .vdev_parent
9091
92+ if vdev .vdev_isl2cache and prev and not prev .vdev_isl2cache :
93+ print ("" .ljust (indent ), "-" .ljust (18 ), "-" .ljust (7 ),
94+ "-" .ljust (4 ), "" .ljust (0 ), "cache" )
95+ if vdev .vdev_islog and prev and not prev .vdev_islog :
96+ print ("" .ljust (indent ), "-" .ljust (18 ), "-" .ljust (7 ),
97+ "-" .ljust (4 ), "" .ljust (0 ), "logs" )
98+ if vdev .vdev_isspare and prev and not prev .vdev_isspare :
99+ print ("" .ljust (indent ), "-" .ljust (18 ), "-" .ljust (7 ),
100+ "-" .ljust (4 ), "" .ljust (0 ), "spares" )
101+ if vdev .vdev_isl2cache or vdev .vdev_isspare :
102+ level = 2
103+
91104 if int (vdev .vdev_path ) != 0 :
92105 print (
93106 "" .ljust (indent ),
@@ -111,7 +124,7 @@ def print_indented(self,
111124 if not sdb .is_null (vdev .vdev_mg ):
112125 ZFSHistogram .print_histogram (vdev .vdev_mg .mg_histogram , 0 ,
113126 indent + 5 )
114-
127+ prev = vdev
115128 if self .args .metaslab :
116129 metaslabs = sdb .execute_pipeline ([vdev ], [Metaslab ()])
117130 Metaslab (self .arg_list ).print_indented (metaslabs , indent + 5 )
@@ -134,6 +147,11 @@ def from_spa(self, spa: drgn.Object) -> Iterable[drgn.Object]:
134147 else :
135148 yield from self .from_vdev (spa .spa_root_vdev )
136149
150+ for j in range (spa .spa_l2cache .sav_count ):
151+ yield from self .from_vdev (spa .spa_l2cache .sav_vdevs [j ])
152+ for j in range (spa .spa_spares .sav_count ):
153+ yield from self .from_vdev (spa .spa_spares .sav_vdevs [j ])
154+
137155 @sdb .InputHandler ("vdev_t*" )
138156 def from_vdev (self , vdev : drgn .Object ) -> Iterable [drgn .Object ]:
139157 if self .args .vdev_ids :
0 commit comments