COMPILATION LISTING OF SEGMENT spg_util_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/22/85 1525.2 mst Tue Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* Program to prepare metering information for SPG program. 7* 8* This program uses buffers set up by meter_util_ as called by spg 9* itself. These buffers are refernecd via the unique index passed to 10* this program through the reset entry. 11* 12* Modified March 1981 by J. Bongiovanni to fix segfault time computation 13* Modified November 1984 by M. Pandolf to include hc_lock. 14**/ 15 16 17 /* ****************************************************** 18* * * 19* * * 20* * Copyright (c) 1972 by Massachusetts Institute of * 21* * Technology and Honeywell Information Systems, Inc. * 22* * * 23* * * 24* ****************************************************** */ 25 26 27 spg_util_: proc (pzi, pnmpi, pmpi, pint, ptc, ppf, psf, puse_rz, px, string, length, chsw); 28 29 dcl pzi float bin, /* % zero idle time */ 30 pnmpi float bin, /* % nmp idle time */ 31 pmpi float bin, /* % mp idle time */ 32 pint float bin, /* % interrupt time */ 33 ptc float bin, /* % time in traffic controller */ 34 ppf float bin, /* % page fault time */ 35 psf float bin, /* % segfault time */ 36 puse_rz float bin, /* % time in ring 0 */ 37 px float bin, /* % paging interrupt time */ 38 string char (110), /* returned output string */ 39 length fixed bin, /* length of string */ 40 chsw fixed bin (1); /* nonzero if output to be printed */ 41 42 dcl unique fixed bin int static; 43 dcl (sstp1, sstp2, tcdp1, tcdp2) ptr static; 44 dcl time_rz fixed bin (52), 45 (meter_time, n_pf, n_pf_sf, 46 time_int_xd, time_pf, time_sf, time_tc) float; 47 dcl spg_ring_0_info_ entry (fixed bin (52)); 48 dcl ioa_$rsnnl entry options (variable); 49 50 dcl 1 cf aligned, /* config and tuning data */ 51 2 nproc fixed bin, /* number of CPUs */ 52 2 nused fixed bin (18), /* number of main memory pages used */ 53 2 min_eligible fixed bin (30), /* min number of eligible processes */ 54 2 max_eligible fixed bin (30), /* max number of eligible processes */ 55 2 working_set_addend fixed bin (18), /* additive working set parameter */ 56 2 working_set_factor fixed bin (35, 18), /* working set factor */ 57 2 tefirst fixed bin (30), /* first eligible time */ 58 2 telast fixed bin (30), /* last eligible time */ 59 2 timax fixed bin (35); /* time in queue for lowest level */ 60 61 dcl 1 iscf static aligned like cf; /* static copy of config and tuning data */ 62 63 dcl (divide, float, unspec) builtin; 64 65 66 67 /* check if configuration or tuning has changed */ 68 69 cf.nproc = tcdp2 -> tcm.ncpu; 70 cf.nused = sstp2 -> sst.nused; 71 cf.min_eligible = tcdp2 -> tcm.min_eligible; 72 cf.max_eligible = tcdp2 -> tcm.max_eligible; 73 cf.working_set_addend = tcdp2 -> tcm.working_set_addend; 74 cf.working_set_factor = tcdp2 -> tcm.working_set_factor; 75 cf.tefirst = tcdp2 -> tcm.tefirst; 76 cf.telast = tcdp2 -> tcm.telast; 77 cf.timax = tcdp2 -> tcm.timax; 78 79 chsw = 0; 80 if unspec (cf) ^= unspec (iscf) then do; /* If data changed ... */ 81 chsw = 1; /* set switch. */ 82 83 call ioa_$rsnnl ( 84 "^7xcpu= ^d, pages= ^d, min_e= ^d, max_e= ^d, wsa= ^d, wsf= ^.2f, tefirst= ^5.2f, telast= ^5.2f, timax= ^5.2f.", 85 string, length, 86 cf.nproc, cf.nused, 87 divide (cf.min_eligible, 262144, 17, 0), divide (cf.max_eligible, 262144, 17, 0), 88 cf.working_set_addend, float (cf.working_set_factor, 27), 89 cf.tefirst * 1.e-6, cf.telast * 1.e-6, cf.timax * 1.e-6); 90 91 unspec (iscf) = unspec (cf); /* Save new data. */ 92 end; 93 94 95 96 /* determine basic metering period */ 97 98 if tcdp2 -> tcm.processor_time = tcdp1 -> tcm.processor_time then do; 99 /* probably no access to ring-0 */ 100 pzi, pnmpi, pmpi, pint, ptc, ppf, psf, puse_rz, px = 0.0; 101 return; 102 end; 103 104 105 106 meter_time = (tcdp2 -> tcm.processor_time - tcdp1 -> tcm.processor_time) * 1.e-2; 107 108 /* compute idle times */ 109 110 pzi = (tcdp2 -> tcm.zero_idle - tcdp1 -> tcm.zero_idle) / meter_time; 111 pnmpi = (tcdp2 -> tcm.nmp_idle - tcdp1 -> tcm.nmp_idle) / meter_time; 112 pmpi = (tcdp2 -> tcm.mp_idle - tcdp1 -> tcm.mp_idle + 113 tcdp2 -> tcm.loading_idle - tcdp1 -> tcm.loading_idle) / meter_time; 114 115 /* compute info on interrupts, traffic controller, page faults, segment faults, and ring zero usage */ 116 117 time_int_xd = tcdp2 -> tcm.interrupt_time - tcdp1 -> tcm.interrupt_time; 118 pint = time_int_xd / meter_time; 119 px = 0.0; /* No diferentiation for paging interrupts */ 120 121 time_tc = (tcdp2 -> tcm.getwork_time - tcdp1 -> tcm.getwork_time); 122 ptc = time_tc / meter_time; 123 124 time_pf = tcdp2 -> tcm.cpu_pf_time - tcdp1 -> tcm.cpu_pf_time; 125 n_pf = tcdp2 -> tcm.cpu_pf_count - tcdp1 -> tcm.cpu_pf_count; 126 n_pf_sf = sstp2 -> sst.total_sf_pf - sstp1 -> sst.total_sf_pf; 127 ppf = time_pf / meter_time; 128 129 time_sf = sstp2 -> sst.cpu_sf_time - sstp1 -> sst.cpu_sf_time; 130 psf = time_sf / meter_time; 131 132 call spg_ring_0_info_ (time_rz); 133 puse_rz = time_rz / meter_time; 134 135 return; 136 137 138 139 /* reset entry point */ 140 141 reset: entry (unique_a, sstp1_a, sstp2_a, tcdp1_a, tcdp2_a); 142 143 dcl unique_a fixed bin, 144 (sstp1_a, sstp2_a, tcdp1_a, tcdp2_a) ptr; 145 146 unique = unique_a; /* copy args */ 147 sstp1 = sstp1_a; 148 sstp2 = sstp2_a; 149 tcdp1 = tcdp1_a; 150 tcdp2 = tcdp2_a; 151 unspec (iscf) = "0"b; 152 153 154 return; 155 156 157 1 1 /* BEGIN INCLUDE FILE ... tcm.incl.pl1 ... used to generate tc_data cds */ 1 2 /* NOTE -- This include file has TWO counterparts in ALM: tc_meters.incl.alm and */ 1 3 /* wcte.incl.alm. They cannot be produced with cif, and must be kept up to date manually. */ 1 4 /* Modified 830914 to replace tty_polling_time with opc_polling_time... -E. A. Ranzenbach */ 1 5 /* Modified 1984.05.21 by M. Pandolf to add tc_suspend_lock */ 1 6 /* Modified 1984.11.26 by Keith Loepere for uid_array. */ 1 7 /* Modified 1984.12.06 by Keith Loepere for page create delaying. */ 1 8 1 9 dcl tcmp ptr; 1 10 1 11 dcl 1 tcm aligned based (tcmp), 1 12 2 tc_suspend_lock like lock, /* when locked, tc is suspended */ 1 13 2 cid2 fixed bin (18), 1 14 2 cid3 fixed bin (18), 1 15 2 cid4 fixed bin (18), 1 16 2 depth_count fixed bin (18), /* depth last process run */ 1 17 2 loadings fixed bin (18), /* number of process loadings */ 1 18 1 19 2 blocks fixed bin (18), /* number of calls to block */ 1 20 2 wakeups fixed bin (18), /* number of calls to wakeup */ 1 21 2 waits fixed bin (18), /* number of calls to wait */ 1 22 2 notifies fixed bin (18), /* number of calls to notify */ 1 23 2 schedulings fixed bin (18), 1 24 2 interactions fixed bin (18), /* number of interactive schedulings */ 1 25 2 avequeue fixed bin (35, 18), /* recent time average of number in queue */ 1 26 2 te_wait fixed bin (18), /* times te called from wait */ 1 27 1 28 2 te_block fixed bin (18), /* times te updated from block */ 1 29 2 te_i_stop fixed bin (18), /* times te updated from i_stop */ 1 30 2 te_pre_empt fixed bin (18), /* times te updated from pre_empt */ 1 31 2 p_interactions fixed bin, /* times interaction bit turned off because of high priority */ 1 32 2 idle fixed bin (71), /* total idle time */ 1 33 2 mp_idle fixed bin (71), /* multi-programming idle */ 1 34 1 35 2 nmp_idle fixed bin (71), /* non-multi-programming idle time */ 1 36 2 zero_idle fixed bin (71), /* zero idle time */ 1 37 2 last_time fixed bin (71), /* last time a process was run */ 1 38 2 loop_locks fixed bin (18), /* times looped on the APT lock */ 1 39 2 loop_lock_time fixed bin (18), /* time looping on the APT lock */ 1 40 2 ave_eligible fixed bin (35, 18), /* average length of eligible queue */ 1 41 2 sort_to_elhead fixed bin (18), /* 0=> no one,1 => int've only, 2 => everybody */ 1 42 2 processor_time fixed bin (71), /* total processor time on system */ 1 43 2 response_time fixed bin (71), /* estimate of response time */ 1 44 2 eligible_time fixed bin (71), /* estimate of eligible time */ 1 45 2 response_count fixed bin, /* count of response meters */ 1 46 2 eligible_count fixed bin, /* count of eligible meters */ 1 47 2 quit_counts (0:5) fixed bin, /* array of buckets indexed by state */ 1 48 2 loading_idle fixed bin (71), /* loading_idle time */ 1 49 2 delta_vcpu fixed bin (71), /* delta virtual CPU time for the system */ 1 50 2 post_purge_switch fixed bin, /* ON if post purging is to be done */ 1 51 2 time_out_severity fixed bin, /* syserr first arg for notify time outs */ 1 52 2 notify_check fixed bin, /* obsolete */ 1 53 2 quit_priority fixed bin, /* factor for scheduler quit response */ 1 54 2 iobm_polling_time fixed bin (71), /* time to poll iobm */ 1 55 2 end_of_time fixed bin (71), /* very large time */ 1 56 2 gp_at_notify fixed bin (18), /* 0 => just do get_idle_processor */ 1 57 2 gp_at_ptlnotify fixed bin (18), /* 0 => just do get_idle_processor */ 1 58 2 int_q_enabled fixed bin (18), /* 0 => no intv q in percent mode */ 1 59 2 fnp_buffer_threshold fixed bin (18), /* if fewer free buffs then stingy alloc strategy */ 1 60 /* set this to >= half n_ttylines/fnp for safety */ 1 61 1 62 /* 100 octal */ 1 63 1 64 2 depths (8) fixed bin (18), /* histogram of run depths */ 1 65 2 tdepths (8) fixed bin (71), /* histogram of times run per depth */ 1 66 2 pfdepth (8) fixed bin (18), /* histogram of page faults per depth */ 1 67 1 68 2 ptl_not_waits fixed bin (18), /* times ptl_wait noticed ptl was unlocked */ 1 69 2 gw_gp_window_count fixed bin (18), /* times window noticed */ 1 70 2 metering_lock fixed bin (18), /* 0=locked, else unlocked */ 1 71 2 ptl_waits fixed bin (18), /* num calls to ptl_wait */ 1 72 2 gp_start_count fixed bin (18), /* to detect gw_gp window lossage */ 1 73 2 gp_done_count fixed bin (18), 1 74 2 nto_check_time fixed bin (71), /* next time at which nto code will be called */ 1 75 2 nto_delta fixed bin (35), /* microsec between nto checks */ 1 76 2 nto_count fixed bin (18), /* number of times nto detected */ 1 77 2 tcpu_scheduling fixed bin (18), /* obsolete */ 1 78 2 nto_event bit (36), /* last event which NTO'd */ 1 79 2 page_notifies fixed bin (18), 1 80 2 notify_nobody_count fixed bin (18), 1 81 2 notify_nobody_event bit (36), 1 82 2 system_type fixed bin, /* used to be tcm.inter */ 1 83 1 84 2 stat (0:15) fixed bin (18), /* num apte's in each state */ 1 85 1 86 /* 200 octal */ 1 87 1 88 2 wait (8), 1 89 3 time fixed bin (18), /* histogram of page fault waiting times versus did */ 1 90 3 count fixed bin (18), 1 91 1 92 2 ready (8), 1 93 3 time fixed bin (18), /* histogram of times in ready queue */ 1 94 3 count fixed bin (18), 1 95 1 96 2 total_pf_time fixed bin (71), /* total time spent from start to end of 1 97* all page faults */ 1 98 2 total_pf_count fixed bin (18), /* total number of page faults metered */ 1 99 2 auto_tune_ws fixed bin (18), /* 0=> dont, atherwise compensate for quantum len */ 1 100 2 ocore_delta fixed bin (18), /* number of pages reserved for int users */ 1 101 2 ws_sum fixed bin (18), /* total of eligible's ws_sizes */ 1 102 2 nonidle_force_count fixed bin (18), /* count of eligibilities forced */ 1 103 2 itt_list_lock bit (36) aligned, /* Lock on ITT free list */ 1 104 2 cpu_pf_time fixed bin (71), /* total cpu time spent handling page faults */ 1 105 2 cpu_pf_count fixed bin (18), /* total count of cpu time meterings */ 1 106 2 special_offsets unaligned, 1 107 3 apt_offset bit (18), 1 108 3 pad bit (18), 1 109 2 getwork_time fixed bin (71), /* total time spent in getwork */ 1 110 2 getwork_count fixed bin (18), /* total times through getwork */ 1 111 2 short_pf_count fixed bin (18), /* number of short page faults */ 1 112 2 interrupt_time fixed bin (71), /* total time spent in interrupt */ 1 113 2 interrupt_count fixed bin (71), /* total number of metered interrupts */ 1 114 2 ocore fixed bin (35, 18), /* fraction of core for int've users */ 1 115 2 pre_empt_flag bit (36) aligned, /* controls whether preempting at done time */ 1 116 2 cumulative_memory_usage fixed binary (71), /* total number of memory usage units */ 1 117 2 processor_time_at_define_wc fixed bin (71), /* value of processor_time when WC's last defined */ 1 118 2 boost_priority fixed bin, /* number of times priority process given high priority */ 1 119 2 lost_priority fixed bin, /* number of times priority process lost eligibility */ 1 120 2 total_clock_lag fixed bin (71), /* sum of all simulated clock delays */ 1 121 2 clock_simulations fixed bin, /* number of times alarm clock interrupt was simulated */ 1 122 2 max_clock_lag fixed bin, /* largest simulated alarm clock delay */ 1 123 1 124 /* 300 octal */ 1 125 1 126 2 pdscopyl fixed bin (18), /* amount of pds to copy for new process */ 1 127 2 max_hproc_segno fixed bin, /* largest allowed hardcore segment number */ 1 128 2 prds_length fixed bin (18), /* length of PRDS */ 1 129 2 pds_length fixed bin (18), /* length of PDS */ 1 130 2 lock fixed bin (18), /* process id generator lock */ 1 131 2 id bit (36) aligned, /* next uid to be added to uid_array */ 1 132 2 system_shutdown fixed bin (18), 1 133 2 working_set_factor fixed bin (35, 18), /* working set factor */ 1 134 1 135 2 ncpu fixed bin (18), /* number of processors currently being used */ 1 136 2 last_eligible bit (18), /* last process to gain eligibility */ 1 137 2 apt_lock fixed bin (35), /* + write; 0 hidden; -1 unlocked; -(N+1) Nreaders */ 1 138 2 apt_size fixed bin (18), /* number of APT entries */ 1 139 2 realtime_q aligned like based_sentinel, /* processes with realtime deadlines */ 1 140 2 aht_size fixed bin (18), /* APT hash table size */ 1 141 2 itt_size fixed bin (18), /* number of ITT entries */ 1 142 1 143 2 dst_size fixed bin (18), /* number of allowed DST entries */ 1 144 2 itt_free_list bit (18), /* pointer to ITT free list */ 1 145 2 used_itt fixed bin (18), /* number of used ITT entries */ 1 146 2 initializer_id bit (36) aligned, /* process id of initializer */ 1 147 2 n_eligible fixed bin (18), /* number of processes eligible */ 1 148 2 max_eligible fixed bin (30), /* maximum allowed number of eligible processes */ 1 149 2 wait_enable fixed bin (18), /* turned on when waiting mechanism works */ 1 150 2 apt_entry_size fixed bin (18), /* size of an APT entry */ 1 151 1 152 2 interactive_q aligned like based_sentinel, /* head of interactive queue */ 1 153 2 dst_ptr ptr, /* pointer to device signal table */ 1 154 2 old_user ptr, /* last process to run (apt ptr ) */ 1 155 2 initialize_time fixed bin (71), /* time of initialization */ 1 156 1 157 2 init_event fixed bin (18), /* wait event during initialization */ 1 158 2 oldt fixed bin (18), /* timer reading from previous process */ 1 159 2 newt fixed bin (18), /* timer setting for new process */ 1 160 2 tefirst fixed bin (30), /* first eligible time */ 1 161 2 telast fixed bin (30), /* last eligible time */ 1 162 2 timax fixed bin (35), /* time in queue for lowest level */ 1 163 2 empty_q bit (18), /* thread of empty APT entries */ 1 164 2 working_set_addend fixed bin (18), /* additive working set parameter */ 1 165 2 ready_q_head bit (0) aligned, /* for added segdef */ 1 166 2 eligible_q_head aligned like based_sentinel, /* head of eligible queue */ 1 167 2 ready_q_tail bit (0) aligned, /* for added segdef */ 1 168 2 eligible_q_tail aligned like based_sentinel, /* tail of eligible queue */ 1 169 2 idle_tail aligned like based_sentinel, /* tail of idle list */ 1 170 2 min_eligible fixed bin (30), 1 171 2 alarm_timer_list bit (18) aligned, /* rel pointer to apt entry for next alarm timer */ 1 172 2 guaranteed_elig_inc fixed bin (35), /* amount of guaranteed eligibility time in microsecs. */ 1 173 2 priority_sched_inc fixed bin (35), /* amount of block time before process is given priority */ 1 174 2 next_alarm_time fixed bin (71), /* clock time for next alarm timer */ 1 175 2 priority_sched_time fixed bin (71), /* time for priority process to be given priority */ 1 176 2 opc_polling_time fixed bin (71), /* time to poll console DIM */ 1 177 2 disk_polling_time fixed bin (71), /* time to poll disk DIM */ 1 178 2 tape_polling_time fixed bin (71), /* time to poll tape DIM */ 1 179 2 imp_polling_time fixed bin (71), /* time to poll imp */ 1 180 2 imp_polling_lock fixed bin (18), /* do not poll if lock set */ 1 181 2 max_channels fixed bin (18), /* num special channels per process */ 1 182 1 183 /* 400 octal */ 1 184 1 185 2 system_virtual_time fixed bin (71), /* non-idle virtual time */ 1 186 2 credit_bank fixed bin (71), /* credits not yet passed out */ 1 187 2 min_wct_index bit (18) aligned, /* offset of initializer work class table entry */ 1 188 2 max_wct_index bit (18) aligned, /* offset of highest wcte currently defined */ 1 189 2 delta_vt fixed bin (71), /* temp used by pxss.compute_virtual_clocks */ 1 190 2 gross_idle_time fixed bin (71), /* idle time_used_clock */ 1 191 2 credits_per_scatter fixed bin (35), /* total number of credits awarded at once */ 1 192 2 best_credit_value fixed bin (18), /* temp for pxss.find_next_eligible */ 1 193 2 define_wc_time fixed bin (71), /* clock time when workclasses last degined */ 1 194 2 max_batch_elig fixed bin (35), 1 195 2 num_batch_elig fixed bin (35), 1 196 2 deadline_mode fixed bin (35), /* 0=> ti sorts, else deadline sorts */ 1 197 2 credits_scattered fixed bin (35), 1 198 2 max_max_eligible fixed bin (30), /* Maximum of maxe */ 1 199 2 max_stopped_stack_0 fixed bin (35), /* Maximum stack_0's suspended by stopped procs */ 1 200 2 stopped_stack_0 fixed bin (35), /* Number stack_0's suspended by stopped procs */ 1 201 2 mos_polling_interval fixed bin (35), /* for heals */ 1 202 2 mos_polling_time fixed bin (71), /* for heals */ 1 203 2 vcpu_response_bounds (VCPU_RESPONSE_BOUNDS) fixed bin (35), 1 204 2 vcpu_response_bounds_size fixed bin (35), 1 205 2 meter_response_time_calls fixed bin (35), 1 206 2 meter_response_time_invalid fixed bin (35), 1 207 2 meter_response_time_overhead fixed bin (71), 1 208 2 init_wait_time fixed bin (71), /* used by wait/notify during initialization */ 1 209 2 init_wait_timeout fixed bin (71), /* notify-timeout interval during initialization */ 1 210 2 init_timeout_severity fixed bin, /* notify-timeout severity during initialization */ 1 211 2 init_timeout_recurse fixed bin, /* count of NTO recursion during initialization */ 1 212 2 max_timer_register fixed bin (71), /* max cpu burst = # cpus x pre_empt_sample_time */ 1 213 2 pre_empt_sample_time fixed bin (35), /* tuning parameter - max time between samples */ 1 214 2 governing_credit_bank fixed bin (35), /* used for limiting eligibility on governed work classes*/ 1 215 2 process_initial_quantum fixed bin (35), /* eligibility quantum first eligibility */ 1 216 2 default_procs_required bit (8) aligned, /* default mask of CPUs required */ 1 217 2 work_class_idle fixed bin (71), /* idle time due to work class restrictions */ 1 218 1 219 /* Tuning Parameters for Stack Truncation */ 1 220 1 221 2 stk_truncate bit (1) aligned, 1 222 2 stk_truncate_always bit (1) aligned, 1 223 2 stk_trunc_avg_f1 fixed bin (35, 18), 1 224 2 stk_trunc_avg_f2 fixed bin (35, 18), 1 225 2 lock_error_severity fixed bin, /* syserr severity */ 1 226 1 227 2 gv_integration fixed bin (35), /* Integration interval for governing */ 1 228 2 gv_integration_set bit (1) aligned, /* ON => gv_integration set by ctp */ 1 229 2 pauses fixed bin (35), /* Calls to pause (reschedule) */ 1 230 2 volmap_polling_time fixed bin (71), 1 231 2 next_ring0_timer fixed bin (71), /* next time that ring 0 timer goes off */ 1 232 2 realtime_io_priority_switch fixed bin, /* 0 => give I/O interrupt wakeups realtime priotiry */ 1 233 2 realtime_io_deadline fixed bin (35), /* Delta to clock for I/O realtime deadline */ 1 234 2 realtime_io_quantum fixed bin (35), /* Quantum for I/O realtime burst */ 1 235 2 realtime_priorities fixed bin (35), /* Count for metering */ 1 236 2 relinquishes fixed bin (35), /* Calls to relinquish_priority */ 1 237 2 abort_ips_mask bit (36) aligned, /* IPS mask for tc_util$check_abort */ 1 238 1 239 /* 500 octal */ 1 240 1 241 2 uid_array (0:15) bit (36) aligned, /* array from which a uid is chosen (randomly) */ 1 242 2 pad5 (176) fixed bin (35), /* room for expansion compatibly */ 1 243 1 244 /* 1000 octal */ 1 245 1 246 2 pad7 (64) fixed bin (35), 1 247 1 248 /* 1100 octal */ 1 249 1 250 2 pad6 (8) fixed bin (35), 1 251 2 work_class_table aligned, /* array of per workclass information */ 1 252 3 wcte (0:16) aligned like wct_entry, 1 253 1 254 /* 3000 octal */ 1 255 1 256 2 apt fixed bin; 1 257 1 258 dcl wctep ptr; 1 259 1 260 dcl 1 wct_entry aligned based (wctep), /* Work class entry */ 1 261 2 thread unaligned, /* Ready list */ 1 262 3 fp bit (18), /* Head of ready list */ 1 263 3 bp bit (18), /* Tail of ready list */ 1 264 2 flags unaligned, 1 265 3 mnbz bit (1), /* Sentinel bit must not be zero. */ 1 266 3 defined bit (1), 1 267 3 io_priority bit (1), 1 268 3 governed bit (1), 1 269 3 interactive_q bit (1), 1 270 3 pad bit (31), 1 271 2 credits fixed bin (35), /* Current worthiness of group */ 1 272 2 minf fixed bin (35), /* min fraction of cpu */ 1 273 2 pin_weight fixed bin (35), /* number of cycles to pin pages */ 1 274 2 eligibilities fixed bin (35), /* Count of eligibilities awarded */ 1 275 2 cpu_sum fixed bin (71), /* CPU used by members */ 1 276 2 resp1 fixed bin (71), 1 277 2 resp2 fixed bin (71), 1 278 2 quantum1 fixed bin (35), 1 279 2 quantum2 fixed bin (35), 1 280 2 rmeter1 fixed bin (71), 1 281 2 rmeter2 fixed bin (71), 1 282 2 rcount1 fixed bin (35), 1 283 2 rcount2 fixed bin (35), 1 284 2 realtime fixed bin (35), 1 285 2 purging fixed bin (35), 1 286 2 maxel fixed bin (35), 1 287 2 nel fixed bin (35), 1 288 2 number_thinks fixed bin (35), /* number times process entered "think" state */ 1 289 2 number_queues fixed bin (35), /* number times process entered "queued" state */ 1 290 2 total_think_time fixed bin (71), 1 291 2 total_queue_time fixed bin (71), 1 292 1 293 /* The next three arrays correspond to the array vcpu_response_bounds */ 1 294 1 295 2 number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35), /* number times entered "processing" state */ 1 296 2 total_processing_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 1 297 2 total_vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 1 298 2 maxf fixed bin (35), /* maximum fraction of cpu time */ 1 299 2 governing_credits fixed bin (35), /* for limiting cpu resources */ 1 300 2 pad1 (4) fixed bin (35); 1 301 1 302 1 303 dcl 1 based_sentinel aligned based, /* format of pxss-style sentinel */ 1 304 2 fp bit (18) unal, 1 305 2 bp bit (18) unal, 1 306 2 sentinel bit (36) aligned; 1 307 1 308 dcl VCPU_RESPONSE_BOUNDS fixed bin init (3) int static options (constant); 1 309 1 310 /* END INCLUDE FILE tcm.incl.pl1 */ 158 159 2 1 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 2 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 2 3* encourages name conflicts. 2 4* USE HC_FAST_LOCK INSTEAD! 2 5**/ 2 6 2 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 2 8 2 9 /* format: style3 */ 2 10 2 11 declare lock_ptr pointer; 2 12 declare 1 lock aligned based (lock_ptr), 2 13 2 pid bit (36) aligned, /* holder of lock */ 2 14 2 event bit (36) aligned, /* event associated with lock */ 2 15 2 flags aligned, 2 16 3 notify_sw bit (1) unaligned, 2 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 2 18 2 19 /* End include file hc_lock.incl.pl1 */ 160 161 162 163 3 1 /* BEGIN INCLUDE FILE ... sst.incl.pl1 ... January 1971 */ 3 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 3 3 /* Deleted paging device info and added pc segmove info, Benson Margulies 84-01-03 */ 3 4 /* Added covert channel meters, Keith Loepere 85-01-08. */ 3 5 3 6 dcl sst_seg$ external; 3 7 dcl sstp ptr; 3 8 3 9 dcl 1 sst based (sstp) aligned, 3 10 2 space (8) fixed bin, /* empty space to watch for bugs */ 3 11 3 12 /* SST HEADER */ 3 13 3 14 2 pre_page_time fixed bin (71), /* total time spent pre-paging */ 3 15 2 post_purge_time fixed bin (71), /* total time spent post-purging */ 3 16 2 post_in_core fixed bin, /* total pages in core (and in list) at purge time */ 3 17 2 thrashing fixed bin, /* meter of thrashing being done on system */ 3 18 2 npfs_misses fixed bin, /* meter of times npfs was on when pre-paging */ 3 19 2 salv fixed bin, /* flag which is ^=0 if and only if salvaging */ 3 20 3 21 2 ptl bit (36), /* global page table loop lock */ 3 22 2 astl bit (36), /* global ast allocation block lock */ 3 23 2 astl_event bit (36), /* event used when waiting for AST lock */ 3 24 2 astl_notify_requested bit (1) aligned, /* flag to notify AST lock */ 3 25 2 nused fixed bin, /* number of pages on used list */ 3 26 2 ptwbase fixed bin (24), /* absolute address of page table array */ 3 27 2 tfreep ptr, /* pointer to first trailer on free list */ 3 28 3 29 2 astap ptr, /* aste array pointer */ 3 30 2 ptl_wait_ct fixed bin, /* pxss: number is >= # of processes waiting to ptl */ 3 31 2 astsize fixed bin, /* size of an AST entry */ 3 32 2 cmesize fixed bin, /* size of a CME entry */ 3 33 2 root_astep ptr, /* pointer to the root AST entry */ 3 34 3 35 2 pts (0: 3) fixed bin, /* array of page table sizes */ 3 36 2 level (0:3), /* per-list information about ASTE's */ 3 37 3 (ausedp, no_aste) bit (18) unaligned, /* used list and count of number of entries */ 3 38 3 39 2 (atempp, atempp1) bit (18) unal, /* temp seg list pointer */ 3 40 2 dm_enabled bit (1) aligned, /* ON => journal seg exists */ 3 41 2 (ainitp, ainitp1) bit (18) unal, /* init seg list pointer */ 3 42 2 strsize fixed bin, /* Trailer size in words. */ 3 43 3 44 /* CORE MAP HEADER */ 3 45 3 46 2 cmp ptr, /* pointer to start of core map */ 3 47 2 usedp bit (18), /* pointer to first used core block */ 3 48 2 wtct fixed bin, /* count of pages being written */ 3 49 3 50 2 startp bit (18), /* pointer to solid page for lap counting (fsdct) */ 3 51 2 removep bit (18), /* pointer to list of pages being removed from use */ 3 52 /* MISC */ 3 53 3 54 2 double_write fixed bin, /* trigger for store through scheme */ 3 55 /* 0 = no double writes, 3 56* 1 = all non-pd pages get written, 3 57* 2 = all directories get written */ 3 58 2 temp_w_event bit (36) aligned, /* wait event for temp wiring lock */ 3 59 2 root_pvtx fixed bin, /* pvtx or rpv */ 3 60 2 nolock bit (1) aligned, /* if on, don't lock ptl on interrupts */ 3 61 3 62 2 fc_skips_pinned fixed bin (35), /* number of skips over pinned page in find_core */ 3 63 2 cl_skips_pinned fixed bin (35), /* number of skips over pinned page in claim_mod_core */ 3 64 2 ast_ht_ptr ptr, /* AST hast table pointer */ 3 65 2 ast_ht_n_buckets fixed bin, /* number of buckets in AST hash table */ 3 66 2 ast_ht_uid_mask bit (36) aligned, /* mask to strip out low-order bits of uid */ 3 67 2 meter_ast_locking fixed bin, /* non-zero enables AST lock meters */ 3 68 2 checksum_filemap fixed bin, /* non-zero enables filemap checksumming */ 3 69 3 70 2 page_read_errors fixed bin, /* read errors posted to page control */ 3 71 2 page_write_errors fixed bin, /* write errors posted to page control */ 3 72 3 73 2 cycle_pv_allocation fixed bin, /* flag to cycle VTOCE allocation among PVs */ 3 74 3 75 2 n_trailers fixed bin, /* Number of trailer entries in str_seg */ 3 76 2 synch_activations fixed bin (35), /* Activation attempts for synchronized segs */ 3 77 2 synch_skips fixed bin (35), /* get_aste skips because not synchronized */ 3 78 3 79 2 lock_waits fixed bin, /* Number of times we had to wait for a lock */ 3 80 2 total_locks_set fixed bin, /* Total number of block locks set */ 3 81 2 pdir_page_faults fixed bin, /* total page faults off >pdd */ 3 82 2 level_1_page_faults fixed bin, /* total page faults in sys libes */ 3 83 2 dir_page_faults fixed bin, /* Total page faults on directories */ 3 84 2 ring_0_page_faults fixed bin, /* page faults in ring 0 */ 3 85 2 rqover fixed bin (35), /* errcode for record quota overflow */ 3 86 2 pc_io_waits fixed bin, /* Number of times pc had to wait on io */ 3 87 3 88 3 89 /* The following (until pdmap) used to be the 'cnt' in cnt.incl.pl1 */ 3 90 3 91 2 steps fixed bin, /* number of steps taken around used list */ 3 92 2 needc fixed bin, /* number of times core page needed */ 3 93 2 ceiling fixed bin, /* number of times ceiling hit */ 3 94 2 ctwait fixed bin, /* number of times write counter was full */ 3 95 2 wired fixed bin, /* number of pages wired by pc */ 3 96 2 laps fixed bin, /* number of times around used list */ 3 97 2 skipw fixed bin, /* number of pages skiped because they were wired */ 3 98 2 skipu fixed bin, /* because of being used */ 3 99 3 100 2 skipm fixed bin, /* because of being modified */ 3 101 2 skipos fixed bin, /* because out of service */ 3 102 2 aused fixed bin, /* number of AST entries on used list */ 3 103 2 damaged_ct fixed bin, /* count of segments that system damaged */ 3 104 2 deact_count fixed bin, /* count of deactivations */ 3 105 2 demand_deact_attempts fixed bin, /* user requested deactivations */ 3 106 2 demand_deactivations fixed bin, /* user instigated deactivations */ 3 107 3 108 2 reads (8) fixed bin, /* number of reads for each did */ 3 109 2 writes (8) fixed bin, /* number of writes for each did */ 3 110 3 111 2 short_pf_count fixed bin, /* count of page faults on out of service pages */ 3 112 2 loop_locks fixed bin, /* count of times locked PTL */ 3 113 2 loop_lock_time fixed bin (71), /* time spent looping on PTL */ 3 114 2 cpu_sf_time fixed bin (71), /* cpu time spent in seg_fault */ 3 115 2 total_sf_pf fixed bin, /* total page faults while in seg_fault */ 3 116 2 total_sf fixed bin, /* total number of seg_faults */ 3 117 2 pre_page_size fixed bin, /* total pre-pagings expected */ 3 118 2 post_list_size fixed bin, 3 119 2 post_purgings fixed bin, /* total number of post-purgings */ 3 120 2 post_purge_calls fixed bin, /* total number of calls to post-purge */ 3 121 2 pre_page_calls fixed bin, /* total number of calls tp pre-page */ 3 122 2 pre_page_list_size fixed bin, 3 123 2 pre_page_misses fixed bin, /* total number of misses in pre-page list */ 3 124 2 pre_pagings fixed bin, /* total number of pre-pagings */ 3 125 3 126 /* TEMPORARY WIRED PROCEDURE INFO */ 3 127 3 128 2 wire_proc_data (8) fixed bin (71), /* data for wire_proc */ 3 129 3 130 /* MAIN MEMORY USAGE INFORMATION */ 3 131 3 132 2 abs_wired_count fixed bin, /* count of abs-wired pages */ 3 133 2 system_type fixed bin, /* ADP_SYSTEM or L68_SYSTEM */ 3 134 2 wired_copies fixed bin, /* number of times a wired page was copied */ 3 135 2 recopies fixed bin, /* number of times recopied because modified */ 3 136 2 first_core_block fixed bin, /* core map index for first block of core */ 3 137 2 last_core_block fixed bin, /* core map index for last block of core */ 3 138 2 fw_retries fixed bin (35), /* force_write retries due to ASTE move */ 3 139 2 pvhtp ptr unaligned, /* ptr to PV hold table for debugging */ 3 140 3 141 /* AST METERS */ 3 142 3 143 2 askipsize (0: 3) fixed bin, /* array of skips because wrong AST size */ 3 144 2 aneedsize (0: 3) fixed bin, /* array of times needed each size */ 3 145 3 146 2 stepsa fixed bin, /* count of steps taken looking for an AST entry */ 3 147 2 askipsehs fixed bin, /* count of skips because EHS was ON */ 3 148 2 asearches fixed bin, /* count of full searches made */ 3 149 2 askipslevel fixed bin, /* count of skips because pages were in core */ 3 150 2 askipsinit fixed bin, /* count of times turned OFF init switch */ 3 151 2 acost fixed bin, /* cumulative cost of deactivations */ 3 152 2 askipslock fixed bin, /* count of skips because couldn't lock parent */ 3 153 2 askipdius fixed bin, /* count of skips because DIUS was on */ 3 154 3 155 2 alaps fixed bin, /* lap counter for AST list */ 3 156 2 updates fixed bin, /* calls to updateb */ 3 157 2 setfaults_all fixed bin, /* setfaults done to the entire SDW */ 3 158 2 setfaults_acc fixed bin, /* setfaults done to the access field */ 3 159 2 total_bf fixed bin, /* count of bound faults */ 3 160 2 total_bf_pf fixed bin, /* page faults during bound faults */ 3 161 2 cpu_bf_time fixed bin (71), /* cpu time spent in bound fault */ 3 162 3 163 2 asteps (0: 3) fixed bin, /* per-size AST step counters */ 3 164 3 165 2 ast_locked_at_time fixed bin (71), /* clock reading when ast last locked */ 3 166 2 ast_locked_total_time fixed bin (71), /* total real time the ast lock was locked */ 3 167 2 ast_lock_wait_time fixed bin (71), /* total real time of all waiting on ast lock */ 3 168 2 ast_locking_count fixed bin (35), /* number of times ast was locked */ 3 169 2 cleanup_count fixed bin, /* calls to pc$cleanup */ 3 170 2 cleanup_real_time fixed bin (71), /* total real time in pc$cleanup */ 3 171 3 172 /* PRE-PAGE METERS */ 3 173 3 174 2 tree_count (0: 63) fixed bin, /* counters for pre-page decisions */ 3 175 3 176 2 pp_meters (0: 63) fixed bin, /* counters for measuring pre-page success */ 3 177 3 178 3 179 2 wusedp bit (18) aligned, /* Relative cmep to next cme for writing */ 3 180 2 write_hunts fixed bin, /* Times claim_mod_core invoked */ 3 181 2 claim_skip_cme fixed bin, /* Times unacceptable cme found by c_m_c */ 3 182 2 claim_skip_free fixed bin, /* Times free cme passed by c_m_c */ 3 183 2 claim_notmod fixed bin, /* Times c_m_c passed pure page */ 3 184 2 claim_passed_used fixed bin, /* Times used page seen */ 3 185 2 claim_skip_ptw fixed bin, /* Times c_m_c saw unacceptable ptw */ 3 186 2 claim_writes fixed bin, /* Writes queued by c_m_c */ 3 187 2 claim_steps fixed bin, /* Steps passed in core claiming */ 3 188 2 pre_seeks_failed fixed bin, /* counter of times quick find_core_ failed */ 3 189 2 resurrections fixed bin, /* nulled addresses reinstated */ 3 190 2 volmap_seg_page_faults fixed bin (35), /* Pseudo-page faults on volmap_seg */ 3 191 2 oopv fixed bin, /* out-of-physical-volume page faults */ 3 192 2 dblw_resurrections fixed bin, /* addresses resurrected by double-writing */ 3 193 2 sgm_time fixed bin (71), /* Time (VCPU) in seg mover */ 3 194 2 sgm_pf fixed bin, /* Page faults in seg moving */ 3 195 2 bad_sgms fixed bin, /* Seg moves that failed */ 3 196 2 sgm_sgft fixed bin, /* Seg faults in seg moves */ 3 197 2 good_sgms fixed bin, /* Seg moves that completed */ 3 198 2 claim_runs fixed bin, /* Times claim_mod_core had to run */ 3 199 2 activations fixed bin, /* total count of activations */ 3 200 2 dir_activations fixed bin, /* count of directory activations */ 3 201 2 hedge_updatevs fixed bin, /* call-in updatevs */ 3 202 2 hedge_writes fixed bin, /* call in core flush writes */ 3 203 2 evict_recover_data, /* see evict_page.alm */ 3 204 3 evict_ptp bit (18) unal, /* ptp of page being moved */ 3 205 3 evict_phmbit bit (18) unal, /* N/Z if page was mod */ 3 206 3 207 /* Data for metering force_write facility 08/19/78 */ 3 208 3 209 2 force_swrites fixed bin, /* Calls on segments to force write */ 3 210 2 force_pwrites fixed bin, /* Mod pages so written */ 3 211 2 fw_none fixed bin, /* Force write wrote none */ 3 212 2 force_updatevs fixed bin, /* Updatev's so forced */ 3 213 3 214 2 pf_unlock_ptl_time fixed bin (71), /* Time unlocking ptln page faults */ 3 215 2 pf_unlock_ptl_meterings fixed bin, 3 216 3 217 2 makeknown_activations fixed bin (35), /* activations at makeknown time */ 3 218 2 backup_activations fixed bin (35), /* activations for backup */ 3 219 2 metering_flags aligned, /* small chunks of misc. information */ 3 220 3 activate_activated bit (1) unal, /* ON => last call to activate entry actually activated something */ 3 221 3 pad bit (35) unal, 3 222 2 seg_fault_calls fixed bin (35), /* number calls to seg_fault for explicit activation */ 3 223 3 224 /* METERS FOR STACK TRUNCATION */ 3 225 3 226 2 (stk_truncate_should_didnt, /* counts */ 3 227 stk_truncate_should_did, 3 228 stk_truncate_shouldnt_didnt, 3 229 stk_truncate_shouldnt_did) fixed bin (35), 3 230 2 stk_pages_truncated fixed bin (35), 3 231 2 stk_pages_truncated_in_core fixed bin (35), 3 232 3 233 /* SUPPORT FOR PC SEGMOVES */ 3 234 3 235 2 segmove_lock aligned, 3 236 3 pid bit (36) aligned, 3 237 3 event bit (36) aligned, 3 238 3 notify bit (1) aligned, 3 239 2 segmove_io_limit fixed bin, /* max read aheads */ 3 240 2 segmove_found_synch fixed bin (35), /* cme.synch_held */ 3 241 2 segmove_synch_disappeared fixed bin (35), /* page$check_synch fixed */ 3 242 2 segmove_n_reads fixed bin (35), /* total IO's queued. */ 3 243 2 segmove_max_tries fixed bin (35), /* max times through the read loop */ 3 244 3 245 2 segmove_astep ptr unal, /* if non-null, addresses to be rescued from old_addr_astep */ 3 246 2 segmove_pvtx fixed bin, /* if segmove_astep nonnull, valid */ 3 247 2 segmove_vtocx fixed bin, /* ditto */ 3 248 2 segmove_old_addr_astep ptr unaligned, /* ditto */ 3 249 2 segmove_new_addr_astep ptr unaligned, /* if non-null, the addresses must be deposited. */ 3 250 3 251 2 mod_during_write fixed bin, /* times a page was modified while it was being written */ 3 252 2 zero_pages fixed bin, /* count of pages truncated because all zero */ 3 253 2 trace_sw aligned, /* tracing control flags */ 3 254 3 pad_trace bit (32) unaligned, 3 255 3 pc_trace_pf bit (1) unaligned, /* tracing for page faults, done, etc. */ 3 256 3 tty_trace bit (1) unaligned, 3 257 3 pc_trace bit (1) unaligned, /* flag used by page control primitives */ 3 258 3 sc_trace bit (1) unaligned, /* flag used by segment control primitives */ 3 259 2 new_pages fixed bin, /* newly created pages */ 3 260 2 ast_track bit (1) aligned, /* "1"b => keep SST name table */ 3 261 2 dirlock_writebehind fixed bin, /* =1 to flush modified dir pages in lock$unlock */ 3 262 2 write_limit fixed bin, /* Max # of outstanding writes by page control */ 3 263 2 crash_test_segmove bit (1) aligned, /* crash in mid-segmove */ 3 264 2 delayed_seg_state_chg fixed bin (35), /* count of times a process was delayed in affecting a seg state */ 3 265 2 audit_seg_state_chg fixed bin (35), /* count of times a process was audited for excessive seg state changes */ 3 266 2 seg_state_chg_delay fixed bin (52), /* total times processes were delayed for covert channels */ 3 267 2 seg_state_change_limit fixed bin, /* number of events over which we determine covert channel bandwidth */ 3 268 2 max_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we delay */ 3 269 2 audit_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we audit */ 3 270 2 seg_state_chg_operation bit (36) aligned, /* access_operation_ value for excessive_seg_state_chg */ 3 271 2 pad4 (126) bit (36) aligned; /* padding to 512 words (1000)8 */ 3 272 3 273 /* END INCLUDE FILE sst.incl.pl1 */ 164 165 166 167 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/22/85 1313.9 spg_util_.pl1 >spec>temp>41-5>spg_util_.pl1 158 1 01/22/85 1321.5 tcm.incl.pl1 >spec>temp>41-5>tcm.incl.pl1 160 2 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.incl.pl1 164 3 01/22/85 1321.6 sst.incl.pl1 >spec>temp>41-5>sst.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. based_sentinel based structure level 1 dcl 1-303 cf 000111 automatic structure level 1 dcl 50 set ref 80 91 chsw parameter fixed bin(1,0) dcl 29 set ref 27 79* 81* cpu_pf_count 252 based fixed bin(18,0) level 2 dcl 1-11 ref 125 125 cpu_pf_time 250 based fixed bin(71,0) level 2 dcl 1-11 ref 124 124 cpu_sf_time 160 based fixed bin(71,0) level 2 dcl 3-9 ref 129 129 divide builtin function dcl 63 ref 83 83 83 83 float builtin function dcl 63 ref 83 83 getwork_time 254 based fixed bin(71,0) level 2 dcl 1-11 ref 121 121 interrupt_time 260 based fixed bin(71,0) level 2 dcl 1-11 ref 117 117 ioa_$rsnnl 000036 constant entry external dcl 48 ref 83 iscf 000022 internal static structure level 1 dcl 61 set ref 80 91* 151* length parameter fixed bin(17,0) dcl 29 set ref 27 83* loading_idle 60 based fixed bin(71,0) level 2 dcl 1-11 ref 112 112 lock based structure level 1 dcl 2-12 max_eligible 325 based fixed bin(30,0) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 72 max_eligible 3 000111 automatic fixed bin(30,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 72* 83 83 meter_time 000102 automatic float bin(27) dcl 44 set ref 106* 110 111 112 118 122 127 130 133 min_eligible 2 000111 automatic fixed bin(30,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 71* 83 83 min_eligible 356 based fixed bin(30,0) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 71 mp_idle 26 based fixed bin(71,0) level 2 dcl 1-11 ref 112 112 n_pf 000103 automatic float bin(27) dcl 44 set ref 125* n_pf_sf 000104 automatic float bin(27) dcl 44 set ref 126* ncpu 310 based fixed bin(18,0) level 2 dcl 1-11 ref 69 nmp_idle 30 based fixed bin(71,0) level 2 dcl 1-11 ref 111 111 nproc 000111 automatic fixed bin(17,0) level 2 dcl 50 set ref 69* 83* nused 24 based fixed bin(17,0) level 2 in structure "sst" dcl 3-9 in procedure "spg_util_" ref 70 nused 1 000111 automatic fixed bin(18,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 70* 83* pint parameter float bin(27) dcl 29 set ref 27 100* 118* pmpi parameter float bin(27) dcl 29 set ref 27 100* 112* pnmpi parameter float bin(27) dcl 29 set ref 27 100* 111* ppf parameter float bin(27) dcl 29 set ref 27 100* 127* processor_time 42 based fixed bin(71,0) level 2 dcl 1-11 ref 98 98 106 106 psf parameter float bin(27) dcl 29 set ref 27 100* 130* ptc parameter float bin(27) dcl 29 set ref 27 100* 122* puse_rz parameter float bin(27) dcl 29 set ref 27 100* 133* px parameter float bin(27) dcl 29 set ref 27 100* 119* pzi parameter float bin(27) dcl 29 set ref 27 100* 110* spg_ring_0_info_ 000034 constant entry external dcl 47 ref 132 sst based structure level 1 dcl 3-9 sstp1 000012 internal static pointer dcl 43 set ref 126 129 147* sstp1_a parameter pointer dcl 143 ref 141 147 sstp2 000014 internal static pointer dcl 43 set ref 70 126 129 148* sstp2_a parameter pointer dcl 143 ref 141 148 string parameter char(110) unaligned dcl 29 set ref 27 83* tcdp1 000016 internal static pointer dcl 43 set ref 98 106 110 111 112 112 117 121 124 125 149* tcdp1_a parameter pointer dcl 143 ref 141 149 tcdp2 000020 internal static pointer dcl 43 set ref 69 71 72 73 74 75 76 77 98 106 110 111 112 112 117 121 124 125 150* tcdp2_a parameter pointer dcl 143 ref 141 150 tcm based structure level 1 dcl 1-11 tefirst 6 000111 automatic fixed bin(30,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 75* 83 tefirst 343 based fixed bin(30,0) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 75 telast 344 based fixed bin(30,0) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 76 telast 7 000111 automatic fixed bin(30,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 76* 83 timax 10 000111 automatic fixed bin(35,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 77* 83 timax 345 based fixed bin(35,0) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 77 time_int_xd 000105 automatic float bin(27) dcl 44 set ref 117* 118 time_pf 000106 automatic float bin(27) dcl 44 set ref 124* 127 time_rz 000100 automatic fixed bin(52,0) dcl 44 set ref 132* 133 time_sf 000107 automatic float bin(27) dcl 44 set ref 129* 130 time_tc 000110 automatic float bin(27) dcl 44 set ref 121* 122 total_sf_pf 162 based fixed bin(17,0) level 2 dcl 3-9 ref 126 126 unique 000010 internal static fixed bin(17,0) dcl 42 set ref 146* unique_a parameter fixed bin(17,0) dcl 143 ref 141 146 unspec builtin function dcl 63 set ref 80 80 91* 91 151* wct_entry based structure level 1 dcl 1-260 working_set_addend 4 000111 automatic fixed bin(18,0) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 73* 83* working_set_addend 347 based fixed bin(18,0) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 73 working_set_factor 5 000111 automatic fixed bin(35,18) level 2 in structure "cf" dcl 50 in procedure "spg_util_" set ref 74* 83 83 working_set_factor 307 based fixed bin(35,18) level 2 in structure "tcm" dcl 1-11 in procedure "spg_util_" ref 74 zero_idle 32 based fixed bin(71,0) level 2 dcl 1-11 ref 110 110 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VCPU_RESPONSE_BOUNDS internal static fixed bin(17,0) initial dcl 1-308 lock_ptr automatic pointer dcl 2-11 sst_seg$ external static fixed bin(17,0) dcl 3-6 sstp automatic pointer dcl 3-7 tcmp automatic pointer dcl 1-9 wctep automatic pointer dcl 1-258 NAMES DECLARED BY EXPLICIT CONTEXT. reset 000413 constant entry external dcl 141 spg_util_ 000060 constant entry external dcl 27 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 514 554 444 524 Length 772 444 40 202 50 24 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME spg_util_ 170 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 unique spg_util_ 000012 sstp1 spg_util_ 000014 sstp2 spg_util_ 000016 tcdp1 spg_util_ 000020 tcdp2 spg_util_ 000022 iscf spg_util_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME spg_util_ 000100 time_rz spg_util_ 000102 meter_time spg_util_ 000103 n_pf spg_util_ 000104 n_pf_sf spg_util_ 000105 time_int_xd spg_util_ 000106 time_pf spg_util_ 000107 time_sf spg_util_ 000110 time_tc spg_util_ 000111 cf spg_util_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$rsnnl spg_ring_0_info_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 000000 aa 764507534122 000001 aa 420000000043 000002 aa 420000000036 000003 aa 732414336750 000004 aa 404000000022 000005 aa 524000000155 000006 aa 464000000000 000007 aa 404000000001 000010 aa 404000000021 000011 aa 526000000156 000012 aa 414000000033 000013 aa 136 067 170 143 ^7xc 000014 aa 160 165 075 040 pu= 000015 aa 136 144 054 040 ^d, 000016 aa 160 141 147 145 page 000017 aa 163 075 040 136 s= ^ 000020 aa 144 054 040 155 d, m 000021 aa 151 156 137 145 in_e 000022 aa 075 040 136 144 = ^d 000023 aa 054 040 155 141 , ma 000024 aa 170 137 145 075 x_e= 000025 aa 040 136 144 054 ^d, 000026 aa 040 167 163 141 wsa 000027 aa 075 040 136 144 = ^d 000030 aa 054 040 167 163 , ws 000031 aa 146 075 040 136 f= ^ 000032 aa 056 062 146 054 .2f, 000033 aa 040 164 145 146 tef 000034 aa 151 162 163 164 irst 000035 aa 075 040 136 065 = ^5 000036 aa 056 062 146 054 .2f, 000037 aa 040 164 145 154 tel 000040 aa 141 163 164 075 ast= 000041 aa 040 136 065 056 ^5. 000042 aa 062 146 054 040 2f, 000043 aa 164 151 155 141 tima 000044 aa 170 075 040 136 x= ^ 000045 aa 065 056 062 146 5.2f 000046 aa 056 000 000 000 . BEGIN PROCEDURE spg_util_ ENTRY TO spg_util_ STATEMENT 1 ON LINE 27 spg_util_: proc (pzi, pnmpi, pmpi, pint, ptc, ppf, psf, puse_rz, px, string, length, chsw); 000047 at 000014000012 000050 tt 000012000012 000051 tt 000012000012 000052 tt 000012000012 000053 tt 000012000012 000054 tt 000011000010 000055 ta 000007000000 000056 ta 000047000000 000057 da 000037300000 000060 aa 000260 6270 00 eax7 176 000061 aa 7 00034 3521 20 epp2 pr7|28,* 000062 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000063 aa 000030000000 000064 aa 000000000000 STATEMENT 1 ON LINE 69 cf.nproc = tcdp2 -> tcm.ncpu; 000065 ia 4 00020 3735 20 epp7 pr4|16,* tcdp2 000066 aa 7 00310 2361 00 ldq pr7|200 tcm.ncpu 000067 aa 6 00111 7561 00 stq pr6|73 cf.nproc STATEMENT 1 ON LINE 70 cf.nused = sstp2 -> sst.nused; 000070 ia 4 00014 3715 20 epp5 pr4|12,* sstp2 000071 aa 5 00024 2361 00 ldq pr5|20 sst.nused 000072 aa 6 00112 7561 00 stq pr6|74 cf.nused STATEMENT 1 ON LINE 71 cf.min_eligible = tcdp2 -> tcm.min_eligible; 000073 aa 7 00356 2361 00 ldq pr7|238 tcm.min_eligible 000074 aa 6 00113 7561 00 stq pr6|75 cf.min_eligible STATEMENT 1 ON LINE 72 cf.max_eligible = tcdp2 -> tcm.max_eligible; 000075 aa 7 00325 2361 00 ldq pr7|213 tcm.max_eligible 000076 aa 6 00114 7561 00 stq pr6|76 cf.max_eligible STATEMENT 1 ON LINE 73 cf.working_set_addend = tcdp2 -> tcm.working_set_addend; 000077 aa 7 00347 2361 00 ldq pr7|231 tcm.working_set_addend 000100 aa 6 00115 7561 00 stq pr6|77 cf.working_set_addend STATEMENT 1 ON LINE 74 cf.working_set_factor = tcdp2 -> tcm.working_set_factor; 000101 aa 7 00307 2361 00 ldq pr7|199 tcm.working_set_factor 000102 aa 6 00116 7561 00 stq pr6|78 cf.working_set_factor STATEMENT 1 ON LINE 75 cf.tefirst = tcdp2 -> tcm.tefirst; 000103 aa 7 00343 2361 00 ldq pr7|227 tcm.tefirst 000104 aa 6 00117 7561 00 stq pr6|79 cf.tefirst STATEMENT 1 ON LINE 76 cf.telast = tcdp2 -> tcm.telast; 000105 aa 7 00344 2361 00 ldq pr7|228 tcm.telast 000106 aa 6 00120 7561 00 stq pr6|80 cf.telast STATEMENT 1 ON LINE 77 cf.timax = tcdp2 -> tcm.timax; 000107 aa 7 00345 2361 00 ldq pr7|229 tcm.timax 000110 aa 6 00121 7561 00 stq pr6|81 cf.timax STATEMENT 1 ON LINE 79 chsw = 0; 000111 aa 6 00032 3535 20 epp3 pr6|26,* 000112 aa 3 00030 4501 20 stz pr3|24,* chsw STATEMENT 1 ON LINE 80 if unspec (cf) ^= unspec (iscf) then do; 000113 aa 000 100 066 500 cmpb (pr),(pr),fill(0) 000114 aa 6 00111 00 0504 descb pr6|73,324 000115 ia 4 00022 00 0504 descb pr4|18,324 000116 aa 000120 6000 04 tze 80,ic 000236 STATEMENT 1 ON LINE 81 chsw = 1; 000117 aa 000001 2360 07 ldq 1,dl 000120 aa 3 00030 7561 20 stq pr3|24,* chsw STATEMENT 1 ON LINE 83 call ioa_$rsnnl ( "^7xcpu= ^d, pages= ^d, min_e= ^d, max_e= ^d, wsa= ^d, wsf= ^.2f, tefirst= ^5.2f, telast= ^5.2f, timax= ^5.2f.", string, length, cf.nproc, cf.nused, divide (cf.min_eligible, 262144, 17, 0), divide (cf.max_eligible, 262144, 17, 0), cf.working_set_addend, float (cf.working_set_factor, 27), cf.tefirst * 1.e-6, cf.telast * 1.e-6, cf.timax * 1.e-6); 000121 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000122 aa 777672 00 0160 desc9a -70,112 000013 = 136067170143 000123 aa 6 00122 00 0160 desc9a pr6|82,112 000124 aa 6 00113 2361 00 ldq pr6|75 cf.min_eligible 000125 aa 000001 5060 03 div 1,du 000126 aa 6 00156 7561 00 stq pr6|110 000127 aa 6 00114 2361 00 ldq pr6|76 cf.max_eligible 000130 aa 000001 5060 03 div 1,du 000131 aa 6 00157 7561 00 stq pr6|111 000132 aa 6 00116 2351 00 lda pr6|78 cf.working_set_factor 000133 aa 000044 7330 00 lrs 36 000134 aa 152000 4110 03 lde 54272,du 000135 aa 400000 4750 03 fad 131072,du 000136 aa 6 00160 4551 00 fst pr6|112 000137 aa 6 00117 2361 00 ldq pr6|79 cf.tefirst 000140 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000141 aa 777642 4610 04 fmp -94,ic 000003 = 732414336750 000142 aa 6 00162 4571 00 dfst pr6|114 000143 aa 6 00120 2361 00 ldq pr6|80 cf.telast 000144 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000145 aa 777636 4610 04 fmp -98,ic 000003 = 732414336750 000146 aa 6 00164 4571 00 dfst pr6|116 000147 aa 6 00121 2361 00 ldq pr6|81 cf.timax 000150 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000151 aa 777632 4610 04 fmp -102,ic 000003 = 732414336750 000152 aa 6 00166 4571 00 dfst pr6|118 000153 aa 6 00122 3521 00 epp2 pr6|82 000154 aa 6 00172 2521 00 spri2 pr6|122 000155 aa 3 00024 3521 20 epp2 pr3|20,* string 000156 aa 6 00174 2521 00 spri2 pr6|124 000157 aa 3 00026 3521 20 epp2 pr3|22,* length 000160 aa 6 00176 2521 00 spri2 pr6|126 000161 aa 6 00111 3521 00 epp2 pr6|73 cf.nproc 000162 aa 6 00200 2521 00 spri2 pr6|128 000163 aa 6 00112 3521 00 epp2 pr6|74 cf.nused 000164 aa 6 00202 2521 00 spri2 pr6|130 000165 aa 6 00156 3521 00 epp2 pr6|110 000166 aa 6 00204 2521 00 spri2 pr6|132 000167 aa 6 00157 3521 00 epp2 pr6|111 000170 aa 6 00206 2521 00 spri2 pr6|134 000171 aa 6 00115 3521 00 epp2 pr6|77 cf.working_set_addend 000172 aa 6 00210 2521 00 spri2 pr6|136 000173 aa 6 00160 3521 00 epp2 pr6|112 000174 aa 6 00212 2521 00 spri2 pr6|138 000175 aa 6 00162 3521 00 epp2 pr6|114 000176 aa 6 00214 2521 00 spri2 pr6|140 000177 aa 6 00164 3521 00 epp2 pr6|116 000200 aa 6 00216 2521 00 spri2 pr6|142 000201 aa 6 00166 3521 00 epp2 pr6|118 000202 aa 6 00220 2521 00 spri2 pr6|144 000203 aa 777602 3520 04 epp2 -126,ic 000005 = 524000000155 000204 aa 6 00222 2521 00 spri2 pr6|146 000205 aa 777604 3520 04 epp2 -124,ic 000011 = 526000000156 000206 aa 6 00224 2521 00 spri2 pr6|148 000207 aa 777601 3520 04 epp2 -127,ic 000010 = 404000000021 000210 aa 6 00226 2521 00 spri2 pr6|150 000211 aa 6 00230 2521 00 spri2 pr6|152 000212 aa 6 00234 2521 00 spri2 pr6|156 000213 aa 6 00236 2521 00 spri2 pr6|158 000214 aa 777570 3520 04 epp2 -136,ic 000004 = 404000000022 000215 aa 6 00232 2521 00 spri2 pr6|154 000216 aa 6 00240 2521 00 spri2 pr6|160 000217 aa 777573 3520 04 epp2 -133,ic 000012 = 414000000033 000220 aa 6 00242 2521 00 spri2 pr6|162 000221 aa 777561 3520 04 epp2 -143,ic 000002 = 420000000036 000222 aa 6 00244 2521 00 spri2 pr6|164 000223 aa 6 00246 2521 00 spri2 pr6|166 000224 aa 777555 3520 04 epp2 -147,ic 000001 = 420000000043 000225 aa 6 00250 2521 00 spri2 pr6|168 000226 aa 6 00170 6211 00 eax1 pr6|120 000227 aa 060000 4310 07 fld 24576,dl 000230 la 4 00036 3521 20 epp2 pr4|30,* ioa_$rsnnl 000231 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 91 unspec (iscf) = unspec (cf); 000232 aa 6 00044 3701 20 epp4 pr6|36,* 000233 aa 000 100 100 500 mlr (pr),(pr),fill(000) 000234 aa 6 00111 00 0044 desc9a pr6|73,36 000235 ia 4 00022 00 0044 desc9a pr4|18,36 STATEMENT 1 ON LINE 92 end; STATEMENT 1 ON LINE 98 if tcdp2 -> tcm.processor_time = tcdp1 -> tcm.processor_time then do; 000236 ia 4 00020 3735 20 epp7 pr4|16,* tcdp2 000237 aa 7 00042 2371 00 ldaq pr7|34 tcm.processor_time 000240 ia 4 00016 3715 20 epp5 pr4|14,* tcdp1 000241 aa 5 00042 1171 00 cmpaq pr5|34 tcm.processor_time 000242 aa 000015 6010 04 tnz 13,ic 000257 STATEMENT 1 ON LINE 100 pzi, pnmpi, pmpi, pint, ptc, ppf, psf, puse_rz, px = 0.0; 000243 aa 400000 4310 03 fld 131072,du 000244 aa 6 00032 3535 20 epp3 pr6|26,* 000245 aa 3 00002 4551 20 fst pr3|2,* pzi 000246 aa 3 00004 4551 20 fst pr3|4,* pnmpi 000247 aa 3 00006 4551 20 fst pr3|6,* pmpi 000250 aa 3 00010 4551 20 fst pr3|8,* pint 000251 aa 3 00012 4551 20 fst pr3|10,* ptc 000252 aa 3 00014 4551 20 fst pr3|12,* ppf 000253 aa 3 00016 4551 20 fst pr3|14,* psf 000254 aa 3 00020 4551 20 fst pr3|16,* puse_rz 000255 aa 3 00022 4551 20 fst pr3|18,* px STATEMENT 1 ON LINE 101 return; 000256 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 102 end; STATEMENT 1 ON LINE 106 meter_time = (tcdp2 -> tcm.processor_time - tcdp1 -> tcm.processor_time) * 1.e-2; 000257 aa 5 00042 1771 00 sbaq pr5|34 tcm.processor_time 000260 aa 216000 4110 03 lde 72704,du 000261 aa 400000 4750 03 fad 131072,du 000262 aa 777516 4610 04 fmp -178,ic 000000 = 764507534122 000263 aa 6 00102 4551 00 fst pr6|66 meter_time STATEMENT 1 ON LINE 110 pzi = (tcdp2 -> tcm.zero_idle - tcdp1 -> tcm.zero_idle) / meter_time; 000264 aa 6 00166 4571 00 dfst pr6|118 meter_time 000265 aa 7 00032 2371 00 ldaq pr7|26 tcm.zero_idle 000266 aa 5 00032 1771 00 sbaq pr5|26 tcm.zero_idle 000267 aa 216000 4110 03 lde 72704,du 000270 aa 400000 4750 03 fad 131072,du 000271 aa 6 00166 5671 00 dfdv pr6|118 meter_time 000272 aa 6 00032 3535 20 epp3 pr6|26,* 000273 aa 3 00002 4551 20 fst pr3|2,* pzi STATEMENT 1 ON LINE 111 pnmpi = (tcdp2 -> tcm.nmp_idle - tcdp1 -> tcm.nmp_idle) / meter_time; 000274 aa 6 00102 4311 00 fld pr6|66 meter_time 000275 aa 6 00166 4571 00 dfst pr6|118 meter_time 000276 aa 7 00030 2371 00 ldaq pr7|24 tcm.nmp_idle 000277 aa 5 00030 1771 00 sbaq pr5|24 tcm.nmp_idle 000300 aa 216000 4110 03 lde 72704,du 000301 aa 400000 4750 03 fad 131072,du 000302 aa 6 00166 5671 00 dfdv pr6|118 meter_time 000303 aa 3 00004 4551 20 fst pr3|4,* pnmpi STATEMENT 1 ON LINE 112 pmpi = (tcdp2 -> tcm.mp_idle - tcdp1 -> tcm.mp_idle + tcdp2 -> tcm.loading_idle - tcdp1 -> tcm.loading_idle) / meter_time; 000304 aa 6 00102 4311 00 fld pr6|66 meter_time 000305 aa 6 00166 4571 00 dfst pr6|118 meter_time 000306 aa 7 00026 2371 00 ldaq pr7|22 tcm.mp_idle 000307 aa 5 00026 1771 00 sbaq pr5|22 tcm.mp_idle 000310 aa 7 00060 0771 00 adaq pr7|48 tcm.loading_idle 000311 aa 5 00060 1771 00 sbaq pr5|48 tcm.loading_idle 000312 aa 216000 4110 03 lde 72704,du 000313 aa 400000 4750 03 fad 131072,du 000314 aa 6 00166 5671 00 dfdv pr6|118 meter_time 000315 aa 3 00006 4551 20 fst pr3|6,* pmpi STATEMENT 1 ON LINE 117 time_int_xd = tcdp2 -> tcm.interrupt_time - tcdp1 -> tcm.interrupt_time; 000316 aa 7 00260 2371 00 ldaq pr7|176 tcm.interrupt_time 000317 aa 5 00260 1771 00 sbaq pr5|176 tcm.interrupt_time 000320 aa 216000 4110 03 lde 72704,du 000321 aa 400000 4750 03 fad 131072,du 000322 aa 6 00105 4551 00 fst pr6|69 time_int_xd STATEMENT 1 ON LINE 118 pint = time_int_xd / meter_time; 000323 aa 6 00102 5651 00 fdv pr6|66 meter_time 000324 aa 3 00010 4551 20 fst pr3|8,* pint STATEMENT 1 ON LINE 119 px = 0.0; 000325 aa 400000 4310 03 fld 131072,du 000326 aa 3 00022 4551 20 fst pr3|18,* px STATEMENT 1 ON LINE 121 time_tc = (tcdp2 -> tcm.getwork_time - tcdp1 -> tcm.getwork_time); 000327 aa 7 00254 2371 00 ldaq pr7|172 tcm.getwork_time 000330 aa 5 00254 1771 00 sbaq pr5|172 tcm.getwork_time 000331 aa 216000 4110 03 lde 72704,du 000332 aa 400000 4750 03 fad 131072,du 000333 aa 6 00110 4551 00 fst pr6|72 time_tc STATEMENT 1 ON LINE 122 ptc = time_tc / meter_time; 000334 aa 6 00102 5651 00 fdv pr6|66 meter_time 000335 aa 3 00012 4551 20 fst pr3|10,* ptc STATEMENT 1 ON LINE 124 time_pf = tcdp2 -> tcm.cpu_pf_time - tcdp1 -> tcm.cpu_pf_time; 000336 aa 7 00250 2371 00 ldaq pr7|168 tcm.cpu_pf_time 000337 aa 5 00250 1771 00 sbaq pr5|168 tcm.cpu_pf_time 000340 aa 216000 4110 03 lde 72704,du 000341 aa 400000 4750 03 fad 131072,du 000342 aa 6 00106 4551 00 fst pr6|70 time_pf STATEMENT 1 ON LINE 125 n_pf = tcdp2 -> tcm.cpu_pf_count - tcdp1 -> tcm.cpu_pf_count; 000343 aa 7 00252 2361 00 ldq pr7|170 tcm.cpu_pf_count 000344 aa 5 00252 1761 00 sbq pr5|170 tcm.cpu_pf_count 000345 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000346 aa 6 00103 4551 00 fst pr6|67 n_pf STATEMENT 1 ON LINE 126 n_pf_sf = sstp2 -> sst.total_sf_pf - sstp1 -> sst.total_sf_pf; 000347 ia 4 00014 3515 20 epp1 pr4|12,* sstp2 000350 aa 1 00162 2361 00 ldq pr1|114 sst.total_sf_pf 000351 ia 4 00012 3735 20 epp7 pr4|10,* sstp1 000352 aa 7 00162 1761 00 sbq pr7|114 sst.total_sf_pf 000353 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 000354 aa 6 00104 4551 00 fst pr6|68 n_pf_sf STATEMENT 1 ON LINE 127 ppf = time_pf / meter_time; 000355 aa 6 00106 4311 00 fld pr6|70 time_pf 000356 aa 6 00102 5651 00 fdv pr6|66 meter_time 000357 aa 3 00014 4551 20 fst pr3|12,* ppf STATEMENT 1 ON LINE 129 time_sf = sstp2 -> sst.cpu_sf_time - sstp1 -> sst.cpu_sf_time; 000360 aa 1 00160 2371 00 ldaq pr1|112 sst.cpu_sf_time 000361 aa 7 00160 1771 00 sbaq pr7|112 sst.cpu_sf_time 000362 aa 216000 4110 03 lde 72704,du 000363 aa 400000 4750 03 fad 131072,du 000364 aa 6 00107 4551 00 fst pr6|71 time_sf STATEMENT 1 ON LINE 130 psf = time_sf / meter_time; 000365 aa 6 00102 5651 00 fdv pr6|66 meter_time 000366 aa 3 00016 4551 20 fst pr3|14,* psf STATEMENT 1 ON LINE 132 call spg_ring_0_info_ (time_rz); 000367 aa 6 00100 3521 00 epp2 pr6|64 time_rz 000370 aa 6 00124 2521 00 spri2 pr6|84 000371 aa 6 00122 6211 00 eax1 pr6|82 000372 aa 004000 4310 07 fld 2048,dl 000373 la 4 00034 3521 20 epp2 pr4|28,* spg_ring_0_info_ 000374 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 133 puse_rz = time_rz / meter_time; 000375 aa 6 00102 4311 00 fld pr6|66 meter_time 000376 aa 6 00166 4571 00 dfst pr6|118 meter_time 000377 aa 6 00100 2371 00 ldaq pr6|64 time_rz 000400 aa 216000 4110 03 lde 72704,du 000401 aa 400000 4750 03 fad 131072,du 000402 aa 6 00166 5671 00 dfdv pr6|118 meter_time 000403 aa 6 00032 3735 20 epp7 pr6|26,* 000404 aa 7 00020 4551 20 fst pr7|16,* puse_rz STATEMENT 1 ON LINE 135 return; 000405 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO reset STATEMENT 1 ON LINE 141 reset: entry (unique_a, sstp1_a, sstp2_a, tcdp1_a, tcdp2_a); 000406 at 000005000010 000407 tt 000006000006 000410 tt 000006000006 000411 ta 000406000000 000412 da 000044300000 000413 aa 000260 6270 00 eax7 176 000414 aa 7 00034 3521 20 epp2 pr7|28,* 000415 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000416 aa 000012000000 000417 aa 000000000000 STATEMENT 1 ON LINE 146 unique = unique_a; 000420 aa 6 00032 3735 20 epp7 pr6|26,* 000421 aa 7 00002 2361 20 ldq pr7|2,* unique_a 000422 aa 6 00044 3701 20 epp4 pr6|36,* 000423 ia 4 00010 7561 00 stq pr4|8 unique STATEMENT 1 ON LINE 147 sstp1 = sstp1_a; 000424 aa 7 00004 3715 20 epp5 pr7|4,* sstp1_a 000425 aa 5 00000 3715 20 epp5 pr5|0,* sstp1_a 000426 ia 4 00012 6515 00 spri5 pr4|10 sstp1 STATEMENT 1 ON LINE 148 sstp2 = sstp2_a; 000427 aa 7 00006 3535 20 epp3 pr7|6,* sstp2_a 000430 aa 3 00000 3535 20 epp3 pr3|0,* sstp2_a 000431 ia 4 00014 2535 00 spri3 pr4|12 sstp2 STATEMENT 1 ON LINE 149 tcdp1 = tcdp1_a; 000432 aa 7 00010 3515 20 epp1 pr7|8,* tcdp1_a 000433 aa 1 00000 3515 20 epp1 pr1|0,* tcdp1_a 000434 ia 4 00016 2515 00 spri1 pr4|14 tcdp1 STATEMENT 1 ON LINE 150 tcdp2 = tcdp2_a; 000435 aa 7 00012 3715 20 epp5 pr7|10,* tcdp2_a 000436 aa 5 00000 3715 20 epp5 pr5|0,* tcdp2_a 000437 ia 4 00020 6515 00 spri5 pr4|16 tcdp2 STATEMENT 1 ON LINE 151 unspec (iscf) = "0"b; 000440 aa 000 100 100 400 mlr (),(pr),fill(000) 000441 aa 000000 00 0000 desc9a 0,0 000442 ia 4 00022 00 0044 desc9a pr4|18,36 STATEMENT 1 ON LINE 154 return; 000443 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 167 end; END PROCEDURE spg_util_ ----------------------------------------------------------- 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