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

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:  *
1.1.1.2 ! root       33:  *     from: @(#)vmmeter.h     7.3 (Berkeley) 5/5/91
        !            34:  *     vmmeter.h,v 1.3 1993/05/20 16:23:51 cgd Exp
1.1       root       35:  */
                     36: 
1.1.1.2 ! root       37: #ifndef _SYS_VMMETER_H_
        !            38: #define _SYS_VMMETER_H_
        !            39: 
1.1       root       40: /*
                     41:  * Virtual memory related instrumentation
                     42:  */
                     43: struct vmmeter
                     44: {
                     45: #define        v_first v_swtch
                     46:        unsigned v_swtch;       /* context switches */
                     47:        unsigned v_trap;        /* calls to trap */
                     48:        unsigned v_syscall;     /* calls to syscall() */
                     49:        unsigned v_intr;        /* device interrupts */
                     50:        unsigned v_soft;        /* software interrupts */
                     51:        unsigned v_pdma;        /* pseudo-dma interrupts */
                     52:        unsigned v_pswpin;      /* pages swapped in */
                     53:        unsigned v_pswpout;     /* pages swapped out */
                     54:        unsigned v_pgin;        /* pageins */
                     55:        unsigned v_pgout;       /* pageouts */
                     56:        unsigned v_pgpgin;      /* pages paged in */
                     57:        unsigned v_pgpgout;     /* pages paged out */
                     58:        unsigned v_intrans;     /* intransit blocking page faults */
                     59:        unsigned v_pgrec;       /* total page reclaims */
                     60:        unsigned v_xsfrec;      /* found in free list rather than on swapdev */
                     61:        unsigned v_xifrec;      /* found in free list rather than in filsys */
                     62:        unsigned v_exfod;       /* pages filled on demand from executables */
                     63:        unsigned v_zfod;        /* pages zero filled on demand */
                     64:        unsigned v_vrfod;       /* fills of pages mapped by vread() */
                     65:        unsigned v_nexfod;      /* number of exfod's created */
                     66:        unsigned v_nzfod;       /* number of zfod's created */
                     67:        unsigned v_nvrfod;      /* number of vrfod's created */
                     68:        unsigned v_pgfrec;      /* page reclaims from free list */
                     69:        unsigned v_faults;      /* total faults taken */
                     70:        unsigned v_scan;        /* scans in page out daemon */
                     71:        unsigned v_rev;         /* revolutions of the hand */
                     72:        unsigned v_seqfree;     /* pages taken from sequential programs */
                     73:        unsigned v_dfree;       /* pages freed by daemon */
                     74:        unsigned v_fastpgrec;   /* fast reclaims in locore */
                     75: #ifdef tahoe
                     76:        unsigned v_fpe;         /* floating point emulation traps */
                     77:        unsigned v_align;       /* alignment emulation traps */
                     78: #endif
                     79: #define        v_last v_fastpgrec
                     80:        unsigned v_swpin;       /* swapins */
                     81:        unsigned v_swpout;      /* swapouts */
                     82: };
                     83: #ifdef KERNEL
                     84: struct vmmeter cnt, rate, sum;
                     85: #endif
                     86: 
                     87: /* systemwide totals computed every five seconds */
                     88: struct vmtotal
                     89: {
                     90:        short   t_rq;           /* length of the run queue */
                     91:        short   t_dw;           /* jobs in ``disk wait'' (neg priority) */
                     92:        short   t_pw;           /* jobs in page wait */
                     93:        short   t_sl;           /* jobs sleeping in core */
                     94:        short   t_sw;           /* swapped out runnable/short block jobs */
                     95:        long    t_vm;           /* total virtual memory */
                     96:        long    t_avm;          /* active virtual memory */
                     97:        long    t_rm;           /* total real memory in use */
                     98:        long    t_arm;          /* active real memory */
                     99:        long    t_vmtxt;        /* virtual memory used by text */
                    100:        long    t_avmtxt;       /* active virtual memory used by text */
                    101:        long    t_rmtxt;        /* real memory used by text */
                    102:        long    t_armtxt;       /* active real memory used by text */
                    103:        long    t_free;         /* free memory pages */
                    104: };
                    105: #ifdef KERNEL
                    106: struct vmtotal total;
                    107: #endif
                    108: 
                    109: /*
                    110:  * Optional instrumentation.
                    111:  */
                    112: #ifdef PGINPROF
                    113: 
                    114: #define        NDMON   128
                    115: #define        NSMON   128
                    116: 
                    117: #define        DRES    20
                    118: #define        SRES    5
                    119: 
                    120: #define        PMONMIN 20
                    121: #define        PRES    50
                    122: #define        NPMON   64
                    123: 
                    124: #define        RMONMIN 130
                    125: #define        RRES    5
                    126: #define        NRMON   64
                    127: 
                    128: /* data and stack size distribution counters */
                    129: unsigned int   dmon[NDMON+1];
                    130: unsigned int   smon[NSMON+1];
                    131: 
                    132: /* page in time distribution counters */
                    133: unsigned int   pmon[NPMON+2];
                    134: 
                    135: /* reclaim time distribution counters */
                    136: unsigned int   rmon[NRMON+2];
                    137: 
                    138: int    pmonmin;
                    139: int    pres;
                    140: int    rmonmin;
                    141: int    rres;
                    142: 
                    143: unsigned rectime;              /* accumulator for reclaim times */
                    144: unsigned pgintime;             /* accumulator for page in times */
                    145: #endif
1.1.1.2 ! root      146: 
        !           147: #endif /* !_SYS_VMMETER_H_ */

unix.superglobalmegacorp.com

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