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 */