On Solaris 10 u3 (11/06) I can execute the following: bash-3.00# mdb -k Loading modules: [ unix krtld genunix specfs dtrace ufs sd pcipsy ip sctp usba nca md zfs random ipc nfs crypto cpc fctl fcip logindmux ptm sppp ]> arc::print{ anon = ARC_anon mru = ARC_mru mru_ghost = ARC_mru_ghost mfu = ARC_mfu mfu_ghost = ARC_mfu_ghost size = 0x6b800 p = 0x3f83f80 c = 0x7f07f00 c_min = 0x7f07f00 c_max = 0xbe8be800 hits = 0x30291 misses = 0x4f deleted = 0xe skipped = 0 hash_elements = 0x3a hash_elements_max = 0x3a hash_collisions = 0x3 hash_chains = 0x1 hash_chain_max = 0x1 no_grow = 0 } However, when I execute the same command on Solaris 10 u4 (8/07) I receive the following error: bash-3.00# mdb -k Loading modules: [ unix krtld genunix specfs dtrace ufs ssd fcp fctl qlc pcisch md ip hook neti sctp arp usba nca lofs logindmux ptm cpc fcip sppp random sd crypto zfs ipc nfs ]> arc::printmdb: failed to dereference symbol: unknown symbol name In addition, u3 doesn''t recognize "::arc" where u4 does. u3 displays memory locations with "arc::print -a" where "::arc -a" doesn''t work for u4. I posted this into the zfs discussion forum, because this limited u4 functionality prevents you from dynamically changing the ARC in ZFS by trying the ZFS Tuning instructions. Spencer This message posted from opensolaris.org
max at bruningsystems.com
2008-Feb-07 23:08 UTC
[zfs-discuss] Did MDB Functionality Change?
Hi Spencer, spencer wrote:> On Solaris 10 u3 (11/06) I can execute the following: > > bash-3.00# mdb -k > Loading modules: [ unix krtld genunix specfs dtrace ufs sd pcipsy ip sctp usba nca md zfs random ipc nfs crypto cpc fctl fcip logindmux ptm sppp ] > >> arc::print >> > { > anon = ARC_anon > mru = ARC_mru > mru_ghost = ARC_mru_ghost > mfu = ARC_mfu > mfu_ghost = ARC_mfu_ghost > size = 0x6b800 > p = 0x3f83f80 > c = 0x7f07f00 > c_min = 0x7f07f00 > c_max = 0xbe8be800 > hits = 0x30291 > misses = 0x4f > deleted = 0xe > skipped = 0 > hash_elements = 0x3a > hash_elements_max = 0x3a > hash_collisions = 0x3 > hash_chains = 0x1 > hash_chain_max = 0x1 > no_grow = 0 > } > > However, when I execute the same command on Solaris 10 u4 (8/07) I receive the following error: > > bash-3.00# mdb -k > Loading modules: [ unix krtld genunix specfs dtrace ufs ssd fcp fctl qlc pcisch md ip hook neti sctp arp usba nca lofs logindmux ptm cpc fcip sppp random sd crypto zfs ipc nfs ] > >> arc::print >> > mdb: failed to dereference symbol: unknown symbol name >mdb functionality did not change. There is no longer a global variable named "arc". The "::arc" command gets its data from a few different variables. You can look at usr/src/cmd/mdb/common/modules/zfs/zfs.c and look at the arc_print function to see what it does. Or, you can use ::nm !grep arc | grep OBJT to see what arc related variables exist and use one of those with ::print. For instance, arc_stats::print. max> In addition, u3 doesn''t recognize "::arc" where u4 does. > u3 displays memory locations with "arc::print -a" where "::arc -a" doesn''t work for u4. > > I posted this into the zfs discussion forum, because this limited u4 functionality prevents you from dynamically changing the ARC in ZFS by trying the ZFS Tuning instructions. > > > Spencer > > > This message posted from opensolaris.org > _______________________________________________ > zfs-discuss mailing list > zfs-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss > >