Annotation of Net2/sys/vmmeter.h, revision 1.1.1.1

1.1       root        1: /*-
                      2:  * Copyright (c) 1982, 1986 The Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms, with or without
                      6:  * modification, are permitted provided that the following conditions
                      7:  * are met:
                      8:  * 1. Redistributions of source code must retain the above copyright
                      9:  *    notice, this list of conditions and the following disclaimer.
                     10:  * 2. Redistributions in binary form must reproduce the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer in the
                     12:  *    documentation and/or other materials provided with the distribution.
                     13:  * 3. All advertising materials mentioning features or use of this software
                     14:  *    must display the following acknowledgement:
                     15:  *     This product includes software developed by the University of
                     16:  *     California, Berkeley and its contributors.
                     17:  * 4. Neither the name of the University nor the names of its contributors
                     18:  *    may be used to endorse or promote products derived from this software
                     19:  *    without specific prior written permission.
                     20:  *
                     21:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     23:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     24:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     25:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     26:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     27:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     28:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     29:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     30:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     31:  * SUCH DAMAGE.
                     32:  *
                     33:  *     @(#)vmmeter.h   7.3 (Berkeley) 5/5/91
                     34:  */
                     35: 
                     36: /*
                     37:  * Virtual memory related instrumentation
                     38:  */
                     39: struct vmmeter
                     40: {
                     41: #define        v_first v_swtch
                     42:        unsigned v_swtch;       /* context switches */
                     43:        unsigned v_trap;        /* calls to trap */
                     44:        unsigned v_syscall;     /* calls to syscall() */
                     45:        unsigned v_intr;        /* device interrupts */
                     46:        unsigned v_soft;        /* software interrupts */
                     47:        unsigned v_pdma;        /* pseudo-dma interrupts */
                     48:        unsigned v_pswpin;      /* pages swapped in */
                     49:        unsigned v_pswpout;     /* pages swapped out */
                     50:        unsigned v_pgin;        /* pageins */
                     51:        unsigned v_pgout;       /* pageouts */
                     52:        unsigned v_pgpgin;      /* pages paged in */
                     53:        unsigned v_pgpgout;     /* pages paged out */
                     54:        unsigned v_intrans;     /* intransit blocking page faults */
                     55:        unsigned v_pgrec;       /* total page reclaims */
                     56:        unsigned v_xsfrec;      /* found in free list rather than on swapdev */
                     57:        unsigned v_xifrec;      /* found in free list rather than in filsys */
                     58:        unsigned v_exfod;       /* pages filled on demand from executables */
                     59:        unsigned v_zfod;        /* pages zero filled on demand */
                     60:        unsigned v_vrfod;       /* fills of pages mapped by vread() */
                     61:        unsigned v_nexfod;      /* number of exfod's created */
                     62:        unsigned v_nzfod;       /* number of zfod's created */
                     63:        unsigned v_nvrfod;      /* number of vrfod's created */
                     64:        unsigned v_pgfrec;      /* page reclaims from free list */
                     65:        unsigned v_faults;      /* total faults taken */
                     66:        unsigned v_scan;        /* scans in page out daemon */
                     67:        unsigned v_rev;         /* revolutions of the hand */
                     68:        unsigned v_seqfree;     /* pages taken from sequential programs */
                     69:        unsigned v_dfree;       /* pages freed by daemon */
                     70:        unsigned v_fastpgrec;   /* fast reclaims in locore */
                     71: #ifdef tahoe
                     72:        unsigned v_fpe;         /* floating point emulation traps */
                     73:        unsigned v_align;       /* alignment emulation traps */
                     74: #endif
                     75: #define        v_last v_fastpgrec
                     76:        unsigned v_swpin;       /* swapins */
                     77:        unsigned v_swpout;      /* swapouts */
                     78: };
                     79: #ifdef KERNEL
                     80: struct vmmeter cnt, rate, sum;
                     81: #endif
                     82: 
                     83: /* systemwide totals computed every five seconds */
                     84: struct vmtotal
                     85: {
                     86:        short   t_rq;           /* length of the run queue */
                     87:        short   t_dw;           /* jobs in ``disk wait'' (neg priority) */
                     88:        short   t_pw;           /* jobs in page wait */
                     89:        short   t_sl;           /* jobs sleeping in core */
                     90:        short   t_sw;           /* swapped out runnable/short block jobs */
                     91:        long    t_vm;           /* total virtual memory */
                     92:        long    t_avm;          /* active virtual memory */
                     93:        long    t_rm;           /* total real memory in use */
                     94:        long    t_arm;          /* active real memory */
                     95:        long    t_vmtxt;        /* virtual memory used by text */
                     96:        long    t_avmtxt;       /* active virtual memory used by text */
                     97:        long    t_rmtxt;        /* real memory used by text */
                     98:        long    t_armtxt;       /* active real memory used by text */
                     99:        long    t_free;         /* free memory pages */
                    100: };
                    101: #ifdef KERNEL
                    102: struct vmtotal total;
                    103: #endif
                    104: 
                    105: /*
                    106:  * Optional instrumentation.
                    107:  */
                    108: #ifdef PGINPROF
                    109: 
                    110: #define        NDMON   128
                    111: #define        NSMON   128
                    112: 
                    113: #define        DRES    20
                    114: #define        SRES    5
                    115: 
                    116: #define        PMONMIN 20
                    117: #define        PRES    50
                    118: #define        NPMON   64
                    119: 
                    120: #define        RMONMIN 130
                    121: #define        RRES    5
                    122: #define        NRMON   64
                    123: 
                    124: /* data and stack size distribution counters */
                    125: unsigned int   dmon[NDMON+1];
                    126: unsigned int   smon[NSMON+1];
                    127: 
                    128: /* page in time distribution counters */
                    129: unsigned int   pmon[NPMON+2];
                    130: 
                    131: /* reclaim time distribution counters */
                    132: unsigned int   rmon[NRMON+2];
                    133: 
                    134: int    pmonmin;
                    135: int    pres;
                    136: int    rmonmin;
                    137: int    rres;
                    138: 
                    139: unsigned rectime;              /* accumulator for reclaim times */
                    140: unsigned pgintime;             /* accumulator for page in times */
                    141: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.