If all you're interested in is the ARC, then why not "::arc" ? FrankH.
On Wed, 14 May 2008, Surya Prakki wrote: > To my understanding, zfs makes use of kmem for its arc [and ofcourse for > zfs nodes] - this info > you can extract using the standard '::kmastat'. > HTH. > -surya > > > Konstantin Gremliza wrote: >> Hi, >> >> I like the the ::memstat dcmd, becauss it gives a brief system >> overview of where memory has gone. It does not show arc cache or >> shared memory information. >> >> Would it be possible to add zfs arc cache size and maybe shared memory >> information to memstat output. >> Current code does: >> >> http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c: >> >> >> #*define* MS_PP_ISKAS >> <http://cvs.opensolaris.org/source/s?refs=MS_PP_ISKAS>(pp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>, >> stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>) >> \ >> 232 (((pp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>)->p_vnode >> <http://cvs.opensolaris.org/source/s?defs=p_vnode> == (stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>)->ms_kvp >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_kvp>) >> || \ >> 233 * (((stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>)->ms_zvp >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_zvp> >> != NULL <http://cvs.opensolaris.org/source/s?defs=NULL>) && ((pp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>)->p_vnode >> <http://cvs.opensolaris.org/source/s?defs=p_vnode> == (stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>)->ms_zvp >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_zvp>))*) >> >> Isn`t zvp the zfs arc cache? >> Could we add a new zfs stat to the memstat_t? >> >> >> >> 234 >> 235 /* >> 236 * Summarize pages by type; called from page walker. >> 237 */ >> 238 >> 239 /* ARGSUSED */ >> 240 *static* *int* >> 241 memstat_callback >> <http://cvs.opensolaris.org/source/s?refs=memstat_callback>(page_t >> <http://cvs.opensolaris.org/source/s?defs=page_t> *page, page_t >> <http://cvs.opensolaris.org/source/s?defs=page_t> *pp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>, >> memstat_t >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#memstat_t> >> *stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>) >> 242 { >> 243 *struct* vnode <http://cvs.opensolaris.org/source/s?defs=vnode> >> vn <http://cvs.opensolaris.org/source/s?refs=vn>, *vp >> <http://cvs.opensolaris.org/source/s?refs=vp>; >> 244 uintptr_t <http://cvs.opensolaris.org/source/s?defs=uintptr_t> >> ptr <http://cvs.opensolaris.org/source/s?refs=ptr>; >> 245 >> 246 /* read page's vnode pointer */ >> 247 *if* ((ptr = (uintptr_t >> <http://cvs.opensolaris.org/source/s?defs=uintptr_t>)(pp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>->p_vnode >> <http://cvs.opensolaris.org/source/s?defs=p_vnode>)) != NULL >> <http://cvs.opensolaris.org/source/s?defs=NULL>) { >> 248 *if* (mdb_vread >> <http://cvs.opensolaris.org/source/s?defs=mdb_vread>(&vn, *sizeof* (vnode_t >> <http://cvs.opensolaris.org/source/s?defs=vnode_t>), ptr) == -1) { >> 249 mdb_warn >> <http://cvs.opensolaris.org/source/s?defs=mdb_warn>("unable to read vnode_t >> at %#lx", >> 250 ptr); >> 251 *return* (WALK_ERR >> <http://cvs.opensolaris.org/source/s?defs=WALK_ERR>); >> 252 } >> 253 vp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#vp> >> = &vn; >> 254 } *else* >> 255 vp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#vp> >> = NULL <http://cvs.opensolaris.org/source/s?defs=NULL>; >> 256 >> 257 *if* (PP_ISFREE >> <http://cvs.opensolaris.org/source/s?defs=PP_ISFREE>(pp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>)) >> 258 stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>->ms_cachelist >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_cachelist>++; >> 259 *else* *if* (vp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#vp> >> && IS_SWAPFSVP <http://cvs.opensolaris.org/source/s?defs=IS_SWAPFSVP>(vp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#vp>)) >> 260 stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>->ms_anon >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_anon>++; >> 261 *else* *if* (MS_PP_ISKAS >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#MS_PP_ISKAS>(pp >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#pp>, >> stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>)) >> 262 stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>->ms_kmem >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_kmem>++; >> 263 *else* *if* (vp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#vp> >> && (((vp >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#vp>)->v_flag >> <http://cvs.opensolaris.org/source/s?defs=v_flag> & VVMEXEC >> <http://cvs.opensolaris.org/source/s?defs=VVMEXEC>)) != 0) >> 264 stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>->ms_exec >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_exec>++; >> 265 *else* >> 266 stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>->ms_vnode >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_vnode>++; >> 267 >> 268 stats >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#stats>->ms_total >> >> <http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/modules/genunix/memory.c#ms_total>++; >> 269 >> 270 *return* (WALK_NEXT >> <http://cvs.opensolaris.org/source/s?defs=WALK_NEXT>); >> 271 } >> >> Regards, Konstantin >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> mdb-discuss mailing list >> mdb-discuss at opensolaris.org >> > > > -- > http://blogs.sun.com/sprakki > > _______________________________________________ > mdb-discuss mailing list > mdb-discuss at opensolaris.org > ------------------------------------------------------------------------------ No good can come from selling your freedom, not for all the gold in the world, for the value of this heavenly gift far exceeds that of any fortune on earth. ------------------------------------------------------------------------------