COMPILATION LISTING OF SEGMENT post_purge_meters Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/22/85 1518.1 mst Tue Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 post_purge_meters: ppm: proc; 12 13 /* Entries */ 14 15 dcl cu_$arg_count entry returns (fixed bin); 16 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 17 dcl meter_util_$get_buffers entry (fixed bin, ptr, ptr, ptr, ptr, fixed bin (35)); 18 dcl meter_util_$fill_buffers entry (fixed bin); 19 dcl meter_util_$time entry (fixed bin, float bin); 20 dcl meter_util_$reset entry (fixed bin); 21 dcl ioa_ entry options (variable); 22 dcl com_err_ entry options (variable); 23 24 /* Automatic */ 25 26 dcl (i, count, list_size, ws_size, thrash, in_core, purges) fixed bin; 27 dcl (reset_sw, rps) bit (1) init ("0"b); 28 dcl code fixed bin (35); 29 dcl tc fixed bin; 30 dcl tp ptr; 31 dcl time fixed bin (71); 32 dcl ftime float bin; 33 dcl (pc, ave, ave_time) float bin; 34 35 /* Static */ 36 37 dcl myname char (17) static init ("post_purge_meters"); 38 dcl (sstp1, sstp2, tcdp1, tcdp2) ptr static; 39 dcl unique fixed bin static init (0); 40 41 /* Based */ 42 43 dcl targ char (tc) based (tp); 44 45 do i = 1 to cu_$arg_count (); 46 call cu_$arg_ptr (i, tp, tc, code); 47 if targ = "-report_reset" | targ = "-rr" then reset_sw, rps = "1"b; 48 else if targ = "-reset" | targ = "-rs" then reset_sw = "1"b; 49 else call com_err_ (0, (myname), "Unrecognized option ^a ignored", targ); 50 end; 51 52 if ^reset_sw then rps = "1"b; 53 54 if unique = 0 then do; 55 call meter_util_$get_buffers (unique, sstp1, sstp2, tcdp1, tcdp2, code); 56 if code ^= 0 then do; 57 call com_err_ (0, (myname), "Cannot get buffers."); 58 return; 59 end; 60 end; 61 62 call meter_util_$fill_buffers (unique); 63 call meter_util_$time (unique, ftime); 64 ftime = tcdp2 -> tcm.processor_time - tcdp1 -> tcm.processor_time; 65 66 if rps then do; 67 time = sstp2 -> sst.post_purge_time - sstp1 -> sst.post_purge_time; 68 count = sstp2 -> sst.post_purge_calls - sstp1 -> sst.post_purge_calls; 69 if count > 0 then do; 70 ave_time = 1e-3*time/count; 71 pc = 1e2*time/ftime; 72 call ioa_ ("^/Post purge time^-^8.2f msec. (^.2f% of system)", ave_time, pc); 73 list_size = sstp2 -> sst.post_list_size - sstp1 -> sst.post_list_size; 74 ave = list_size/count; 75 call ioa_ ("Ave list size^-^8.2f entries", ave); 76 77 ws_size = sstp2 -> sst.pre_page_size - sstp1 -> sst.pre_page_size; 78 ave = ws_size/count; 79 call ioa_ ("Ave working set^-^8.2f pages", ave); 80 81 call ioa_ ("Working set factor^-^8.2f", tcdp2 -> tcm.working_set_factor); 82 83 call ioa_ ("Working set addend^-^8d", tcdp2 -> tcm.working_set_addend); 84 85 thrash = sstp2 -> sst.thrashing - sstp1 -> sst.thrashing; 86 ave = 1e2*thrash/list_size; 87 call ioa_ ("Thrashing percentage^8.2f %", ave); 88 89 in_core = sstp2 -> sst.post_in_core - sstp1 -> sst.post_in_core; 90 ave = in_core/count; 91 call ioa_ ("Ave post in core^-^8.2f (^.2f %)", ave, 1e2*in_core/list_size); 92 93 purges = sstp2 -> sst.post_purgings - sstp1 -> sst.post_purgings; 94 ave = purges/count; 95 if purges > 0 then call ioa_ ("Ave post purges^-^8.2f (^.2f %)", ave, 1e2*purges/list_size); 96 end; 97 else call ioa_ ("^/No activity."); 98 end; 99 100 call ioa_ (" "); 101 102 if reset_sw then call meter_util_$reset (unique); 103 return; 104 105 /* */ 106 1 1 /* BEGIN INCLUDE FILE ... sst.incl.pl1 ... January 1971 */ 1 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 1 3 /* Deleted paging device info and added pc segmove info, Benson Margulies 84-01-03 */ 1 4 /* Added covert channel meters, Keith Loepere 85-01-08. */ 1 5 1 6 dcl sst_seg$ external; 1 7 dcl sstp ptr; 1 8 1 9 dcl 1 sst based (sstp) aligned, 1 10 2 space (8) fixed bin, /* empty space to watch for bugs */ 1 11 1 12 /* SST HEADER */ 1 13 1 14 2 pre_page_time fixed bin (71), /* total time spent pre-paging */ 1 15 2 post_purge_time fixed bin (71), /* total time spent post-purging */ 1 16 2 post_in_core fixed bin, /* total pages in core (and in list) at purge time */ 1 17 2 thrashing fixed bin, /* meter of thrashing being done on system */ 1 18 2 npfs_misses fixed bin, /* meter of times npfs was on when pre-paging */ 1 19 2 salv fixed bin, /* flag which is ^=0 if and only if salvaging */ 1 20 1 21 2 ptl bit (36), /* global page table loop lock */ 1 22 2 astl bit (36), /* global ast allocation block lock */ 1 23 2 astl_event bit (36), /* event used when waiting for AST lock */ 1 24 2 astl_notify_requested bit (1) aligned, /* flag to notify AST lock */ 1 25 2 nused fixed bin, /* number of pages on used list */ 1 26 2 ptwbase fixed bin (24), /* absolute address of page table array */ 1 27 2 tfreep ptr, /* pointer to first trailer on free list */ 1 28 1 29 2 astap ptr, /* aste array pointer */ 1 30 2 ptl_wait_ct fixed bin, /* pxss: number is >= # of processes waiting to ptl */ 1 31 2 astsize fixed bin, /* size of an AST entry */ 1 32 2 cmesize fixed bin, /* size of a CME entry */ 1 33 2 root_astep ptr, /* pointer to the root AST entry */ 1 34 1 35 2 pts (0: 3) fixed bin, /* array of page table sizes */ 1 36 2 level (0:3), /* per-list information about ASTE's */ 1 37 3 (ausedp, no_aste) bit (18) unaligned, /* used list and count of number of entries */ 1 38 1 39 2 (atempp, atempp1) bit (18) unal, /* temp seg list pointer */ 1 40 2 dm_enabled bit (1) aligned, /* ON => journal seg exists */ 1 41 2 (ainitp, ainitp1) bit (18) unal, /* init seg list pointer */ 1 42 2 strsize fixed bin, /* Trailer size in words. */ 1 43 1 44 /* CORE MAP HEADER */ 1 45 1 46 2 cmp ptr, /* pointer to start of core map */ 1 47 2 usedp bit (18), /* pointer to first used core block */ 1 48 2 wtct fixed bin, /* count of pages being written */ 1 49 1 50 2 startp bit (18), /* pointer to solid page for lap counting (fsdct) */ 1 51 2 removep bit (18), /* pointer to list of pages being removed from use */ 1 52 /* MISC */ 1 53 1 54 2 double_write fixed bin, /* trigger for store through scheme */ 1 55 /* 0 = no double writes, 1 56* 1 = all non-pd pages get written, 1 57* 2 = all directories get written */ 1 58 2 temp_w_event bit (36) aligned, /* wait event for temp wiring lock */ 1 59 2 root_pvtx fixed bin, /* pvtx or rpv */ 1 60 2 nolock bit (1) aligned, /* if on, don't lock ptl on interrupts */ 1 61 1 62 2 fc_skips_pinned fixed bin (35), /* number of skips over pinned page in find_core */ 1 63 2 cl_skips_pinned fixed bin (35), /* number of skips over pinned page in claim_mod_core */ 1 64 2 ast_ht_ptr ptr, /* AST hast table pointer */ 1 65 2 ast_ht_n_buckets fixed bin, /* number of buckets in AST hash table */ 1 66 2 ast_ht_uid_mask bit (36) aligned, /* mask to strip out low-order bits of uid */ 1 67 2 meter_ast_locking fixed bin, /* non-zero enables AST lock meters */ 1 68 2 checksum_filemap fixed bin, /* non-zero enables filemap checksumming */ 1 69 1 70 2 page_read_errors fixed bin, /* read errors posted to page control */ 1 71 2 page_write_errors fixed bin, /* write errors posted to page control */ 1 72 1 73 2 cycle_pv_allocation fixed bin, /* flag to cycle VTOCE allocation among PVs */ 1 74 1 75 2 n_trailers fixed bin, /* Number of trailer entries in str_seg */ 1 76 2 synch_activations fixed bin (35), /* Activation attempts for synchronized segs */ 1 77 2 synch_skips fixed bin (35), /* get_aste skips because not synchronized */ 1 78 1 79 2 lock_waits fixed bin, /* Number of times we had to wait for a lock */ 1 80 2 total_locks_set fixed bin, /* Total number of block locks set */ 1 81 2 pdir_page_faults fixed bin, /* total page faults off >pdd */ 1 82 2 level_1_page_faults fixed bin, /* total page faults in sys libes */ 1 83 2 dir_page_faults fixed bin, /* Total page faults on directories */ 1 84 2 ring_0_page_faults fixed bin, /* page faults in ring 0 */ 1 85 2 rqover fixed bin (35), /* errcode for record quota overflow */ 1 86 2 pc_io_waits fixed bin, /* Number of times pc had to wait on io */ 1 87 1 88 1 89 /* The following (until pdmap) used to be the 'cnt' in cnt.incl.pl1 */ 1 90 1 91 2 steps fixed bin, /* number of steps taken around used list */ 1 92 2 needc fixed bin, /* number of times core page needed */ 1 93 2 ceiling fixed bin, /* number of times ceiling hit */ 1 94 2 ctwait fixed bin, /* number of times write counter was full */ 1 95 2 wired fixed bin, /* number of pages wired by pc */ 1 96 2 laps fixed bin, /* number of times around used list */ 1 97 2 skipw fixed bin, /* number of pages skiped because they were wired */ 1 98 2 skipu fixed bin, /* because of being used */ 1 99 1 100 2 skipm fixed bin, /* because of being modified */ 1 101 2 skipos fixed bin, /* because out of service */ 1 102 2 aused fixed bin, /* number of AST entries on used list */ 1 103 2 damaged_ct fixed bin, /* count of segments that system damaged */ 1 104 2 deact_count fixed bin, /* count of deactivations */ 1 105 2 demand_deact_attempts fixed bin, /* user requested deactivations */ 1 106 2 demand_deactivations fixed bin, /* user instigated deactivations */ 1 107 1 108 2 reads (8) fixed bin, /* number of reads for each did */ 1 109 2 writes (8) fixed bin, /* number of writes for each did */ 1 110 1 111 2 short_pf_count fixed bin, /* count of page faults on out of service pages */ 1 112 2 loop_locks fixed bin, /* count of times locked PTL */ 1 113 2 loop_lock_time fixed bin (71), /* time spent looping on PTL */ 1 114 2 cpu_sf_time fixed bin (71), /* cpu time spent in seg_fault */ 1 115 2 total_sf_pf fixed bin, /* total page faults while in seg_fault */ 1 116 2 total_sf fixed bin, /* total number of seg_faults */ 1 117 2 pre_page_size fixed bin, /* total pre-pagings expected */ 1 118 2 post_list_size fixed bin, 1 119 2 post_purgings fixed bin, /* total number of post-purgings */ 1 120 2 post_purge_calls fixed bin, /* total number of calls to post-purge */ 1 121 2 pre_page_calls fixed bin, /* total number of calls tp pre-page */ 1 122 2 pre_page_list_size fixed bin, 1 123 2 pre_page_misses fixed bin, /* total number of misses in pre-page list */ 1 124 2 pre_pagings fixed bin, /* total number of pre-pagings */ 1 125 1 126 /* TEMPORARY WIRED PROCEDURE INFO */ 1 127 1 128 2 wire_proc_data (8) fixed bin (71), /* data for wire_proc */ 1 129 1 130 /* MAIN MEMORY USAGE INFORMATION */ 1 131 1 132 2 abs_wired_count fixed bin, /* count of abs-wired pages */ 1 133 2 system_type fixed bin, /* ADP_SYSTEM or L68_SYSTEM */ 1 134 2 wired_copies fixed bin, /* number of times a wired page was copied */ 1 135 2 recopies fixed bin, /* number of times recopied because modified */ 1 136 2 first_core_block fixed bin, /* core map index for first block of core */ 1 137 2 last_core_block fixed bin, /* core map index for last block of core */ 1 138 2 fw_retries fixed bin (35), /* force_write retries due to ASTE move */ 1 139 2 pvhtp ptr unaligned, /* ptr to PV hold table for debugging */ 1 140 1 141 /* AST METERS */ 1 142 1 143 2 askipsize (0: 3) fixed bin, /* array of skips because wrong AST size */ 1 144 2 aneedsize (0: 3) fixed bin, /* array of times needed each size */ 1 145 1 146 2 stepsa fixed bin, /* count of steps taken looking for an AST entry */ 1 147 2 askipsehs fixed bin, /* count of skips because EHS was ON */ 1 148 2 asearches fixed bin, /* count of full searches made */ 1 149 2 askipslevel fixed bin, /* count of skips because pages were in core */ 1 150 2 askipsinit fixed bin, /* count of times turned OFF init switch */ 1 151 2 acost fixed bin, /* cumulative cost of deactivations */ 1 152 2 askipslock fixed bin, /* count of skips because couldn't lock parent */ 1 153 2 askipdius fixed bin, /* count of skips because DIUS was on */ 1 154 1 155 2 alaps fixed bin, /* lap counter for AST list */ 1 156 2 updates fixed bin, /* calls to updateb */ 1 157 2 setfaults_all fixed bin, /* setfaults done to the entire SDW */ 1 158 2 setfaults_acc fixed bin, /* setfaults done to the access field */ 1 159 2 total_bf fixed bin, /* count of bound faults */ 1 160 2 total_bf_pf fixed bin, /* page faults during bound faults */ 1 161 2 cpu_bf_time fixed bin (71), /* cpu time spent in bound fault */ 1 162 1 163 2 asteps (0: 3) fixed bin, /* per-size AST step counters */ 1 164 1 165 2 ast_locked_at_time fixed bin (71), /* clock reading when ast last locked */ 1 166 2 ast_locked_total_time fixed bin (71), /* total real time the ast lock was locked */ 1 167 2 ast_lock_wait_time fixed bin (71), /* total real time of all waiting on ast lock */ 1 168 2 ast_locking_count fixed bin (35), /* number of times ast was locked */ 1 169 2 cleanup_count fixed bin, /* calls to pc$cleanup */ 1 170 2 cleanup_real_time fixed bin (71), /* total real time in pc$cleanup */ 1 171 1 172 /* PRE-PAGE METERS */ 1 173 1 174 2 tree_count (0: 63) fixed bin, /* counters for pre-page decisions */ 1 175 1 176 2 pp_meters (0: 63) fixed bin, /* counters for measuring pre-page success */ 1 177 1 178 1 179 2 wusedp bit (18) aligned, /* Relative cmep to next cme for writing */ 1 180 2 write_hunts fixed bin, /* Times claim_mod_core invoked */ 1 181 2 claim_skip_cme fixed bin, /* Times unacceptable cme found by c_m_c */ 1 182 2 claim_skip_free fixed bin, /* Times free cme passed by c_m_c */ 1 183 2 claim_notmod fixed bin, /* Times c_m_c passed pure page */ 1 184 2 claim_passed_used fixed bin, /* Times used page seen */ 1 185 2 claim_skip_ptw fixed bin, /* Times c_m_c saw unacceptable ptw */ 1 186 2 claim_writes fixed bin, /* Writes queued by c_m_c */ 1 187 2 claim_steps fixed bin, /* Steps passed in core claiming */ 1 188 2 pre_seeks_failed fixed bin, /* counter of times quick find_core_ failed */ 1 189 2 resurrections fixed bin, /* nulled addresses reinstated */ 1 190 2 volmap_seg_page_faults fixed bin (35), /* Pseudo-page faults on volmap_seg */ 1 191 2 oopv fixed bin, /* out-of-physical-volume page faults */ 1 192 2 dblw_resurrections fixed bin, /* addresses resurrected by double-writing */ 1 193 2 sgm_time fixed bin (71), /* Time (VCPU) in seg mover */ 1 194 2 sgm_pf fixed bin, /* Page faults in seg moving */ 1 195 2 bad_sgms fixed bin, /* Seg moves that failed */ 1 196 2 sgm_sgft fixed bin, /* Seg faults in seg moves */ 1 197 2 good_sgms fixed bin, /* Seg moves that completed */ 1 198 2 claim_runs fixed bin, /* Times claim_mod_core had to run */ 1 199 2 activations fixed bin, /* total count of activations */ 1 200 2 dir_activations fixed bin, /* count of directory activations */ 1 201 2 hedge_updatevs fixed bin, /* call-in updatevs */ 1 202 2 hedge_writes fixed bin, /* call in core flush writes */ 1 203 2 evict_recover_data, /* see evict_page.alm */ 1 204 3 evict_ptp bit (18) unal, /* ptp of page being moved */ 1 205 3 evict_phmbit bit (18) unal, /* N/Z if page was mod */ 1 206 1 207 /* Data for metering force_write facility 08/19/78 */ 1 208 1 209 2 force_swrites fixed bin, /* Calls on segments to force write */ 1 210 2 force_pwrites fixed bin, /* Mod pages so written */ 1 211 2 fw_none fixed bin, /* Force write wrote none */ 1 212 2 force_updatevs fixed bin, /* Updatev's so forced */ 1 213 1 214 2 pf_unlock_ptl_time fixed bin (71), /* Time unlocking ptln page faults */ 1 215 2 pf_unlock_ptl_meterings fixed bin, 1 216 1 217 2 makeknown_activations fixed bin (35), /* activations at makeknown time */ 1 218 2 backup_activations fixed bin (35), /* activations for backup */ 1 219 2 metering_flags aligned, /* small chunks of misc. information */ 1 220 3 activate_activated bit (1) unal, /* ON => last call to activate entry actually activated something */ 1 221 3 pad bit (35) unal, 1 222 2 seg_fault_calls fixed bin (35), /* number calls to seg_fault for explicit activation */ 1 223 1 224 /* METERS FOR STACK TRUNCATION */ 1 225 1 226 2 (stk_truncate_should_didnt, /* counts */ 1 227 stk_truncate_should_did, 1 228 stk_truncate_shouldnt_didnt, 1 229 stk_truncate_shouldnt_did) fixed bin (35), 1 230 2 stk_pages_truncated fixed bin (35), 1 231 2 stk_pages_truncated_in_core fixed bin (35), 1 232 1 233 /* SUPPORT FOR PC SEGMOVES */ 1 234 1 235 2 segmove_lock aligned, 1 236 3 pid bit (36) aligned, 1 237 3 event bit (36) aligned, 1 238 3 notify bit (1) aligned, 1 239 2 segmove_io_limit fixed bin, /* max read aheads */ 1 240 2 segmove_found_synch fixed bin (35), /* cme.synch_held */ 1 241 2 segmove_synch_disappeared fixed bin (35), /* page$check_synch fixed */ 1 242 2 segmove_n_reads fixed bin (35), /* total IO's queued. */ 1 243 2 segmove_max_tries fixed bin (35), /* max times through the read loop */ 1 244 1 245 2 segmove_astep ptr unal, /* if non-null, addresses to be rescued from old_addr_astep */ 1 246 2 segmove_pvtx fixed bin, /* if segmove_astep nonnull, valid */ 1 247 2 segmove_vtocx fixed bin, /* ditto */ 1 248 2 segmove_old_addr_astep ptr unaligned, /* ditto */ 1 249 2 segmove_new_addr_astep ptr unaligned, /* if non-null, the addresses must be deposited. */ 1 250 1 251 2 mod_during_write fixed bin, /* times a page was modified while it was being written */ 1 252 2 zero_pages fixed bin, /* count of pages truncated because all zero */ 1 253 2 trace_sw aligned, /* tracing control flags */ 1 254 3 pad_trace bit (32) unaligned, 1 255 3 pc_trace_pf bit (1) unaligned, /* tracing for page faults, done, etc. */ 1 256 3 tty_trace bit (1) unaligned, 1 257 3 pc_trace bit (1) unaligned, /* flag used by page control primitives */ 1 258 3 sc_trace bit (1) unaligned, /* flag used by segment control primitives */ 1 259 2 new_pages fixed bin, /* newly created pages */ 1 260 2 ast_track bit (1) aligned, /* "1"b => keep SST name table */ 1 261 2 dirlock_writebehind fixed bin, /* =1 to flush modified dir pages in lock$unlock */ 1 262 2 write_limit fixed bin, /* Max # of outstanding writes by page control */ 1 263 2 crash_test_segmove bit (1) aligned, /* crash in mid-segmove */ 1 264 2 delayed_seg_state_chg fixed bin (35), /* count of times a process was delayed in affecting a seg state */ 1 265 2 audit_seg_state_chg fixed bin (35), /* count of times a process was audited for excessive seg state changes */ 1 266 2 seg_state_chg_delay fixed bin (52), /* total times processes were delayed for covert channels */ 1 267 2 seg_state_change_limit fixed bin, /* number of events over which we determine covert channel bandwidth */ 1 268 2 max_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we delay */ 1 269 2 audit_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we audit */ 1 270 2 seg_state_chg_operation bit (36) aligned, /* access_operation_ value for excessive_seg_state_chg */ 1 271 2 pad4 (126) bit (36) aligned; /* padding to 512 words (1000)8 */ 1 272 1 273 /* END INCLUDE FILE sst.incl.pl1 */ 107 2 1 /* BEGIN INCLUDE FILE ... tcm.incl.pl1 ... used to generate tc_data cds */ 2 2 /* NOTE -- This include file has TWO counterparts in ALM: tc_meters.incl.alm and */ 2 3 /* wcte.incl.alm. They cannot be produced with cif, and must be kept up to date manually. */ 2 4 /* Modified 830914 to replace tty_polling_time with opc_polling_time... -E. A. Ranzenbach */ 2 5 /* Modified 1984.05.21 by M. Pandolf to add tc_suspend_lock */ 2 6 /* Modified 1984.11.26 by Keith Loepere for uid_array. */ 2 7 /* Modified 1984.12.06 by Keith Loepere for page create delaying. */ 2 8 2 9 dcl tcmp ptr; 2 10 2 11 dcl 1 tcm aligned based (tcmp), 2 12 2 tc_suspend_lock like lock, /* when locked, tc is suspended */ 2 13 2 cid2 fixed bin (18), 2 14 2 cid3 fixed bin (18), 2 15 2 cid4 fixed bin (18), 2 16 2 depth_count fixed bin (18), /* depth last process run */ 2 17 2 loadings fixed bin (18), /* number of process loadings */ 2 18 2 19 2 blocks fixed bin (18), /* number of calls to block */ 2 20 2 wakeups fixed bin (18), /* number of calls to wakeup */ 2 21 2 waits fixed bin (18), /* number of calls to wait */ 2 22 2 notifies fixed bin (18), /* number of calls to notify */ 2 23 2 schedulings fixed bin (18), 2 24 2 interactions fixed bin (18), /* number of interactive schedulings */ 2 25 2 avequeue fixed bin (35, 18), /* recent time average of number in queue */ 2 26 2 te_wait fixed bin (18), /* times te called from wait */ 2 27 2 28 2 te_block fixed bin (18), /* times te updated from block */ 2 29 2 te_i_stop fixed bin (18), /* times te updated from i_stop */ 2 30 2 te_pre_empt fixed bin (18), /* times te updated from pre_empt */ 2 31 2 p_interactions fixed bin, /* times interaction bit turned off because of high priority */ 2 32 2 idle fixed bin (71), /* total idle time */ 2 33 2 mp_idle fixed bin (71), /* multi-programming idle */ 2 34 2 35 2 nmp_idle fixed bin (71), /* non-multi-programming idle time */ 2 36 2 zero_idle fixed bin (71), /* zero idle time */ 2 37 2 last_time fixed bin (71), /* last time a process was run */ 2 38 2 loop_locks fixed bin (18), /* times looped on the APT lock */ 2 39 2 loop_lock_time fixed bin (18), /* time looping on the APT lock */ 2 40 2 ave_eligible fixed bin (35, 18), /* average length of eligible queue */ 2 41 2 sort_to_elhead fixed bin (18), /* 0=> no one,1 => int've only, 2 => everybody */ 2 42 2 processor_time fixed bin (71), /* total processor time on system */ 2 43 2 response_time fixed bin (71), /* estimate of response time */ 2 44 2 eligible_time fixed bin (71), /* estimate of eligible time */ 2 45 2 response_count fixed bin, /* count of response meters */ 2 46 2 eligible_count fixed bin, /* count of eligible meters */ 2 47 2 quit_counts (0:5) fixed bin, /* array of buckets indexed by state */ 2 48 2 loading_idle fixed bin (71), /* loading_idle time */ 2 49 2 delta_vcpu fixed bin (71), /* delta virtual CPU time for the system */ 2 50 2 post_purge_switch fixed bin, /* ON if post purging is to be done */ 2 51 2 time_out_severity fixed bin, /* syserr first arg for notify time outs */ 2 52 2 notify_check fixed bin, /* obsolete */ 2 53 2 quit_priority fixed bin, /* factor for scheduler quit response */ 2 54 2 iobm_polling_time fixed bin (71), /* time to poll iobm */ 2 55 2 end_of_time fixed bin (71), /* very large time */ 2 56 2 gp_at_notify fixed bin (18), /* 0 => just do get_idle_processor */ 2 57 2 gp_at_ptlnotify fixed bin (18), /* 0 => just do get_idle_processor */ 2 58 2 int_q_enabled fixed bin (18), /* 0 => no intv q in percent mode */ 2 59 2 fnp_buffer_threshold fixed bin (18), /* if fewer free buffs then stingy alloc strategy */ 2 60 /* set this to >= half n_ttylines/fnp for safety */ 2 61 2 62 /* 100 octal */ 2 63 2 64 2 depths (8) fixed bin (18), /* histogram of run depths */ 2 65 2 tdepths (8) fixed bin (71), /* histogram of times run per depth */ 2 66 2 pfdepth (8) fixed bin (18), /* histogram of page faults per depth */ 2 67 2 68 2 ptl_not_waits fixed bin (18), /* times ptl_wait noticed ptl was unlocked */ 2 69 2 gw_gp_window_count fixed bin (18), /* times window noticed */ 2 70 2 metering_lock fixed bin (18), /* 0=locked, else unlocked */ 2 71 2 ptl_waits fixed bin (18), /* num calls to ptl_wait */ 2 72 2 gp_start_count fixed bin (18), /* to detect gw_gp window lossage */ 2 73 2 gp_done_count fixed bin (18), 2 74 2 nto_check_time fixed bin (71), /* next time at which nto code will be called */ 2 75 2 nto_delta fixed bin (35), /* microsec between nto checks */ 2 76 2 nto_count fixed bin (18), /* number of times nto detected */ 2 77 2 tcpu_scheduling fixed bin (18), /* obsolete */ 2 78 2 nto_event bit (36), /* last event which NTO'd */ 2 79 2 page_notifies fixed bin (18), 2 80 2 notify_nobody_count fixed bin (18), 2 81 2 notify_nobody_event bit (36), 2 82 2 system_type fixed bin, /* used to be tcm.inter */ 2 83 2 84 2 stat (0:15) fixed bin (18), /* num apte's in each state */ 2 85 2 86 /* 200 octal */ 2 87 2 88 2 wait (8), 2 89 3 time fixed bin (18), /* histogram of page fault waiting times versus did */ 2 90 3 count fixed bin (18), 2 91 2 92 2 ready (8), 2 93 3 time fixed bin (18), /* histogram of times in ready queue */ 2 94 3 count fixed bin (18), 2 95 2 96 2 total_pf_time fixed bin (71), /* total time spent from start to end of 2 97* all page faults */ 2 98 2 total_pf_count fixed bin (18), /* total number of page faults metered */ 2 99 2 auto_tune_ws fixed bin (18), /* 0=> dont, atherwise compensate for quantum len */ 2 100 2 ocore_delta fixed bin (18), /* number of pages reserved for int users */ 2 101 2 ws_sum fixed bin (18), /* total of eligible's ws_sizes */ 2 102 2 nonidle_force_count fixed bin (18), /* count of eligibilities forced */ 2 103 2 itt_list_lock bit (36) aligned, /* Lock on ITT free list */ 2 104 2 cpu_pf_time fixed bin (71), /* total cpu time spent handling page faults */ 2 105 2 cpu_pf_count fixed bin (18), /* total count of cpu time meterings */ 2 106 2 special_offsets unaligned, 2 107 3 apt_offset bit (18), 2 108 3 pad bit (18), 2 109 2 getwork_time fixed bin (71), /* total time spent in getwork */ 2 110 2 getwork_count fixed bin (18), /* total times through getwork */ 2 111 2 short_pf_count fixed bin (18), /* number of short page faults */ 2 112 2 interrupt_time fixed bin (71), /* total time spent in interrupt */ 2 113 2 interrupt_count fixed bin (71), /* total number of metered interrupts */ 2 114 2 ocore fixed bin (35, 18), /* fraction of core for int've users */ 2 115 2 pre_empt_flag bit (36) aligned, /* controls whether preempting at done time */ 2 116 2 cumulative_memory_usage fixed binary (71), /* total number of memory usage units */ 2 117 2 processor_time_at_define_wc fixed bin (71), /* value of processor_time when WC's last defined */ 2 118 2 boost_priority fixed bin, /* number of times priority process given high priority */ 2 119 2 lost_priority fixed bin, /* number of times priority process lost eligibility */ 2 120 2 total_clock_lag fixed bin (71), /* sum of all simulated clock delays */ 2 121 2 clock_simulations fixed bin, /* number of times alarm clock interrupt was simulated */ 2 122 2 max_clock_lag fixed bin, /* largest simulated alarm clock delay */ 2 123 2 124 /* 300 octal */ 2 125 2 126 2 pdscopyl fixed bin (18), /* amount of pds to copy for new process */ 2 127 2 max_hproc_segno fixed bin, /* largest allowed hardcore segment number */ 2 128 2 prds_length fixed bin (18), /* length of PRDS */ 2 129 2 pds_length fixed bin (18), /* length of PDS */ 2 130 2 lock fixed bin (18), /* process id generator lock */ 2 131 2 id bit (36) aligned, /* next uid to be added to uid_array */ 2 132 2 system_shutdown fixed bin (18), 2 133 2 working_set_factor fixed bin (35, 18), /* working set factor */ 2 134 2 135 2 ncpu fixed bin (18), /* number of processors currently being used */ 2 136 2 last_eligible bit (18), /* last process to gain eligibility */ 2 137 2 apt_lock fixed bin (35), /* + write; 0 hidden; -1 unlocked; -(N+1) Nreaders */ 2 138 2 apt_size fixed bin (18), /* number of APT entries */ 2 139 2 realtime_q aligned like based_sentinel, /* processes with realtime deadlines */ 2 140 2 aht_size fixed bin (18), /* APT hash table size */ 2 141 2 itt_size fixed bin (18), /* number of ITT entries */ 2 142 2 143 2 dst_size fixed bin (18), /* number of allowed DST entries */ 2 144 2 itt_free_list bit (18), /* pointer to ITT free list */ 2 145 2 used_itt fixed bin (18), /* number of used ITT entries */ 2 146 2 initializer_id bit (36) aligned, /* process id of initializer */ 2 147 2 n_eligible fixed bin (18), /* number of processes eligible */ 2 148 2 max_eligible fixed bin (30), /* maximum allowed number of eligible processes */ 2 149 2 wait_enable fixed bin (18), /* turned on when waiting mechanism works */ 2 150 2 apt_entry_size fixed bin (18), /* size of an APT entry */ 2 151 2 152 2 interactive_q aligned like based_sentinel, /* head of interactive queue */ 2 153 2 dst_ptr ptr, /* pointer to device signal table */ 2 154 2 old_user ptr, /* last process to run (apt ptr ) */ 2 155 2 initialize_time fixed bin (71), /* time of initialization */ 2 156 2 157 2 init_event fixed bin (18), /* wait event during initialization */ 2 158 2 oldt fixed bin (18), /* timer reading from previous process */ 2 159 2 newt fixed bin (18), /* timer setting for new process */ 2 160 2 tefirst fixed bin (30), /* first eligible time */ 2 161 2 telast fixed bin (30), /* last eligible time */ 2 162 2 timax fixed bin (35), /* time in queue for lowest level */ 2 163 2 empty_q bit (18), /* thread of empty APT entries */ 2 164 2 working_set_addend fixed bin (18), /* additive working set parameter */ 2 165 2 ready_q_head bit (0) aligned, /* for added segdef */ 2 166 2 eligible_q_head aligned like based_sentinel, /* head of eligible queue */ 2 167 2 ready_q_tail bit (0) aligned, /* for added segdef */ 2 168 2 eligible_q_tail aligned like based_sentinel, /* tail of eligible queue */ 2 169 2 idle_tail aligned like based_sentinel, /* tail of idle list */ 2 170 2 min_eligible fixed bin (30), 2 171 2 alarm_timer_list bit (18) aligned, /* rel pointer to apt entry for next alarm timer */ 2 172 2 guaranteed_elig_inc fixed bin (35), /* amount of guaranteed eligibility time in microsecs. */ 2 173 2 priority_sched_inc fixed bin (35), /* amount of block time before process is given priority */ 2 174 2 next_alarm_time fixed bin (71), /* clock time for next alarm timer */ 2 175 2 priority_sched_time fixed bin (71), /* time for priority process to be given priority */ 2 176 2 opc_polling_time fixed bin (71), /* time to poll console DIM */ 2 177 2 disk_polling_time fixed bin (71), /* time to poll disk DIM */ 2 178 2 tape_polling_time fixed bin (71), /* time to poll tape DIM */ 2 179 2 imp_polling_time fixed bin (71), /* time to poll imp */ 2 180 2 imp_polling_lock fixed bin (18), /* do not poll if lock set */ 2 181 2 max_channels fixed bin (18), /* num special channels per process */ 2 182 2 183 /* 400 octal */ 2 184 2 185 2 system_virtual_time fixed bin (71), /* non-idle virtual time */ 2 186 2 credit_bank fixed bin (71), /* credits not yet passed out */ 2 187 2 min_wct_index bit (18) aligned, /* offset of initializer work class table entry */ 2 188 2 max_wct_index bit (18) aligned, /* offset of highest wcte currently defined */ 2 189 2 delta_vt fixed bin (71), /* temp used by pxss.compute_virtual_clocks */ 2 190 2 gross_idle_time fixed bin (71), /* idle time_used_clock */ 2 191 2 credits_per_scatter fixed bin (35), /* total number of credits awarded at once */ 2 192 2 best_credit_value fixed bin (18), /* temp for pxss.find_next_eligible */ 2 193 2 define_wc_time fixed bin (71), /* clock time when workclasses last degined */ 2 194 2 max_batch_elig fixed bin (35), 2 195 2 num_batch_elig fixed bin (35), 2 196 2 deadline_mode fixed bin (35), /* 0=> ti sorts, else deadline sorts */ 2 197 2 credits_scattered fixed bin (35), 2 198 2 max_max_eligible fixed bin (30), /* Maximum of maxe */ 2 199 2 max_stopped_stack_0 fixed bin (35), /* Maximum stack_0's suspended by stopped procs */ 2 200 2 stopped_stack_0 fixed bin (35), /* Number stack_0's suspended by stopped procs */ 2 201 2 mos_polling_interval fixed bin (35), /* for heals */ 2 202 2 mos_polling_time fixed bin (71), /* for heals */ 2 203 2 vcpu_response_bounds (VCPU_RESPONSE_BOUNDS) fixed bin (35), 2 204 2 vcpu_response_bounds_size fixed bin (35), 2 205 2 meter_response_time_calls fixed bin (35), 2 206 2 meter_response_time_invalid fixed bin (35), 2 207 2 meter_response_time_overhead fixed bin (71), 2 208 2 init_wait_time fixed bin (71), /* used by wait/notify during initialization */ 2 209 2 init_wait_timeout fixed bin (71), /* notify-timeout interval during initialization */ 2 210 2 init_timeout_severity fixed bin, /* notify-timeout severity during initialization */ 2 211 2 init_timeout_recurse fixed bin, /* count of NTO recursion during initialization */ 2 212 2 max_timer_register fixed bin (71), /* max cpu burst = # cpus x pre_empt_sample_time */ 2 213 2 pre_empt_sample_time fixed bin (35), /* tuning parameter - max time between samples */ 2 214 2 governing_credit_bank fixed bin (35), /* used for limiting eligibility on governed work classes*/ 2 215 2 process_initial_quantum fixed bin (35), /* eligibility quantum first eligibility */ 2 216 2 default_procs_required bit (8) aligned, /* default mask of CPUs required */ 2 217 2 work_class_idle fixed bin (71), /* idle time due to work class restrictions */ 2 218 2 219 /* Tuning Parameters for Stack Truncation */ 2 220 2 221 2 stk_truncate bit (1) aligned, 2 222 2 stk_truncate_always bit (1) aligned, 2 223 2 stk_trunc_avg_f1 fixed bin (35, 18), 2 224 2 stk_trunc_avg_f2 fixed bin (35, 18), 2 225 2 lock_error_severity fixed bin, /* syserr severity */ 2 226 2 227 2 gv_integration fixed bin (35), /* Integration interval for governing */ 2 228 2 gv_integration_set bit (1) aligned, /* ON => gv_integration set by ctp */ 2 229 2 pauses fixed bin (35), /* Calls to pause (reschedule) */ 2 230 2 volmap_polling_time fixed bin (71), 2 231 2 next_ring0_timer fixed bin (71), /* next time that ring 0 timer goes off */ 2 232 2 realtime_io_priority_switch fixed bin, /* 0 => give I/O interrupt wakeups realtime priotiry */ 2 233 2 realtime_io_deadline fixed bin (35), /* Delta to clock for I/O realtime deadline */ 2 234 2 realtime_io_quantum fixed bin (35), /* Quantum for I/O realtime burst */ 2 235 2 realtime_priorities fixed bin (35), /* Count for metering */ 2 236 2 relinquishes fixed bin (35), /* Calls to relinquish_priority */ 2 237 2 abort_ips_mask bit (36) aligned, /* IPS mask for tc_util$check_abort */ 2 238 2 239 /* 500 octal */ 2 240 2 241 2 uid_array (0:15) bit (36) aligned, /* array from which a uid is chosen (randomly) */ 2 242 2 pad5 (176) fixed bin (35), /* room for expansion compatibly */ 2 243 2 244 /* 1000 octal */ 2 245 2 246 2 pad7 (64) fixed bin (35), 2 247 2 248 /* 1100 octal */ 2 249 2 250 2 pad6 (8) fixed bin (35), 2 251 2 work_class_table aligned, /* array of per workclass information */ 2 252 3 wcte (0:16) aligned like wct_entry, 2 253 2 254 /* 3000 octal */ 2 255 2 256 2 apt fixed bin; 2 257 2 258 dcl wctep ptr; 2 259 2 260 dcl 1 wct_entry aligned based (wctep), /* Work class entry */ 2 261 2 thread unaligned, /* Ready list */ 2 262 3 fp bit (18), /* Head of ready list */ 2 263 3 bp bit (18), /* Tail of ready list */ 2 264 2 flags unaligned, 2 265 3 mnbz bit (1), /* Sentinel bit must not be zero. */ 2 266 3 defined bit (1), 2 267 3 io_priority bit (1), 2 268 3 governed bit (1), 2 269 3 interactive_q bit (1), 2 270 3 pad bit (31), 2 271 2 credits fixed bin (35), /* Current worthiness of group */ 2 272 2 minf fixed bin (35), /* min fraction of cpu */ 2 273 2 pin_weight fixed bin (35), /* number of cycles to pin pages */ 2 274 2 eligibilities fixed bin (35), /* Count of eligibilities awarded */ 2 275 2 cpu_sum fixed bin (71), /* CPU used by members */ 2 276 2 resp1 fixed bin (71), 2 277 2 resp2 fixed bin (71), 2 278 2 quantum1 fixed bin (35), 2 279 2 quantum2 fixed bin (35), 2 280 2 rmeter1 fixed bin (71), 2 281 2 rmeter2 fixed bin (71), 2 282 2 rcount1 fixed bin (35), 2 283 2 rcount2 fixed bin (35), 2 284 2 realtime fixed bin (35), 2 285 2 purging fixed bin (35), 2 286 2 maxel fixed bin (35), 2 287 2 nel fixed bin (35), 2 288 2 number_thinks fixed bin (35), /* number times process entered "think" state */ 2 289 2 number_queues fixed bin (35), /* number times process entered "queued" state */ 2 290 2 total_think_time fixed bin (71), 2 291 2 total_queue_time fixed bin (71), 2 292 2 293 /* The next three arrays correspond to the array vcpu_response_bounds */ 2 294 2 295 2 number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35), /* number times entered "processing" state */ 2 296 2 total_processing_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 2 297 2 total_vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 2 298 2 maxf fixed bin (35), /* maximum fraction of cpu time */ 2 299 2 governing_credits fixed bin (35), /* for limiting cpu resources */ 2 300 2 pad1 (4) fixed bin (35); 2 301 2 302 2 303 dcl 1 based_sentinel aligned based, /* format of pxss-style sentinel */ 2 304 2 fp bit (18) unal, 2 305 2 bp bit (18) unal, 2 306 2 sentinel bit (36) aligned; 2 307 2 308 dcl VCPU_RESPONSE_BOUNDS fixed bin init (3) int static options (constant); 2 309 2 310 /* END INCLUDE FILE tcm.incl.pl1 */ 108 3 1 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 3 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 3 3* encourages name conflicts. 3 4* USE HC_FAST_LOCK INSTEAD! 3 5**/ 3 6 3 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 3 8 3 9 /* format: style3 */ 3 10 3 11 declare lock_ptr pointer; 3 12 declare 1 lock aligned based (lock_ptr), 3 13 2 pid bit (36) aligned, /* holder of lock */ 3 14 2 event bit (36) aligned, /* event associated with lock */ 3 15 2 flags aligned, 3 16 3 notify_sw bit (1) unaligned, 3 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 3 18 3 19 /* End include file hc_lock.incl.pl1 */ 109 110 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/22/85 1307.7 post_purge_meters.pl1 >spec>temp>41-5>post_purge_meters.pl1 107 1 01/22/85 1321.6 sst.incl.pl1 >spec>temp>41-5>sst.incl.pl1 108 2 01/22/85 1321.5 tcm.incl.pl1 >spec>temp>41-5>tcm.incl.pl1 109 3 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ave 000122 automatic float bin(27) dcl 33 set ref 74* 75* 78* 79* 86* 87* 90* 91* 94* 95* ave_time 000123 automatic float bin(27) dcl 33 set ref 70* 72* based_sentinel based structure level 1 dcl 2-303 code 000111 automatic fixed bin(35,0) dcl 28 set ref 46* 55* 56 com_err_ 000040 constant entry external dcl 22 ref 49 57 count 000101 automatic fixed bin(17,0) dcl 26 set ref 68* 69 70 74 78 90 94 cu_$arg_count 000022 constant entry external dcl 15 ref 45 cu_$arg_ptr 000024 constant entry external dcl 16 ref 46 ftime 000120 automatic float bin(27) dcl 32 set ref 63* 64* 71 i 000100 automatic fixed bin(17,0) dcl 26 set ref 45* 46* in_core 000105 automatic fixed bin(17,0) dcl 26 set ref 89* 90 91 ioa_ 000036 constant entry external dcl 21 ref 72 75 79 81 83 87 91 95 97 100 list_size 000102 automatic fixed bin(17,0) dcl 26 set ref 73* 74 86 91 95 lock based structure level 1 dcl 3-12 meter_util_$fill_buffers 000030 constant entry external dcl 18 ref 62 meter_util_$get_buffers 000026 constant entry external dcl 17 ref 55 meter_util_$reset 000034 constant entry external dcl 20 ref 102 meter_util_$time 000032 constant entry external dcl 19 ref 63 myname 000000 constant char(17) initial unaligned dcl 37 ref 49 57 pc 000121 automatic float bin(27) dcl 33 set ref 71* 72* post_in_core 14 based fixed bin(17,0) level 2 dcl 1-9 ref 89 89 post_list_size 165 based fixed bin(17,0) level 2 dcl 1-9 ref 73 73 post_purge_calls 167 based fixed bin(17,0) level 2 dcl 1-9 ref 68 68 post_purge_time 12 based fixed bin(71,0) level 2 dcl 1-9 ref 67 67 post_purgings 166 based fixed bin(17,0) level 2 dcl 1-9 ref 93 93 pre_page_size 164 based fixed bin(17,0) level 2 dcl 1-9 ref 77 77 processor_time 42 based fixed bin(71,0) level 2 dcl 2-11 ref 64 64 purges 000106 automatic fixed bin(17,0) dcl 26 set ref 93* 94 95 95 reset_sw 000107 automatic bit(1) initial unaligned dcl 27 set ref 27* 47* 48* 52 102 rps 000110 automatic bit(1) initial unaligned dcl 27 set ref 27* 47* 52* 66 sst based structure level 1 dcl 1-9 sstp1 000010 internal static pointer dcl 38 set ref 55* 67 68 73 77 85 89 93 sstp2 000012 internal static pointer dcl 38 set ref 55* 67 68 73 77 85 89 93 targ based char unaligned dcl 43 set ref 47 47 48 48 49* tc 000112 automatic fixed bin(17,0) dcl 29 set ref 46* 47 47 48 48 49 49 tcdp1 000014 internal static pointer dcl 38 set ref 55* 64 tcdp2 000016 internal static pointer dcl 38 set ref 55* 64 81 83 tcm based structure level 1 dcl 2-11 thrash 000104 automatic fixed bin(17,0) dcl 26 set ref 85* 86 thrashing 15 based fixed bin(17,0) level 2 dcl 1-9 ref 85 85 time 000116 automatic fixed bin(71,0) dcl 31 set ref 67* 70 71 tp 000114 automatic pointer dcl 30 set ref 46* 47 47 48 48 49 unique 000020 internal static fixed bin(17,0) initial dcl 39 set ref 54 55* 62* 63* 102* wct_entry based structure level 1 dcl 2-260 working_set_addend 347 based fixed bin(18,0) level 2 dcl 2-11 set ref 83* working_set_factor 307 based fixed bin(35,18) level 2 dcl 2-11 set ref 81* ws_size 000103 automatic fixed bin(17,0) dcl 26 set ref 77* 78 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VCPU_RESPONSE_BOUNDS internal static fixed bin(17,0) initial dcl 2-308 lock_ptr automatic pointer dcl 3-11 sst_seg$ external static fixed bin(17,0) dcl 1-6 sstp automatic pointer dcl 1-7 tcmp automatic pointer dcl 2-9 wctep automatic pointer dcl 2-258 NAMES DECLARED BY EXPLICIT CONTEXT. post_purge_meters 000203 constant entry external dcl 11 ppm 000173 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1206 1250 1073 1216 Length 1512 1073 42 225 113 12 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ppm 146 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 sstp1 ppm 000012 sstp2 ppm 000014 tcdp1 ppm 000016 tcdp2 ppm 000020 unique ppm STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ppm 000100 i ppm 000101 count ppm 000102 list_size ppm 000103 ws_size ppm 000104 thrash ppm 000105 in_core ppm 000106 purges ppm 000107 reset_sw ppm 000110 rps ppm 000111 code ppm 000112 tc ppm 000114 tp ppm 000116 time ppm 000120 ftime ppm 000121 pc ppm 000122 ave ppm 000123 ave_time ppm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return ext_entry divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr ioa_ meter_util_$fill_buffers meter_util_$get_buffers meter_util_$reset meter_util_$time NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 000000 aa 160 157 163 164 post 000001 aa 137 160 165 162 _pur 000002 aa 147 145 137 155 ge_m 000003 aa 145 164 145 162 eter 000004 aa 163 000 000 000 s 000005 aa 524000000001 000006 aa 524000000016 000007 aa 524000000045 000010 aa 414000000021 000011 aa 524000000046 000012 aa 524000000033 000013 aa 404000000022 000014 aa 524000000027 000015 aa 404000220043 000016 aa 524000000031 000017 aa 524000000034 000020 aa 414000000033 000021 aa 524000000060 000022 aa 756406111565 000023 aa 524000000023 000024 aa 526000000000 000025 aa 524000000036 000026 aa 524000000021 000027 aa 404000000005 000030 aa 055 162 163 000 -rs 000031 aa 055 162 162 000 -rr 000032 aa 404000000021 000034 aa 055 162 145 163 -res 000035 aa 145 164 000 000 et 000036 aa 136 057 116 157 ^/No 000037 aa 040 141 143 164 act 000040 aa 151 166 151 164 ivit 000041 aa 171 056 000 000 y. 000042 aa 055 162 145 160 -rep 000043 aa 157 162 164 137 ort_ 000044 aa 162 145 163 145 rese 000045 aa 164 000 000 000 t 000046 aa 103 141 156 156 Cann 000047 aa 157 164 040 147 ot g 000050 aa 145 164 040 142 et b 000051 aa 165 146 146 145 uffe 000052 aa 162 163 056 000 rs. 000053 aa 127 157 162 153 Work 000054 aa 151 156 147 040 ing 000055 aa 163 145 164 040 set 000056 aa 141 144 144 145 adde 000057 aa 156 144 136 055 nd^- 000060 aa 136 070 144 000 ^8d 000061 aa 124 150 162 141 Thra 000062 aa 163 150 151 156 shin 000063 aa 147 040 160 145 g pe 000064 aa 162 143 145 156 rcen 000065 aa 164 141 147 145 tage 000066 aa 136 070 056 062 ^8.2 000067 aa 146 040 045 000 f % 000070 aa 127 157 162 153 Work 000071 aa 151 156 147 040 ing 000072 aa 163 145 164 040 set 000073 aa 146 141 143 164 fact 000074 aa 157 162 136 055 or^- 000075 aa 136 070 056 062 ^8.2 000076 aa 146 000 000 000 f 000077 aa 101 166 145 040 Ave 000100 aa 167 157 162 153 work 000101 aa 151 156 147 040 ing 000102 aa 163 145 164 136 set^ 000103 aa 055 136 070 056 -^8. 000104 aa 062 146 040 160 2f p 000105 aa 141 147 145 163 ages 000106 aa 101 166 145 040 Ave 000107 aa 154 151 163 164 list 000110 aa 040 163 151 172 siz 000111 aa 145 136 055 136 e^-^ 000112 aa 070 056 062 146 8.2f 000113 aa 040 145 156 164 ent 000114 aa 162 151 145 163 ries 000115 aa 125 156 162 145 Unre 000116 aa 143 157 147 156 cogn 000117 aa 151 172 145 144 ized 000120 aa 040 157 160 164 opt 000121 aa 151 157 156 040 ion 000122 aa 136 141 040 151 ^a i 000123 aa 147 156 157 162 gnor 000124 aa 145 144 000 000 ed 000125 aa 101 166 145 040 Ave 000126 aa 160 157 163 164 post 000127 aa 040 160 165 162 pur 000130 aa 147 145 163 136 ges^ 000131 aa 055 136 070 056 -^8. 000132 aa 062 146 040 040 2f 000133 aa 040 040 040 040 000134 aa 040 050 136 056 (^. 000135 aa 062 146 040 045 2f % 000136 aa 051 000 000 000 ) 000137 aa 101 166 145 040 Ave 000140 aa 160 157 163 164 post 000141 aa 040 151 156 040 in 000142 aa 143 157 162 145 core 000143 aa 136 055 136 070 ^-^8 000144 aa 056 062 146 040 .2f 000145 aa 040 040 040 040 000146 aa 040 040 050 136 (^ 000147 aa 056 062 146 040 .2f 000150 aa 045 051 000 000 %) 000151 aa 136 057 120 157 ^/Po 000152 aa 163 164 040 160 st p 000153 aa 165 162 147 145 urge 000154 aa 040 164 151 155 tim 000155 aa 145 136 055 136 e^-^ 000156 aa 070 056 062 146 8.2f 000157 aa 040 155 163 145 mse 000160 aa 143 056 040 050 c. ( 000161 aa 136 056 062 146 ^.2f 000162 aa 045 040 157 146 % of 000163 aa 040 163 171 163 sys 000164 aa 164 145 155 051 tem) BEGIN PROCEDURE ppm PROLOGUE SEQUENCE 000165 aa 6 00124 4401 00 sxl0 pr6|84 STATEMENT 1 ON LINE 27 000166 aa 6 00107 4501 00 stz pr6|71 reset_sw 000167 aa 6 00110 4501 00 stz pr6|72 rps 000170 aa 6 00124 7201 00 lxl0 pr6|84 000171 aa 000000 7100 10 tra 0,0 MAIN SEQUENCE ENTRY TO ppm STATEMENT 1 ON LINE 11 post_purge_meters: ppm: proc; 000172 da 000104200000 000173 aa 000240 6270 00 eax7 160 000174 aa 7 00034 3521 20 epp2 pr7|28,* 000175 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000176 aa 000000000000 000177 aa 000000000000 000200 aa 777765 7000 04 tsx0 -11,ic 000165 000201 aa 000010 7100 04 tra 8,ic 000211 ENTRY TO post_purge_meters STATEMENT 1 ON LINE 11 post_purge_meters: ppm: proc; 000202 da 000107200000 000203 aa 000240 6270 00 eax7 160 000204 aa 7 00034 3521 20 epp2 pr7|28,* 000205 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000206 aa 000000000000 000207 aa 000000000000 000210 aa 777755 7000 04 tsx0 -19,ic 000165 STATEMENT 1 ON LINE 45 do i = 1 to cu_$arg_count (); 000211 aa 6 00125 3521 00 epp2 pr6|85 000212 aa 6 00130 2521 00 spri2 pr6|88 000213 aa 6 00126 6211 00 eax1 pr6|86 000214 aa 004000 4310 07 fld 2048,dl 000215 aa 6 00044 3701 20 epp4 pr6|36,* 000216 la 4 00022 3521 20 epp2 pr4|18,* cu_$arg_count 000217 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 000220 aa 000001 2360 07 ldq 1,dl 000221 aa 6 00100 7561 00 stq pr6|64 i 000222 aa 6 00100 2361 00 ldq pr6|64 i 000223 aa 6 00125 1161 00 cmpq pr6|85 000224 aa 000113 6054 04 tpnz 75,ic 000337 STATEMENT 1 ON LINE 46 call cu_$arg_ptr (i, tp, tc, code); 000225 aa 6 00100 3521 00 epp2 pr6|64 i 000226 aa 6 00134 2521 00 spri2 pr6|92 000227 aa 6 00114 3521 00 epp2 pr6|76 tp 000230 aa 6 00136 2521 00 spri2 pr6|94 000231 aa 6 00112 3521 00 epp2 pr6|74 tc 000232 aa 6 00140 2521 00 spri2 pr6|96 000233 aa 6 00111 3521 00 epp2 pr6|73 code 000234 aa 6 00142 2521 00 spri2 pr6|98 000235 aa 6 00132 6211 00 eax1 pr6|90 000236 aa 020000 4310 07 fld 8192,dl 000237 aa 6 00044 3701 20 epp4 pr6|36,* 000240 la 4 00024 3521 20 epp2 pr4|20,* cu_$arg_ptr 000241 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 47 if targ = "-report_reset" | targ = "-rr" then reset_sw, rps = "1"b; 000242 aa 6 00114 3735 20 epp7 pr6|76,* tp 000243 aa 6 00112 7271 00 lxl7 pr6|74 tc 000244 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000245 aa 7 00000 00 0017 desc9a pr7|0,x7 targ 000246 aa 777576 00 0015 desc9a -130,13 000042 = 055162145160 000247 aa 000005 6000 04 tze 5,ic 000254 000250 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000251 aa 7 00000 00 0017 desc9a pr7|0,x7 targ 000252 aa 777561 00 0003 desc9a -143,3 000031 = 055162162000 000253 aa 000005 6010 04 tnz 5,ic 000260 000254 aa 400000 2350 03 lda 131072,du 000255 aa 6 00107 7551 00 sta pr6|71 reset_sw 000256 aa 6 00110 7551 00 sta pr6|72 rps 000257 aa 000056 7100 04 tra 46,ic 000335 STATEMENT 1 ON LINE 48 else if targ = "-reset" | targ = "-rs" then reset_sw = "1"b; 000260 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000261 aa 7 00000 00 0017 desc9a pr7|0,x7 targ 000262 aa 777554 00 0006 desc9a -148,6 000034 = 055162145163 000263 aa 000005 6000 04 tze 5,ic 000270 000264 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000265 aa 7 00000 00 0017 desc9a pr7|0,x7 targ 000266 aa 777544 00 0003 desc9a -156,3 000030 = 055162163000 000267 aa 000004 6010 04 tnz 4,ic 000273 000270 aa 400000 2350 03 lda 131072,du 000271 aa 6 00107 7551 00 sta pr6|71 reset_sw 000272 aa 000043 7100 04 tra 35,ic 000335 STATEMENT 1 ON LINE 49 else call com_err_ (0, (myname), "Unrecognized option ^a ignored", targ); 000273 aa 6 00112 2361 00 ldq pr6|74 tc 000274 aa 526000 2760 03 orq 175104,du 000275 aa 6 00144 7561 00 stq pr6|100 000276 aa 6 00145 4501 00 stz pr6|101 000277 aa 777501 2370 04 ldaq -191,ic 000000 = 160157163164 137160165162 000300 aa 6 00132 7571 00 staq pr6|90 000301 aa 777501 2370 04 ldaq -191,ic 000002 = 147145137155 145164145162 000302 aa 6 00134 7571 00 staq pr6|92 000303 aa 163000 2350 03 lda 58880,du 000304 aa 6 00136 7551 00 sta pr6|94 000305 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000306 aa 777610 00 0040 desc9a -120,32 000115 = 125156162145 000307 aa 6 00146 00 0040 desc9a pr6|102,32 000310 aa 6 00145 3521 00 epp2 pr6|101 000311 aa 6 00160 2521 00 spri2 pr6|112 000312 aa 6 00132 3521 00 epp2 pr6|90 000313 aa 6 00162 2521 00 spri2 pr6|114 000314 aa 6 00146 3521 00 epp2 pr6|102 000315 aa 6 00164 2521 00 spri2 pr6|116 000316 aa 7 00000 3521 00 epp2 pr7|0 targ 000317 aa 6 00166 2521 00 spri2 pr6|118 000320 aa 777507 3520 04 epp2 -185,ic 000027 = 404000000005 000321 aa 6 00170 2521 00 spri2 pr6|120 000322 aa 777504 3520 04 epp2 -188,ic 000026 = 524000000021 000323 aa 6 00172 2521 00 spri2 pr6|122 000324 aa 777501 3520 04 epp2 -191,ic 000025 = 524000000036 000325 aa 6 00174 2521 00 spri2 pr6|124 000326 aa 6 00144 3521 00 epp2 pr6|100 000327 aa 6 00176 2521 00 spri2 pr6|126 000330 aa 6 00156 6211 00 eax1 pr6|110 000331 aa 020000 4310 07 fld 8192,dl 000332 aa 6 00044 3701 20 epp4 pr6|36,* 000333 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 000334 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 50 end; 000335 aa 6 00100 0541 00 aos pr6|64 i 000336 aa 777664 7100 04 tra -76,ic 000222 STATEMENT 1 ON LINE 52 if ^reset_sw then rps = "1"b; 000337 aa 6 00107 2351 00 lda pr6|71 reset_sw 000340 aa 000003 6010 04 tnz 3,ic 000343 000341 aa 400000 2350 03 lda 131072,du 000342 aa 6 00110 7551 00 sta pr6|72 rps STATEMENT 1 ON LINE 54 if unique = 0 then do; 000343 aa 6 00044 3701 20 epp4 pr6|36,* 000344 ia 4 00020 2361 00 ldq pr4|16 unique 000345 aa 000062 6010 04 tnz 50,ic 000427 STATEMENT 1 ON LINE 55 call meter_util_$get_buffers (unique, sstp1, sstp2, tcdp1, tcdp2, code); 000346 ia 4 00020 3521 00 epp2 pr4|16 unique 000347 aa 6 00160 2521 00 spri2 pr6|112 000350 ia 4 00010 3521 00 epp2 pr4|8 sstp1 000351 aa 6 00162 2521 00 spri2 pr6|114 000352 ia 4 00012 3521 00 epp2 pr4|10 sstp2 000353 aa 6 00164 2521 00 spri2 pr6|116 000354 ia 4 00014 3521 00 epp2 pr4|12 tcdp1 000355 aa 6 00166 2521 00 spri2 pr6|118 000356 ia 4 00016 3521 00 epp2 pr4|14 tcdp2 000357 aa 6 00170 2521 00 spri2 pr6|120 000360 aa 6 00111 3521 00 epp2 pr6|73 code 000361 aa 6 00172 2521 00 spri2 pr6|122 000362 aa 6 00156 6211 00 eax1 pr6|110 000363 aa 030000 4310 07 fld 12288,dl 000364 la 4 00026 3521 20 epp2 pr4|22,* meter_util_$get_buffers 000365 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 56 if code ^= 0 then do; 000366 aa 6 00111 2361 00 ldq pr6|73 code 000367 aa 000040 6000 04 tze 32,ic 000427 STATEMENT 1 ON LINE 57 call com_err_ (0, (myname), "Cannot get buffers."); 000370 aa 6 00144 4501 00 stz pr6|100 000371 aa 777407 2370 04 ldaq -249,ic 000000 = 160157163164 137160165162 000372 aa 6 00146 7571 00 staq pr6|102 000373 aa 777407 2370 04 ldaq -249,ic 000002 = 147145137155 145164145162 000374 aa 6 00150 7571 00 staq pr6|104 000375 aa 163000 2350 03 lda 58880,du 000376 aa 6 00152 7551 00 sta pr6|106 000377 aa 777447 2370 04 ldaq -217,ic 000046 = 103141156156 157164040147 000400 aa 6 00132 7571 00 staq pr6|90 000401 aa 777447 2370 04 ldaq -217,ic 000050 = 145164040142 165146146145 000402 aa 6 00134 7571 00 staq pr6|92 000403 aa 777447 2350 04 lda -217,ic 000052 = 162163056000 000404 aa 6 00136 7551 00 sta pr6|94 000405 aa 6 00144 3521 00 epp2 pr6|100 000406 aa 6 00160 2521 00 spri2 pr6|112 000407 aa 6 00146 3521 00 epp2 pr6|102 000410 aa 6 00162 2521 00 spri2 pr6|114 000411 aa 6 00132 3521 00 epp2 pr6|90 000412 aa 6 00164 2521 00 spri2 pr6|116 000413 aa 777414 3520 04 epp2 -244,ic 000027 = 404000000005 000414 aa 6 00166 2521 00 spri2 pr6|118 000415 aa 777411 3520 04 epp2 -247,ic 000026 = 524000000021 000416 aa 6 00170 2521 00 spri2 pr6|120 000417 aa 777404 3520 04 epp2 -252,ic 000023 = 524000000023 000420 aa 6 00172 2521 00 spri2 pr6|122 000421 aa 6 00156 6211 00 eax1 pr6|110 000422 aa 014000 4310 07 fld 6144,dl 000423 aa 6 00044 3701 20 epp4 pr6|36,* 000424 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 000425 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 58 return; 000426 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 59 end; STATEMENT 1 ON LINE 60 end; STATEMENT 1 ON LINE 62 call meter_util_$fill_buffers (unique); 000427 aa 6 00044 3701 20 epp4 pr6|36,* 000430 ia 4 00020 3521 00 epp2 pr4|16 unique 000431 aa 6 00130 2521 00 spri2 pr6|88 000432 aa 6 00126 6211 00 eax1 pr6|86 000433 aa 004000 4310 07 fld 2048,dl 000434 la 4 00030 3521 20 epp2 pr4|24,* meter_util_$fill_buffers 000435 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 63 call meter_util_$time (unique, ftime); 000436 aa 6 00044 3701 20 epp4 pr6|36,* 000437 ia 4 00020 3521 00 epp2 pr4|16 unique 000440 aa 6 00150 2521 00 spri2 pr6|104 000441 aa 6 00120 3521 00 epp2 pr6|80 ftime 000442 aa 6 00152 2521 00 spri2 pr6|106 000443 aa 6 00146 6211 00 eax1 pr6|102 000444 aa 010000 4310 07 fld 4096,dl 000445 la 4 00032 3521 20 epp2 pr4|26,* meter_util_$time 000446 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 64 ftime = tcdp2 -> tcm.processor_time - tcdp1 -> tcm.processor_time; 000447 aa 6 00044 3701 20 epp4 pr6|36,* 000450 ia 4 00016 3735 20 epp7 pr4|14,* tcdp2 000451 aa 7 00042 2371 00 ldaq pr7|34 tcm.processor_time 000452 ia 4 00014 3715 20 epp5 pr4|12,* tcdp1 000453 aa 5 00042 1771 00 sbaq pr5|34 tcm.processor_time 000454 aa 216000 4110 03 lde 72704,du 000455 aa 400000 4750 03 fad 131072,du 000456 aa 6 00120 4551 00 fst pr6|80 ftime STATEMENT 1 ON LINE 66 if rps then do; 000457 aa 6 00110 2351 00 lda pr6|72 rps 000460 aa 000366 6000 04 tze 246,ic 001046 STATEMENT 1 ON LINE 67 time = sstp2 -> sst.post_purge_time - sstp1 -> sst.post_purge_time; 000461 ia 4 00012 3535 20 epp3 pr4|10,* sstp2 000462 aa 3 00012 2371 00 ldaq pr3|10 sst.post_purge_time 000463 ia 4 00010 3515 20 epp1 pr4|8,* sstp1 000464 aa 1 00012 1771 00 sbaq pr1|10 sst.post_purge_time 000465 aa 6 00116 7571 00 staq pr6|78 time STATEMENT 1 ON LINE 68 count = sstp2 -> sst.post_purge_calls - sstp1 -> sst.post_purge_calls; 000466 aa 3 00167 2361 00 ldq pr3|119 sst.post_purge_calls 000467 aa 1 00167 1761 00 sbq pr1|119 sst.post_purge_calls 000470 aa 6 00101 7561 00 stq pr6|65 count STATEMENT 1 ON LINE 69 if count > 0 then do; 000471 aa 000341 6044 04 tmoz 225,ic 001032 STATEMENT 1 ON LINE 70 ave_time = 1e-3*time/count; 000472 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000473 aa 6 00200 4571 00 dfst pr6|128 000474 aa 6 00116 2371 00 ldaq pr6|78 time 000475 aa 216000 4110 03 lde 72704,du 000476 aa 400000 4750 03 fad 131072,du 000477 aa 6 00202 4571 00 dfst pr6|130 000500 aa 777322 4610 04 fmp -302,ic 000022 = 756406111565 000501 aa 6 00200 5671 00 dfdv pr6|128 000502 aa 6 00123 4551 00 fst pr6|83 ave_time STATEMENT 1 ON LINE 71 pc = 1e2*time/ftime; 000503 aa 6 00120 4311 00 fld pr6|80 ftime 000504 aa 6 00200 4571 00 dfst pr6|128 ftime 000505 aa 016620 4310 03 fld 7568,du 000506 aa 6 00202 4631 00 dfmp pr6|130 000507 aa 6 00200 5671 00 dfdv pr6|128 ftime 000510 aa 6 00121 4551 00 fst pr6|81 pc STATEMENT 1 ON LINE 72 call ioa_ ("^/Post purge time^-^8.2f msec. (^.2f% of system)", ave_time, pc); 000511 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000512 aa 777440 00 0060 desc9a -224,48 000151 = 136057120157 000513 aa 6 00156 00 0060 desc9a pr6|110,48 000514 aa 6 00156 3521 00 epp2 pr6|110 000515 aa 6 00206 2521 00 spri2 pr6|134 000516 aa 6 00123 3521 00 epp2 pr6|83 ave_time 000517 aa 6 00210 2521 00 spri2 pr6|136 000520 aa 6 00121 3521 00 epp2 pr6|81 pc 000521 aa 6 00212 2521 00 spri2 pr6|138 000522 aa 777277 3520 04 epp2 -321,ic 000021 = 524000000060 000523 aa 6 00214 2521 00 spri2 pr6|140 000524 aa 777274 3520 04 epp2 -324,ic 000020 = 414000000033 000525 aa 6 00216 2521 00 spri2 pr6|142 000526 aa 6 00220 2521 00 spri2 pr6|144 000527 aa 6 00204 6211 00 eax1 pr6|132 000530 aa 014000 4310 07 fld 6144,dl 000531 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000532 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 73 list_size = sstp2 -> sst.post_list_size - sstp1 -> sst.post_list_size; 000533 aa 6 00044 3701 20 epp4 pr6|36,* 000534 ia 4 00012 3735 20 epp7 pr4|10,* sstp2 000535 aa 7 00165 2361 00 ldq pr7|117 sst.post_list_size 000536 ia 4 00010 3715 20 epp5 pr4|8,* sstp1 000537 aa 5 00165 1761 00 sbq pr5|117 sst.post_list_size 000540 aa 6 00102 7561 00 stq pr6|66 list_size STATEMENT 1 ON LINE 74 ave = list_size/count; 000541 aa 6 00101 3521 00 epp2 pr6|65 count 000542 aa 0 01262 7001 00 tsx0 pr0|690 divide_fx1 000543 aa 000000000066 000544 aa 042000 4110 03 lde 17408,du 000545 aa 400000 4750 03 fad 131072,du 000546 aa 6 00122 4551 00 fst pr6|82 ave STATEMENT 1 ON LINE 75 call ioa_ ("Ave list size^-^8.2f entries", ave); 000547 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000550 aa 777337 00 0034 desc9a -289,28 000106 = 101166145040 000551 aa 6 00146 00 0034 desc9a pr6|102,28 000552 aa 6 00146 3521 00 epp2 pr6|102 000553 aa 6 00134 2521 00 spri2 pr6|92 000554 aa 6 00122 3521 00 epp2 pr6|82 ave 000555 aa 6 00136 2521 00 spri2 pr6|94 000556 aa 777241 3520 04 epp2 -351,ic 000017 = 524000000034 000557 aa 6 00140 2521 00 spri2 pr6|96 000560 aa 777240 3520 04 epp2 -352,ic 000020 = 414000000033 000561 aa 6 00142 2521 00 spri2 pr6|98 000562 aa 6 00132 6211 00 eax1 pr6|90 000563 aa 010000 4310 07 fld 4096,dl 000564 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000565 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 77 ws_size = sstp2 -> sst.pre_page_size - sstp1 -> sst.pre_page_size; 000566 aa 6 00044 3701 20 epp4 pr6|36,* 000567 ia 4 00012 3735 20 epp7 pr4|10,* sstp2 000570 aa 7 00164 2361 00 ldq pr7|116 sst.pre_page_size 000571 ia 4 00010 3715 20 epp5 pr4|8,* sstp1 000572 aa 5 00164 1761 00 sbq pr5|116 sst.pre_page_size 000573 aa 6 00103 7561 00 stq pr6|67 ws_size STATEMENT 1 ON LINE 78 ave = ws_size/count; 000574 aa 6 00101 3521 00 epp2 pr6|65 count 000575 aa 0 01262 7001 00 tsx0 pr0|690 divide_fx1 000576 aa 000000000066 000577 aa 042000 4110 03 lde 17408,du 000600 aa 400000 4750 03 fad 131072,du 000601 aa 6 00122 4551 00 fst pr6|82 ave STATEMENT 1 ON LINE 79 call ioa_ ("Ave working set^-^8.2f pages", ave); 000602 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000603 aa 777275 00 0034 desc9a -323,28 000077 = 101166145040 000604 aa 6 00146 00 0034 desc9a pr6|102,28 000605 aa 6 00146 3521 00 epp2 pr6|102 000606 aa 6 00134 2521 00 spri2 pr6|92 000607 aa 6 00122 3521 00 epp2 pr6|82 ave 000610 aa 6 00136 2521 00 spri2 pr6|94 000611 aa 777206 3520 04 epp2 -378,ic 000017 = 524000000034 000612 aa 6 00140 2521 00 spri2 pr6|96 000613 aa 777205 3520 04 epp2 -379,ic 000020 = 414000000033 000614 aa 6 00142 2521 00 spri2 pr6|98 000615 aa 6 00132 6211 00 eax1 pr6|90 000616 aa 010000 4310 07 fld 4096,dl 000617 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000620 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 81 call ioa_ ("Working set factor^-^8.2f", tcdp2 -> tcm.working_set_factor); 000621 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000622 aa 777247 00 0034 desc9a -345,28 000070 = 127157162153 000623 aa 6 00146 00 0034 desc9a pr6|102,28 000624 aa 6 00146 3521 00 epp2 pr6|102 000625 aa 6 00134 2521 00 spri2 pr6|92 000626 aa 6 00044 3701 20 epp4 pr6|36,* 000627 ia 4 00016 3735 20 epp7 pr4|14,* tcdp2 000630 aa 7 00307 3521 00 epp2 pr7|199 tcm.working_set_factor 000631 aa 6 00136 2521 00 spri2 pr6|94 000632 aa 777164 3520 04 epp2 -396,ic 000016 = 524000000031 000633 aa 6 00140 2521 00 spri2 pr6|96 000634 aa 777161 3520 04 epp2 -399,ic 000015 = 404000220043 000635 aa 6 00142 2521 00 spri2 pr6|98 000636 aa 6 00132 6211 00 eax1 pr6|90 000637 aa 010000 4310 07 fld 4096,dl 000640 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000641 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 83 call ioa_ ("Working set addend^-^8d", tcdp2 -> tcm.working_set_addend); 000642 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000643 aa 777211 00 0030 desc9a -375,24 000053 = 127157162153 000644 aa 6 00146 00 0030 desc9a pr6|102,24 000645 aa 6 00146 3521 00 epp2 pr6|102 000646 aa 6 00134 2521 00 spri2 pr6|92 000647 aa 6 00044 3701 20 epp4 pr6|36,* 000650 ia 4 00016 3735 20 epp7 pr4|14,* tcdp2 000651 aa 7 00347 3521 00 epp2 pr7|231 tcm.working_set_addend 000652 aa 6 00136 2521 00 spri2 pr6|94 000653 aa 777141 3520 04 epp2 -415,ic 000014 = 524000000027 000654 aa 6 00140 2521 00 spri2 pr6|96 000655 aa 777136 3520 04 epp2 -418,ic 000013 = 404000000022 000656 aa 6 00142 2521 00 spri2 pr6|98 000657 aa 6 00132 6211 00 eax1 pr6|90 000660 aa 010000 4310 07 fld 4096,dl 000661 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000662 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 85 thrash = sstp2 -> sst.thrashing - sstp1 -> sst.thrashing; 000663 aa 6 00044 3701 20 epp4 pr6|36,* 000664 ia 4 00012 3735 20 epp7 pr4|10,* sstp2 000665 aa 7 00015 2361 00 ldq pr7|13 sst.thrashing 000666 ia 4 00010 3715 20 epp5 pr4|8,* sstp1 000667 aa 5 00015 1761 00 sbq pr5|13 sst.thrashing 000670 aa 6 00104 7561 00 stq pr6|68 thrash STATEMENT 1 ON LINE 86 ave = 1e2*thrash/list_size; 000671 aa 6 00102 2361 00 ldq pr6|66 list_size 000672 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000673 aa 6 00144 4551 00 fst pr6|100 000674 aa 6 00104 2361 00 ldq pr6|68 thrash 000675 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000676 aa 016620 4610 03 fmp 7568,du 000677 aa 6 00144 5651 00 fdv pr6|100 000700 aa 6 00122 4551 00 fst pr6|82 ave STATEMENT 1 ON LINE 87 call ioa_ ("Thrashing percentage^8.2f %", ave); 000701 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000702 aa 777160 00 0034 desc9a -400,28 000061 = 124150162141 000703 aa 6 00146 00 0034 desc9a pr6|102,28 000704 aa 6 00146 3521 00 epp2 pr6|102 000705 aa 6 00134 2521 00 spri2 pr6|92 000706 aa 6 00122 3521 00 epp2 pr6|82 ave 000707 aa 6 00136 2521 00 spri2 pr6|94 000710 aa 777102 3520 04 epp2 -446,ic 000012 = 524000000033 000711 aa 6 00140 2521 00 spri2 pr6|96 000712 aa 777106 3520 04 epp2 -442,ic 000020 = 414000000033 000713 aa 6 00142 2521 00 spri2 pr6|98 000714 aa 6 00132 6211 00 eax1 pr6|90 000715 aa 010000 4310 07 fld 4096,dl 000716 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000717 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 89 in_core = sstp2 -> sst.post_in_core - sstp1 -> sst.post_in_core; 000720 aa 6 00044 3701 20 epp4 pr6|36,* 000721 ia 4 00012 3735 20 epp7 pr4|10,* sstp2 000722 aa 7 00014 2361 00 ldq pr7|12 sst.post_in_core 000723 ia 4 00010 3715 20 epp5 pr4|8,* sstp1 000724 aa 5 00014 1761 00 sbq pr5|12 sst.post_in_core 000725 aa 6 00105 7561 00 stq pr6|69 in_core STATEMENT 1 ON LINE 90 ave = in_core/count; 000726 aa 6 00101 3521 00 epp2 pr6|65 count 000727 aa 0 01262 7001 00 tsx0 pr0|690 divide_fx1 000730 aa 000000000066 000731 aa 042000 4110 03 lde 17408,du 000732 aa 400000 4750 03 fad 131072,du 000733 aa 6 00122 4551 00 fst pr6|82 ave STATEMENT 1 ON LINE 91 call ioa_ ("Ave post in core^-^8.2f (^.2f %)", ave, 1e2*in_core/list_size); 000734 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000735 aa 777203 00 0050 desc9a -381,40 000137 = 101166145040 000736 aa 6 00132 00 0050 desc9a pr6|90,40 000737 aa 6 00105 2361 00 ldq pr6|69 in_core 000740 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000741 aa 016620 4610 03 fmp 7568,du 000742 aa 6 00144 5651 00 fdv pr6|100 000743 aa 6 00145 4551 00 fst pr6|101 000744 aa 6 00132 3521 00 epp2 pr6|90 000745 aa 6 00206 2521 00 spri2 pr6|134 000746 aa 6 00122 3521 00 epp2 pr6|82 ave 000747 aa 6 00210 2521 00 spri2 pr6|136 000750 aa 6 00145 3521 00 epp2 pr6|101 000751 aa 6 00212 2521 00 spri2 pr6|138 000752 aa 777037 3520 04 epp2 -481,ic 000011 = 524000000046 000753 aa 6 00214 2521 00 spri2 pr6|140 000754 aa 777044 3520 04 epp2 -476,ic 000020 = 414000000033 000755 aa 6 00216 2521 00 spri2 pr6|142 000756 aa 777032 3520 04 epp2 -486,ic 000010 = 414000000021 000757 aa 6 00220 2521 00 spri2 pr6|144 000760 aa 6 00204 6211 00 eax1 pr6|132 000761 aa 014000 4310 07 fld 6144,dl 000762 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 000763 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 93 purges = sstp2 -> sst.post_purgings - sstp1 -> sst.post_purgings; 000764 aa 6 00044 3701 20 epp4 pr6|36,* 000765 ia 4 00012 3735 20 epp7 pr4|10,* sstp2 000766 aa 7 00166 2361 00 ldq pr7|118 sst.post_purgings 000767 ia 4 00010 3715 20 epp5 pr4|8,* sstp1 000770 aa 5 00166 1761 00 sbq pr5|118 sst.post_purgings 000771 aa 6 00106 7561 00 stq pr6|70 purges STATEMENT 1 ON LINE 94 ave = purges/count; 000772 aa 6 00101 3521 00 epp2 pr6|65 count 000773 aa 0 01262 7001 00 tsx0 pr0|690 divide_fx1 000774 aa 000000000066 000775 aa 042000 4110 03 lde 17408,du 000776 aa 400000 4750 03 fad 131072,du 000777 aa 6 00122 4551 00 fst pr6|82 ave STATEMENT 1 ON LINE 95 if purges > 0 then call ioa_ ("Ave post purges^-^8.2f (^.2f %)", ave, 1e2*purges/list_size); 001000 aa 6 00106 2361 00 ldq pr6|70 purges 001001 aa 000045 6044 04 tmoz 37,ic 001046 001002 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001003 aa 777123 00 0050 desc9a -429,40 000125 = 101166145040 001004 aa 6 00132 00 0050 desc9a pr6|90,40 001005 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 001006 aa 016620 4610 03 fmp 7568,du 001007 aa 6 00144 5651 00 fdv pr6|100 001010 aa 6 00144 4551 00 fst pr6|100 001011 aa 6 00132 3521 00 epp2 pr6|90 001012 aa 6 00206 2521 00 spri2 pr6|134 001013 aa 6 00122 3521 00 epp2 pr6|82 ave 001014 aa 6 00210 2521 00 spri2 pr6|136 001015 aa 6 00144 3521 00 epp2 pr6|100 001016 aa 6 00212 2521 00 spri2 pr6|138 001017 aa 776770 3520 04 epp2 -520,ic 000007 = 524000000045 001020 aa 6 00214 2521 00 spri2 pr6|140 001021 aa 776777 3520 04 epp2 -513,ic 000020 = 414000000033 001022 aa 6 00216 2521 00 spri2 pr6|142 001023 aa 776765 3520 04 epp2 -523,ic 000010 = 414000000021 001024 aa 6 00220 2521 00 spri2 pr6|144 001025 aa 6 00204 6211 00 eax1 pr6|132 001026 aa 014000 4310 07 fld 6144,dl 001027 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 001030 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 96 end; 001031 aa 000015 7100 04 tra 13,ic 001046 STATEMENT 1 ON LINE 97 else call ioa_ ("^/No activity."); 001032 aa 777004 2370 04 ldaq -508,ic 000036 = 136057116157 040141143164 001033 aa 6 00126 7571 00 staq pr6|86 001034 aa 777004 2370 04 ldaq -508,ic 000040 = 151166151164 171056000000 001035 aa 6 00130 7571 00 staq pr6|88 001036 aa 6 00126 3521 00 epp2 pr6|86 001037 aa 6 00150 2521 00 spri2 pr6|104 001040 aa 776746 3520 04 epp2 -538,ic 000006 = 524000000016 001041 aa 6 00152 2521 00 spri2 pr6|106 001042 aa 6 00146 6211 00 eax1 pr6|102 001043 aa 004000 4310 07 fld 2048,dl 001044 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 001045 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 98 end; STATEMENT 1 ON LINE 100 call ioa_ (" "); 001046 aa 040000 2350 03 lda 16384,du 001047 aa 6 00144 7551 00 sta pr6|100 001050 aa 6 00144 3521 00 epp2 pr6|100 001051 aa 6 00150 2521 00 spri2 pr6|104 001052 aa 776733 3520 04 epp2 -549,ic 000005 = 524000000001 001053 aa 6 00152 2521 00 spri2 pr6|106 001054 aa 6 00146 6211 00 eax1 pr6|102 001055 aa 004000 4310 07 fld 2048,dl 001056 aa 6 00044 3701 20 epp4 pr6|36,* 001057 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 001060 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 102 if reset_sw then call meter_util_$reset (unique); 001061 aa 6 00107 2351 00 lda pr6|71 reset_sw 001062 aa 000010 6000 04 tze 8,ic 001072 001063 aa 6 00044 3701 20 epp4 pr6|36,* 001064 ia 4 00020 3521 00 epp2 pr4|16 unique 001065 aa 6 00130 2521 00 spri2 pr6|88 001066 aa 6 00126 6211 00 eax1 pr6|86 001067 aa 004000 4310 07 fld 2048,dl 001070 la 4 00034 3521 20 epp2 pr4|28,* meter_util_$reset 001071 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 103 return; 001072 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 110 end; END PROCEDURE ppm ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved