home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!wupost!zaphod.mps.ohio-state.edu!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!nigel.msen.com!emory!sol.ctr.columbia.edu!hamblin.math.byu.edu!arizona.edu!mvb.saic.com!macro32
- From: DWING@UH01.Colorado.EDU (Dan Wing)
- Newsgroups: vmsnet.internals
- Subject: Re: monitor locations.
- Message-ID: <01GMVCF62DXE00005A@VAXF.COLORADO.EDU>
- Date: 27 Jul 92 16:48:58 GMT
- Organization: Macro32<==>Vmsnet.Internals Gateway
- Lines: 65
- X-Gateway-Source-Info: Mailing List
-
- Bob George, BOB@AENEAS.IMS.DISA.MIL, writes:
-
- > I've been looking through the manuals, but haven't seen it yet. Does
- >anyone know the symbolic system locations that monitor uses to determine
- >the time spent in each of the processor modes? Thanks,
-
- I've attached a portion of Nick de Smith's MONMODE.COM program, which
- generates output similar to MONITOR MODES, except it breaks down the output
- on a per-CPU basis (for SMP machines). If anyone wants a copy, let me know.
-
- -Dan Wing, DWING@UH01.Colorado.EDU or WING_D@UCOLMCC.BITNET (DGW11)
- Systems Programmer, University Hospital, Denver
-
- -----
-
- $!
- $! From SYS$SYSTEM:SYS.MAP. As these are in the base image for VMS, they should
- be the same for all VMS V5.x systems.
- $!
- $ EXE$GL_ABSTIM_TICS = %x800046F8
- ! Number of TICs since system boot
- $ EXE$GQ_SYSTIME = %x80004450
- ! System time
- $ SMP$GL_FLAGS = %x800045CC
- ! SMP flag word
- $ SMP$M_ENABLED = %x00000001
- ! SMP processing is enabled
- $ SMP$GL_ACTIVE_CPUS = %x800045A8
- ! Mask of CPUs being used by SMP
- $ SMP$GL_CPU_DATA = %x800045DC
- ! Table of pointers to per-CPU databases
- $!
- $! From $CPUDEF. We assume that CPU$L_NULLCPU = CPU$L_KERNEL + CPU_L_IDLE = CPU$
- L_KERNEL + CPU$S_KERNEL + 4
- $!
- $ CPU$B_STATE = %xd
- ! State of this processor
- $ CPU$S_KERNEL = %x1c
- ! Size of time in modes structure
- $ CPU$L_KERNEL = %x278
- ! Time in KERNEL mode
- $ CPU_L_KERNEL = %x00
- ! Offset to '' ''
- $ CPU_L_EXEC = %x04
- ! '' '' EXEC ''
- $ CPU_L_SUPER = %x08
- ! '' '' SUPERVISOR ''
- $ CPU_L_USER = %x0c
- ! '' '' USER ''
- $ CPU_L_INTERRUPT = %x10
- ! '' '' INTERRUPT ''
- $ CPU_L_COMPAT = %x14
- ! '' '' Compatability ''
- $ CPU_L_MPSYNCH = %x18
- ! '' '' MPSYNCH ''
- $ CPU_L_IDLE = %x1c
- ! '' '' EXEC ''
-
- And a comment:
-
- $! Read the executive per-CPU database for each active CPU.
- $! Determine the state of the processor, and collect all the counters.
- $! Note we have to subtract the idle ticks from the interrupt ticks, as under V5
- idle time is
- $! spent on the interrupt stack. If we don't do this, idle time appears twice.
-