1 /* BEGIN INCLUDE FILE ... sst.incl.pl1 ... January 1971 */ 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 3 /* Deleted paging device info and added pc segmove info, Benson Margulies 84-01-03 */ 4 /* Added covert channel meters, Keith Loepere 85-01-08. */ 5 6 dcl sst_seg$ external; 7 dcl sstp ptr; 8 9 dcl 1 sst based (sstp) aligned, 10 2 space (8) fixed bin, /* empty space to watch for bugs */ 11 12 /* SST HEADER */ 13 14 2 pre_page_time fixed bin (71), /* total time spent pre-paging */ 15 2 post_purge_time fixed bin (71), /* total time spent post-purging */ 16 2 post_in_core fixed bin, /* total pages in core (and in list) at purge time */ 17 2 thrashing fixed bin, /* meter of thrashing being done on system */ 18 2 npfs_misses fixed bin, /* meter of times npfs was on when pre-paging */ 19 2 salv fixed bin, /* flag which is ^=0 if and only if salvaging */ 20 21 2 ptl bit (36), /* global page table loop lock */ 22 2 astl bit (36), /* global ast allocation block lock */ 23 2 astl_event bit (36), /* event used when waiting for AST lock */ 24 2 astl_notify_requested bit (1) aligned, /* flag to notify AST lock */ 25 2 nused fixed bin, /* number of pages on used list */ 26 2 ptwbase fixed bin (24), /* absolute address of page table array */ 27 2 tfreep ptr, /* pointer to first trailer on free list */ 28 29 2 astap ptr, /* aste array pointer */ 30 2 ptl_wait_ct fixed bin, /* pxss: number is >= # of processes waiting to ptl */ 31 2 astsize fixed bin, /* size of an AST entry */ 32 2 cmesize fixed bin, /* size of a CME entry */ 33 2 root_astep ptr, /* pointer to the root AST entry */ 34 35 2 pts (0: 3) fixed bin, /* array of page table sizes */ 36 2 level (0:3), /* per-list information about ASTE's */ 37 3 (ausedp, no_aste) bit (18) unaligned, /* used list and count of number of entries */ 38 39 2 (atempp, atempp1) bit (18) unal, /* temp seg list pointer */ 40 2 dm_enabled bit (1) aligned, /* ON => journal seg exists */ 41 2 (ainitp, ainitp1) bit (18) unal, /* init seg list pointer */ 42 2 strsize fixed bin, /* Trailer size in words. */ 43 44 /* CORE MAP HEADER */ 45 46 2 cmp ptr, /* pointer to start of core map */ 47 2 usedp bit (18), /* pointer to first used core block */ 48 2 wtct fixed bin, /* count of pages being written */ 49 50 2 startp bit (18), /* pointer to solid page for lap counting (fsdct) */ 51 2 removep bit (18), /* pointer to list of pages being removed from use */ 52 /* MISC */ 53 54 2 double_write fixed bin, /* trigger for store through scheme */ 55 /* 0 = no double writes, 56 1 = all non-pd pages get written, 57 2 = all directories get written */ 58 2 temp_w_event bit (36) aligned, /* wait event for temp wiring lock */ 59 2 root_pvtx fixed bin, /* pvtx or rpv */ 60 2 nolock bit (1) aligned, /* if on, don't lock ptl on interrupts */ 61 62 2 fc_skips_pinned fixed bin (35), /* number of skips over pinned page in find_core */ 63 2 cl_skips_pinned fixed bin (35), /* number of skips over pinned page in claim_mod_core */ 64 2 ast_ht_ptr ptr, /* AST hast table pointer */ 65 2 ast_ht_n_buckets fixed bin, /* number of buckets in AST hash table */ 66 2 ast_ht_uid_mask bit (36) aligned, /* mask to strip out low-order bits of uid */ 67 2 meter_ast_locking fixed bin, /* non-zero enables AST lock meters */ 68 2 checksum_filemap fixed bin, /* non-zero enables filemap checksumming */ 69 70 2 page_read_errors fixed bin, /* read errors posted to page control */ 71 2 page_write_errors fixed bin, /* write errors posted to page control */ 72 73 2 cycle_pv_allocation fixed bin, /* flag to cycle VTOCE allocation among PVs */ 74 75 2 n_trailers fixed bin, /* Number of trailer entries in str_seg */ 76 2 synch_activations fixed bin (35), /* Activation attempts for synchronized segs */ 77 2 synch_skips fixed bin (35), /* get_aste skips because not synchronized */ 78 79 2 lock_waits fixed bin, /* Number of times we had to wait for a lock */ 80 2 total_locks_set fixed bin, /* Total number of block locks set */ 81 2 pdir_page_faults fixed bin, /* total page faults off >pdd */ 82 2 level_1_page_faults fixed bin, /* total page faults in sys libes */ 83 2 dir_page_faults fixed bin, /* Total page faults on directories */ 84 2 ring_0_page_faults fixed bin, /* page faults in ring 0 */ 85 2 rqover fixed bin (35), /* errcode for record quota overflow */ 86 2 pc_io_waits fixed bin, /* Number of times pc had to wait on io */ 87 88 89 /* The following (until pdmap) used to be the 'cnt' in cnt.incl.pl1 */ 90 91 2 steps fixed bin, /* number of steps taken around used list */ 92 2 needc fixed bin, /* number of times core page needed */ 93 2 ceiling fixed bin, /* number of times ceiling hit */ 94 2 ctwait fixed bin, /* number of times write counter was full */ 95 2 wired fixed bin, /* number of pages wired by pc */ 96 2 laps fixed bin, /* number of times around used list */ 97 2 skipw fixed bin, /* number of pages skiped because they were wired */ 98 2 skipu fixed bin, /* because of being used */ 99 100 2 skipm fixed bin, /* because of being modified */ 101 2 skipos fixed bin, /* because out of service */ 102 2 aused fixed bin, /* number of AST entries on used list */ 103 2 damaged_ct fixed bin, /* count of segments that system damaged */ 104 2 deact_count fixed bin, /* count of deactivations */ 105 2 demand_deact_attempts fixed bin, /* user requested deactivations */ 106 2 demand_deactivations fixed bin, /* user instigated deactivations */ 107 108 2 reads (8) fixed bin, /* number of reads for each did */ 109 2 writes (8) fixed bin, /* number of writes for each did */ 110 111 2 short_pf_count fixed bin, /* count of page faults on out of service pages */ 112 2 loop_locks fixed bin, /* count of times locked PTL */ 113 2 loop_lock_time fixed bin (71), /* time spent looping on PTL */ 114 2 cpu_sf_time fixed bin (71), /* cpu time spent in seg_fault */ 115 2 total_sf_pf fixed bin, /* total page faults while in seg_fault */ 116 2 total_sf fixed bin, /* total number of seg_faults */ 117 2 pre_page_size fixed bin, /* total pre-pagings expected */ 118 2 post_list_size fixed bin, 119 2 post_purgings fixed bin, /* total number of post-purgings */ 120 2 post_purge_calls fixed bin, /* total number of calls to post-purge */ 121 2 pre_page_calls fixed bin, /* total number of calls tp pre-page */ 122 2 pre_page_list_size fixed bin, 123 2 pre_page_misses fixed bin, /* total number of misses in pre-page list */ 124 2 pre_pagings fixed bin, /* total number of pre-pagings */ 125 126 /* TEMPORARY WIRED PROCEDURE INFO */ 127 128 2 wire_proc_data (8) fixed bin (71), /* data for wire_proc */ 129 130 /* MAIN MEMORY USAGE INFORMATION */ 131 132 2 abs_wired_count fixed bin, /* count of abs-wired pages */ 133 2 system_type fixed bin, /* ADP_SYSTEM or L68_SYSTEM */ 134 2 wired_copies fixed bin, /* number of times a wired page was copied */ 135 2 recopies fixed bin, /* number of times recopied because modified */ 136 2 first_core_block fixed bin, /* core map index for first block of core */ 137 2 last_core_block fixed bin, /* core map index for last block of core */ 138 2 fw_retries fixed bin (35), /* force_write retries due to ASTE move */ 139 2 pvhtp ptr unaligned, /* ptr to PV hold table for debugging */ 140 141 /* AST METERS */ 142 143 2 askipsize (0: 3) fixed bin, /* array of skips because wrong AST size */ 144 2 aneedsize (0: 3) fixed bin, /* array of times needed each size */ 145 146 2 stepsa fixed bin, /* count of steps taken looking for an AST entry */ 147 2 askipsehs fixed bin, /* count of skips because EHS was ON */ 148 2 asearches fixed bin, /* count of full searches made */ 149 2 askipslevel fixed bin, /* count of skips because pages were in core */ 150 2 askipsinit fixed bin, /* count of times turned OFF init switch */ 151 2 acost fixed bin, /* cumulative cost of deactivations */ 152 2 askipslock fixed bin, /* count of skips because couldn't lock parent */ 153 2 askipdius fixed bin, /* count of skips because DIUS was on */ 154 155 2 alaps fixed bin, /* lap counter for AST list */ 156 2 updates fixed bin, /* calls to updateb */ 157 2 setfaults_all fixed bin, /* setfaults done to the entire SDW */ 158 2 setfaults_acc fixed bin, /* setfaults done to the access field */ 159 2 total_bf fixed bin, /* count of bound faults */ 160 2 total_bf_pf fixed bin, /* page faults during bound faults */ 161 2 cpu_bf_time fixed bin (71), /* cpu time spent in bound fault */ 162 163 2 asteps (0: 3) fixed bin, /* per-size AST step counters */ 164 165 2 ast_locked_at_time fixed bin (71), /* clock reading when ast last locked */ 166 2 ast_locked_total_time fixed bin (71), /* total real time the ast lock was locked */ 167 2 ast_lock_wait_time fixed bin (71), /* total real time of all waiting on ast lock */ 168 2 ast_locking_count fixed bin (35), /* number of times ast was locked */ 169 2 cleanup_count fixed bin, /* calls to pc$cleanup */ 170 2 cleanup_real_time fixed bin (71), /* total real time in pc$cleanup */ 171 172 /* PRE-PAGE METERS */ 173 174 2 tree_count (0: 63) fixed bin, /* counters for pre-page decisions */ 175 176 2 pp_meters (0: 63) fixed bin, /* counters for measuring pre-page success */ 177 178 179 2 wusedp bit (18) aligned, /* Relative cmep to next cme for writing */ 180 2 write_hunts fixed bin, /* Times claim_mod_core invoked */ 181 2 claim_skip_cme fixed bin, /* Times unacceptable cme found by c_m_c */ 182 2 claim_skip_free fixed bin, /* Times free cme passed by c_m_c */ 183 2 claim_notmod fixed bin, /* Times c_m_c passed pure page */ 184 2 claim_passed_used fixed bin, /* Times used page seen */ 185 2 claim_skip_ptw fixed bin, /* Times c_m_c saw unacceptable ptw */ 186 2 claim_writes fixed bin, /* Writes queued by c_m_c */ 187 2 claim_steps fixed bin, /* Steps passed in core claiming */ 188 2 pre_seeks_failed fixed bin, /* counter of times quick find_core_ failed */ 189 2 resurrections fixed bin, /* nulled addresses reinstated */ 190 2 volmap_seg_page_faults fixed bin (35), /* Pseudo-page faults on volmap_seg */ 191 2 oopv fixed bin, /* out-of-physical-volume page faults */ 192 2 dblw_resurrections fixed bin, /* addresses resurrected by double-writing */ 193 2 sgm_time fixed bin (71), /* Time (VCPU) in seg mover */ 194 2 sgm_pf fixed bin, /* Page faults in seg moving */ 195 2 bad_sgms fixed bin, /* Seg moves that failed */ 196 2 sgm_sgft fixed bin, /* Seg faults in seg moves */ 197 2 good_sgms fixed bin, /* Seg moves that completed */ 198 2 claim_runs fixed bin, /* Times claim_mod_core had to run */ 199 2 activations fixed bin, /* total count of activations */ 200 2 dir_activations fixed bin, /* count of directory activations */ 201 2 hedge_updatevs fixed bin, /* call-in updatevs */ 202 2 hedge_writes fixed bin, /* call in core flush writes */ 203 2 evict_recover_data, /* see evict_page.alm */ 204 3 evict_ptp bit (18) unal, /* ptp of page being moved */ 205 3 evict_phmbit bit (18) unal, /* N/Z if page was mod */ 206 207 /* Data for metering force_write facility 08/19/78 */ 208 209 2 force_swrites fixed bin, /* Calls on segments to force write */ 210 2 force_pwrites fixed bin, /* Mod pages so written */ 211 2 fw_none fixed bin, /* Force write wrote none */ 212 2 force_updatevs fixed bin, /* Updatev's so forced */ 213 214 2 pf_unlock_ptl_time fixed bin (71), /* Time unlocking ptln page faults */ 215 2 pf_unlock_ptl_meterings fixed bin, 216 217 2 makeknown_activations fixed bin (35), /* activations at makeknown time */ 218 2 backup_activations fixed bin (35), /* activations for backup */ 219 2 metering_flags aligned, /* small chunks of misc. information */ 220 3 activate_activated bit (1) unal, /* ON => last call to activate entry actually activated something */ 221 3 pad bit (35) unal, 222 2 seg_fault_calls fixed bin (35), /* number calls to seg_fault for explicit activation */ 223 224 /* METERS FOR STACK TRUNCATION */ 225 226 2 (stk_truncate_should_didnt, /* counts */ 227 stk_truncate_should_did, 228 stk_truncate_shouldnt_didnt, 229 stk_truncate_shouldnt_did) fixed bin (35), 230 2 stk_pages_truncated fixed bin (35), 231 2 stk_pages_truncated_in_core fixed bin (35), 232 233 /* SUPPORT FOR PC SEGMOVES */ 234 235 2 segmove_lock aligned, 236 3 pid bit (36) aligned, 237 3 event bit (36) aligned, 238 3 notify bit (1) aligned, 239 2 segmove_io_limit fixed bin, /* max read aheads */ 240 2 segmove_found_synch fixed bin (35), /* cme.synch_held */ 241 2 segmove_synch_disappeared fixed bin (35), /* page$check_synch fixed */ 242 2 segmove_n_reads fixed bin (35), /* total IO's queued. */ 243 2 segmove_max_tries fixed bin (35), /* max times through the read loop */ 244 245 2 segmove_astep ptr unal, /* if non-null, addresses to be rescued from old_addr_astep */ 246 2 segmove_pvtx fixed bin, /* if segmove_astep nonnull, valid */ 247 2 segmove_vtocx fixed bin, /* ditto */ 248 2 segmove_old_addr_astep ptr unaligned, /* ditto */ 249 2 segmove_new_addr_astep ptr unaligned, /* if non-null, the addresses must be deposited. */ 250 251 2 mod_during_write fixed bin, /* times a page was modified while it was being written */ 252 2 zero_pages fixed bin, /* count of pages truncated because all zero */ 253 2 trace_sw aligned, /* tracing control flags */ 254 3 pad_trace bit (32) unaligned, 255 3 pc_trace_pf bit (1) unaligned, /* tracing for page faults, done, etc. */ 256 3 tty_trace bit (1) unaligned, 257 3 pc_trace bit (1) unaligned, /* flag used by page control primitives */ 258 3 sc_trace bit (1) unaligned, /* flag used by segment control primitives */ 259 2 new_pages fixed bin, /* newly created pages */ 260 2 ast_track bit (1) aligned, /* "1"b => keep SST name table */ 261 2 dirlock_writebehind fixed bin, /* =1 to flush modified dir pages in lock$unlock */ 262 2 write_limit fixed bin, /* Max # of outstanding writes by page control */ 263 2 crash_test_segmove bit (1) aligned, /* crash in mid-segmove */ 264 2 delayed_seg_state_chg fixed bin (35), /* count of times a process was delayed in affecting a seg state */ 265 2 audit_seg_state_chg fixed bin (35), /* count of times a process was audited for excessive seg state changes */ 266 2 seg_state_chg_delay fixed bin (52), /* total times processes were delayed for covert channels */ 267 2 seg_state_change_limit fixed bin, /* number of events over which we determine covert channel bandwidth */ 268 2 max_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we delay */ 269 2 audit_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we audit */ 270 2 seg_state_chg_operation bit (36) aligned, /* access_operation_ value for excessive_seg_state_chg */ 271 2 pad4 (126) bit (36) aligned; /* padding to 512 words (1000)8 */ 272 273 /* END INCLUDE FILE sst.incl.pl1 */