/* BEGIN INCLUDE FILE ... sst.incl.pl1 ... January 1971 */ /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ /* Deleted paging device info and added pc segmove info, Benson Margulies 84-01-03 */ /* Added covert channel meters, Keith Loepere 85-01-08. */ dcl sst_seg$ external; dcl sstp ptr; dcl 1 sst based (sstp) aligned, 2 space (8) fixed bin, /* empty space to watch for bugs */ /* SST HEADER */ 2 pre_page_time fixed bin (71), /* total time spent pre-paging */ 2 post_purge_time fixed bin (71), /* total time spent post-purging */ 2 post_in_core fixed bin, /* total pages in core (and in list) at purge time */ 2 thrashing fixed bin, /* meter of thrashing being done on system */ 2 npfs_misses fixed bin, /* meter of times npfs was on when pre-paging */ 2 salv fixed bin, /* flag which is ^=0 if and only if salvaging */ 2 ptl bit (36), /* global page table loop lock */ 2 astl bit (36), /* global ast allocation block lock */ 2 astl_event bit (36), /* event used when waiting for AST lock */ 2 astl_notify_requested bit (1) aligned, /* flag to notify AST lock */ 2 nused fixed bin, /* number of pages on used list */ 2 ptwbase fixed bin (24), /* absolute address of page table array */ 2 tfreep ptr, /* pointer to first trailer on free list */ 2 astap ptr, /* aste array pointer */ 2 ptl_wait_ct fixed bin, /* pxss: number is >= # of processes waiting to ptl */ 2 astsize fixed bin, /* size of an AST entry */ 2 cmesize fixed bin, /* size of a CME entry */ 2 root_astep ptr, /* pointer to the root AST entry */ 2 pts (0: 3) fixed bin, /* array of page table sizes */ 2 level (0:3), /* per-list information about ASTE's */ 3 (ausedp, no_aste) bit (18) unaligned, /* used list and count of number of entries */ 2 (atempp, atempp1) bit (18) unal, /* temp seg list pointer */ 2 dm_enabled bit (1) aligned, /* ON => journal seg exists */ 2 (ainitp, ainitp1) bit (18) unal, /* init seg list pointer */ 2 strsize fixed bin, /* Trailer size in words. */ /* CORE MAP HEADER */ 2 cmp ptr, /* pointer to start of core map */ 2 usedp bit (18), /* pointer to first used core block */ 2 wtct fixed bin, /* count of pages being written */ 2 startp bit (18), /* pointer to solid page for lap counting (fsdct) */ 2 removep bit (18), /* pointer to list of pages being removed from use */ /* MISC */ 2 double_write fixed bin, /* trigger for store through scheme */ /* 0 = no double writes, 1 = all non-pd pages get written, 2 = all directories get written */ 2 temp_w_event bit (36) aligned, /* wait event for temp wiring lock */ 2 root_pvtx fixed bin, /* pvtx or rpv */ 2 nolock bit (1) aligned, /* if on, don't lock ptl on interrupts */ 2 fc_skips_pinned fixed bin (35), /* number of skips over pinned page in find_core */ 2 cl_skips_pinned fixed bin (35), /* number of skips over pinned page in claim_mod_core */ 2 ast_ht_ptr ptr, /* AST hast table pointer */ 2 ast_ht_n_buckets fixed bin, /* number of buckets in AST hash table */ 2 ast_ht_uid_mask bit (36) aligned, /* mask to strip out low-order bits of uid */ 2 meter_ast_locking fixed bin, /* non-zero enables AST lock meters */ 2 checksum_filemap fixed bin, /* non-zero enables filemap checksumming */ 2 page_read_errors fixed bin, /* read errors posted to page control */ 2 page_write_errors fixed bin, /* write errors posted to page control */ 2 cycle_pv_allocation fixed bin, /* flag to cycle VTOCE allocation among PVs */ 2 n_trailers fixed bin, /* Number of trailer entries in str_seg */ 2 synch_activations fixed bin (35), /* Activation attempts for synchronized segs */ 2 synch_skips fixed bin (35), /* get_aste skips because not synchronized */ 2 lock_waits fixed bin, /* Number of times we had to wait for a lock */ 2 total_locks_set fixed bin, /* Total number of block locks set */ 2 pdir_page_faults fixed bin, /* total page faults off >pdd */ 2 level_1_page_faults fixed bin, /* total page faults in sys libes */ 2 dir_page_faults fixed bin, /* Total page faults on directories */ 2 ring_0_page_faults fixed bin, /* page faults in ring 0 */ 2 rqover fixed bin (35), /* errcode for record quota overflow */ 2 pc_io_waits fixed bin, /* Number of times pc had to wait on io */ /* The following (until pdmap) used to be the 'cnt' in cnt.incl.pl1 */ 2 steps fixed bin, /* number of steps taken around used list */ 2 needc fixed bin, /* number of times core page needed */ 2 ceiling fixed bin, /* number of times ceiling hit */ 2 ctwait fixed bin, /* number of times write counter was full */ 2 wired fixed bin, /* number of pages wired by pc */ 2 laps fixed bin, /* number of times around used list */ 2 skipw fixed bin, /* number of pages skiped because they were wired */ 2 skipu fixed bin, /* because of being used */ 2 skipm fixed bin, /* because of being modified */ 2 skipos fixed bin, /* because out of service */ 2 aused fixed bin, /* number of AST entries on used list */ 2 damaged_ct fixed bin, /* count of segments that system damaged */ 2 deact_count fixed bin, /* count of deactivations */ 2 demand_deact_attempts fixed bin, /* user requested deactivations */ 2 demand_deactivations fixed bin, /* user instigated deactivations */ 2 reads (8) fixed bin, /* number of reads for each did */ 2 writes (8) fixed bin, /* number of writes for each did */ 2 short_pf_count fixed bin, /* count of page faults on out of service pages */ 2 loop_locks fixed bin, /* count of times locked PTL */ 2 loop_lock_time fixed bin (71), /* time spent looping on PTL */ 2 cpu_sf_time fixed bin (71), /* cpu time spent in seg_fault */ 2 total_sf_pf fixed bin, /* total page faults while in seg_fault */ 2 total_sf fixed bin, /* total number of seg_faults */ 2 pre_page_size fixed bin, /* total pre-pagings expected */ 2 post_list_size fixed bin, 2 post_purgings fixed bin, /* total number of post-purgings */ 2 post_purge_calls fixed bin, /* total number of calls to post-purge */ 2 pre_page_calls fixed bin, /* total number of calls tp pre-page */ 2 pre_page_list_size fixed bin, 2 pre_page_misses fixed bin, /* total number of misses in pre-page list */ 2 pre_pagings fixed bin, /* total number of pre-pagings */ /* TEMPORARY WIRED PROCEDURE INFO */ 2 wire_proc_data (8) fixed bin (71), /* data for wire_proc */ /* MAIN MEMORY USAGE INFORMATION */ 2 abs_wired_count fixed bin, /* count of abs-wired pages */ 2 system_type fixed bin, /* ADP_SYSTEM or L68_SYSTEM */ 2 wired_copies fixed bin, /* number of times a wired page was copied */ 2 recopies fixed bin, /* number of times recopied because modified */ 2 first_core_block fixed bin, /* core map index for first block of core */ 2 last_core_block fixed bin, /* core map index for last block of core */ 2 fw_retries fixed bin (35), /* force_write retries due to ASTE move */ 2 pvhtp ptr unaligned, /* ptr to PV hold table for debugging */ /* AST METERS */ 2 askipsize (0: 3) fixed bin, /* array of skips because wrong AST size */ 2 aneedsize (0: 3) fixed bin, /* array of times needed each size */ 2 stepsa fixed bin, /* count of steps taken looking for an AST entry */ 2 askipsehs fixed bin, /* count of skips because EHS was ON */ 2 asearches fixed bin, /* count of full searches made */ 2 askipslevel fixed bin, /* count of skips because pages were in core */ 2 askipsinit fixed bin, /* count of times turned OFF init switch */ 2 acost fixed bin, /* cumulative cost of deactivations */ 2 askipslock fixed bin, /* count of skips because couldn't lock parent */ 2 askipdius fixed bin, /* count of skips because DIUS was on */ 2 alaps fixed bin, /* lap counter for AST list */ 2 updates fixed bin, /* calls to updateb */ 2 setfaults_all fixed bin, /* setfaults done to the entire SDW */ 2 setfaults_acc fixed bin, /* setfaults done to the access field */ 2 total_bf fixed bin, /* count of bound faults */ 2 total_bf_pf fixed bin, /* page faults during bound faults */ 2 cpu_bf_time fixed bin (71), /* cpu time spent in bound fault */ 2 asteps (0: 3) fixed bin, /* per-size AST step counters */ 2 ast_locked_at_time fixed bin (71), /* clock reading when ast last locked */ 2 ast_locked_total_time fixed bin (71), /* total real time the ast lock was locked */ 2 ast_lock_wait_time fixed bin (71), /* total real time of all waiting on ast lock */ 2 ast_locking_count fixed bin (35), /* number of times ast was locked */ 2 cleanup_count fixed bin, /* calls to pc$cleanup */ 2 cleanup_real_time fixed bin (71), /* total real time in pc$cleanup */ /* PRE-PAGE METERS */ 2 tree_count (0: 63) fixed bin, /* counters for pre-page decisions */ 2 pp_meters (0: 63) fixed bin, /* counters for measuring pre-page success */ 2 wusedp bit (18) aligned, /* Relative cmep to next cme for writing */ 2 write_hunts fixed bin, /* Times claim_mod_core invoked */ 2 claim_skip_cme fixed bin, /* Times unacceptable cme found by c_m_c */ 2 claim_skip_free fixed bin, /* Times free cme passed by c_m_c */ 2 claim_notmod fixed bin, /* Times c_m_c passed pure page */ 2 claim_passed_used fixed bin, /* Times used page seen */ 2 claim_skip_ptw fixed bin, /* Times c_m_c saw unacceptable ptw */ 2 claim_writes fixed bin, /* Writes queued by c_m_c */ 2 claim_steps fixed bin, /* Steps passed in core claiming */ 2 pre_seeks_failed fixed bin, /* counter of times quick find_core_ failed */ 2 resurrections fixed bin, /* nulled addresses reinstated */ 2 volmap_seg_page_faults fixed bin (35), /* Pseudo-page faults on volmap_seg */ 2 oopv fixed bin, /* out-of-physical-volume page faults */ 2 dblw_resurrections fixed bin, /* addresses resurrected by double-writing */ 2 sgm_time fixed bin (71), /* Time (VCPU) in seg mover */ 2 sgm_pf fixed bin, /* Page faults in seg moving */ 2 bad_sgms fixed bin, /* Seg moves that failed */ 2 sgm_sgft fixed bin, /* Seg faults in seg moves */ 2 good_sgms fixed bin, /* Seg moves that completed */ 2 claim_runs fixed bin, /* Times claim_mod_core had to run */ 2 activations fixed bin, /* total count of activations */ 2 dir_activations fixed bin, /* count of directory activations */ 2 hedge_updatevs fixed bin, /* call-in updatevs */ 2 hedge_writes fixed bin, /* call in core flush writes */ 2 evict_recover_data, /* see evict_page.alm */ 3 evict_ptp bit (18) unal, /* ptp of page being moved */ 3 evict_phmbit bit (18) unal, /* N/Z if page was mod */ /* Data for metering force_write facility 08/19/78 */ 2 force_swrites fixed bin, /* Calls on segments to force write */ 2 force_pwrites fixed bin, /* Mod pages so written */ 2 fw_none fixed bin, /* Force write wrote none */ 2 force_updatevs fixed bin, /* Updatev's so forced */ 2 pf_unlock_ptl_time fixed bin (71), /* Time unlocking ptln page faults */ 2 pf_unlock_ptl_meterings fixed bin, 2 makeknown_activations fixed bin (35), /* activations at makeknown time */ 2 backup_activations fixed bin (35), /* activations for backup */ 2 metering_flags aligned, /* small chunks of misc. information */ 3 activate_activated bit (1) unal, /* ON => last call to activate entry actually activated something */ 3 pad bit (35) unal, 2 seg_fault_calls fixed bin (35), /* number calls to seg_fault for explicit activation */ /* METERS FOR STACK TRUNCATION */ 2 (stk_truncate_should_didnt, /* counts */ stk_truncate_should_did, stk_truncate_shouldnt_didnt, stk_truncate_shouldnt_did) fixed bin (35), 2 stk_pages_truncated fixed bin (35), 2 stk_pages_truncated_in_core fixed bin (35), /* SUPPORT FOR PC SEGMOVES */ 2 segmove_lock aligned, 3 pid bit (36) aligned, 3 event bit (36) aligned, 3 notify bit (1) aligned, 2 segmove_io_limit fixed bin, /* max read aheads */ 2 segmove_found_synch fixed bin (35), /* cme.synch_held */ 2 segmove_synch_disappeared fixed bin (35), /* page$check_synch fixed */ 2 segmove_n_reads fixed bin (35), /* total IO's queued. */ 2 segmove_max_tries fixed bin (35), /* max times through the read loop */ 2 segmove_astep ptr unal, /* if non-null, addresses to be rescued from old_addr_astep */ 2 segmove_pvtx fixed bin, /* if segmove_astep nonnull, valid */ 2 segmove_vtocx fixed bin, /* ditto */ 2 segmove_old_addr_astep ptr unaligned, /* ditto */ 2 segmove_new_addr_astep ptr unaligned, /* if non-null, the addresses must be deposited. */ 2 mod_during_write fixed bin, /* times a page was modified while it was being written */ 2 zero_pages fixed bin, /* count of pages truncated because all zero */ 2 trace_sw aligned, /* tracing control flags */ 3 pad_trace bit (32) unaligned, 3 pc_trace_pf bit (1) unaligned, /* tracing for page faults, done, etc. */ 3 tty_trace bit (1) unaligned, 3 pc_trace bit (1) unaligned, /* flag used by page control primitives */ 3 sc_trace bit (1) unaligned, /* flag used by segment control primitives */ 2 new_pages fixed bin, /* newly created pages */ 2 ast_track bit (1) aligned, /* "1"b => keep SST name table */ 2 dirlock_writebehind fixed bin, /* =1 to flush modified dir pages in lock$unlock */ 2 write_limit fixed bin, /* Max # of outstanding writes by page control */ 2 crash_test_segmove bit (1) aligned, /* crash in mid-segmove */ 2 delayed_seg_state_chg fixed bin (35), /* count of times a process was delayed in affecting a seg state */ 2 audit_seg_state_chg fixed bin (35), /* count of times a process was audited for excessive seg state changes */ 2 seg_state_chg_delay fixed bin (52), /* total times processes were delayed for covert channels */ 2 seg_state_change_limit fixed bin, /* number of events over which we determine covert channel bandwidth */ 2 max_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we delay */ 2 audit_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we audit */ 2 seg_state_chg_operation bit (36) aligned, /* access_operation_ value for excessive_seg_state_chg */ 2 pad4 (126) bit (36) aligned; /* padding to 512 words (1000)8 */ /* END INCLUDE FILE sst.incl.pl1 */ */ ----------------------------------------------------------- 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 */