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


Reply via email to