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.
------------------------------------------------------------------------------

Reply via email to