1 :Info: core_map_entry: cme:  2022-07-11  core_map_entry, cme
  2 
  3 
  4 Syntax:  cme ABS_ADDRs
  5          cme -control_arg
  6 
  7 
  8 Function:  Displays information from a core map entry (CME).  Each
  9 describes how a given page of real memory is currently used.
 10 
 11 
 12 Arguments:
 13 ABS_ADDRs
 14    absolute octal address of a location in real memory.  One or more
 15    addresses may be given.  The request displays the CME for the page
 16    containing each of those real memory addresses, and tries to
 17    identify which segment contains that page.
 18 
 19 
 20 Control arguments:
 21    One of the following control arguments may be given instead of the
 22    ABS_ADDRs argument described above.
 23 -index CME_INDEX ...,
 24 -ix CME_INDEX ...
 25    zero-based decimal index in the core map array of one or more CMEs
 26    to be displayed.  This is also the zero-based memory-frame number
 27    (page number) in real memory.  Index values range from 0 to 16383
 28    in a system with 4 SCUs configured with largest memory blocks.
 29 -offset CME_OFFSET ...,
 30 -ofs CME_OFFSET ...
 31    octal offset in the core_map segment of one or more CMEs to be
 32    displayed.  Offsets range from 10o through 200010o in a system with
 33    4 SCUs configured with largest memory blocks.  Given the size of a
 34    CME (4 words), offsets must end with a 0 or 4 octal digit.
 35 
 36 
 37 -ptw PTW_OFFSET
 38    octal offset of a Page Table Word (PTW) within the System Segment
 39    Table (SST), unpaged_page_tables or int_unpaged_page_tables.  If
 40    the PTW is active (not faulted), the request displays the CME
 41    describing the memory frame at the ptw.add absolute address
 42    location.
 43 -aste ASTE_OFFSET
 44    octal offset of an Active Segment Table entry (ASTE) within the
 45    System Segment Table (SST), or of a PTW within a page table in
 46    unpaged_page_tables or int_unpaged_page_tables.  The request
 47    displays the CME for each in-memory PTW containing a page of the
 48    segment.
 49 
 50 
 51 -segment {SEGNO | SEGNAME},
 52 -seg {SEGNO | SEGNAME}
 53    octal segment number or name of a segment known to the selected
 54    dump process and listed in an Active Segment Table entry (ASTE)
 55    within the System Segment Table (SST), or with a page table in
 56    the unpaged_page_tables segment.  The request displays every
 57    CME for each PTW that is in-memory (not faulted).
 58 -search CME_OFFSET,
 59 -srh CME_OFFSET
 60    octal offset in the core_map segment of one CME of interest.
 61    Searches all in-memory PTWs in page tables in the SST,
 62    unpaged_page_tables and int_unpaged_page_tables.  Any PTWs which
 63    reference the memory frame described by the CME of interest are
 64    displayed as a CME reference.
 65 
 66 
 67 List of core map entry fields:
 68    Each CME is displayed on a single line containing several fields.
 69    One of the first four entries below is given to identify the CME.
 70 CME_IDX
 71    The CME is the Nth entry in the core_map array of CMEs, where N
 72    ranges from 0 to 16383.  That CME describes the Nth memory frame
 73    in real hardware memory.
 74 CME_OFS
 75    The CME is located at octal offset CME_OFS within the core_map
 76    segment.  The core_map begins with an 8-word heading followed by an
 77    array of 4-word CMEs.  Thus, CME_OFS can range from 10o through
 78    200010o.
 79 
 80 
 81 ABS_ADDR
 82    Given an octal absolute address in real hardware memory, the CME
 83    describing the memory frame covering that address is displayed.
 84 PTW_OFS
 85    The CME describes the memory frame referenced by the PTW at octal
 86    offset PTW_OFS in the SST, unpaged_page_tables, or
 87    int_unpage_page_tables (segments holding page tables).
 88 
 89 
 90 FWD, BACK
 91    Octal CME offset within the core_map of the next CME in a threaded
 92    list of CMEs, or the prior CME in such threaded list.  The main
 93    threaded list locates CMEs describing memory frames whose contents
 94    are managed by page_control.  Tracing such threads is simplified
 95    when displayed CMEs are identified by their CME_OFS value.
 96    Frames not managed by page_control usually contain segment pages
 97    permanently wired in real memory, or contiguous wired pages
 98    referenced by an unpaged SDW).  Such CMEs usually have 0 FWD and
 99    BACK offsets.
100 
101 
102 ASTEP
103    Octal offset within the SST segment of an ASTE (Active Segment
104    Table Entry) whose associated page table references the memory
105    frame described by this CME.
106 PTWP
107    Octal offset within the SST segment of the specific PTW (Page Table
108    Word) that references the memory frame described by this CME.
109 
110 
111 DFWU
112    Three switches describing the page currently stored in the memory
113    frame.
114      DF is displayed if the SDW used to locate the CME is inactive
115         (has its sdw.df field set to cause a fault).
116       W is displayed if the cme.abs_w bit is "1"b: the page content
117         is abs-wired and its absolute address must not be changed.
118       U is displayed if sdw.unpaged = "1"b: the segment is defined
119         as a set of contiguous pages in real memory without using a
120         page table.  An example is the fault_vector segment.
121 
122 
123 FRAME CONTENT
124    A field summarizing content of the frame.  It usually provides an
125    octal segment number|offset w/in that segment, followed by the
126    reference name or pathname of that segment.  Some memory frames
127    contain disk records that are not defined by the storage system as
128    a segment: for example, a physical volume bit map.  Other frames
129    may be vacant (contain no data).  A frame may contain a active
130    page whose content cannot be identified by data included in the
131    crash image files.
132 
133 
134 FLAGS
135    Describes other elements of the cme data structure, if they have
136    non-zero value.  These include:
137      io=output
138         Content of the memory frame is being written to disk.  If not
139         present, content of disk might be queued to be read from disk,
140         or no I/O operation may be queued.
141      io_error
142         The most recent input/output operation encountered an error.
143      removing
144         Memory frame is being removed by a reconfiguration operation.
145      abs_wired
146         Contents of memory frame must not be relocated to a different
147         memory frame (different absolute address).
148 
149 
150      abs_usable
151         Memory frame eligible to hold a active page which must be
152         abs_wired in memory (is not relocatable).
153      notify_requested
154         An I/O operation is pending.  When it completes, a waiting
155         process needs to be notified of that completion event.
156      phm_hedge
157         pc$flush_core needs to write content of this memory frame to
158         disk.
159 
160 
161      scu(X)
162         ID letter (A, B, C, or D) of the System Control Unit
163         containing the real memory page described by this CME.
164      pin_counter=N
165         number of times to skip eviction of content from this memory
166         frame.
167      synch_entryp=PC_OFFSET
168         Memory frame holds a page of a Data Management synchronized
169         segment.  PC_OFFSET is a relative pointer within page_fault
170         of entry point transferred to when synchronizing content of
171         memory frame with its disk record.
172 
173 
174 Examples:
175 List contents of the first 256 pages of real memory, using the
176 index_set active request to generate the index values so only a single
177 heading line is displayed.
178 
179 azm:  cme -ix [index_set 0 255]
180 
181  CME_INDX     FWD   BACK   ASTEP   PTWP  DFWU  --- FRAME CONTENT ---------------------  --- FLAGS ---
182         0  777777 777777       0      0     U  Seg   4|0       fault_vector             scu(A)
183         1  777777 777777       0      0     U  Seg  11|600     iom_mailbox              scu(A)
184  ...
185       222  777777 777777       0      0        Seg  57|0       idle_dsegs               scu(A)
186       223  777777 777777       0      0        Seg  60|0       idle_pdses               scu(A)
187       224  175620   1614       0      0        Vacant memory frame.                     abs_usable  scu(A)
188                                                  [series of 32 vacant frames]
189       255    2000   2010       0      0        Vacant memory frame.                     abs_usable  scu(A)
190 
191 
192 List contents of the first 256 pages of real memory, with CMEs
193 identified by their octal offset within the core_map segment.  Since
194 the FWD and BACK values in CME output lines are octal offsets,
195 identifying each line by its CME offset can aid in tracing threads of
196 CME entries.
197 
198 The core_map begins with an 8-word header, and CMEs are 4 words in
199 length.  index_set normally expects decimal input values, but will
200 accept values with an octal radix indicator; and will generate octal
201 output when -oct or -octal is given.  The calc active request
202 generates only decimal outputs.
203 
204 azm:  cme -ofs [ixs 10o [calc 255*4] 4 -oct]
205 
206   CME_OFS     FWD   BACK   ASTEP   PTWP  DFWU  --- FRAME CONTENT ---------------------  --- FLAGS ---
207        10  777777 777777       0      0     U  Seg   4|0       fault_vector             scu(A)
208        14  777777 777777       0      0     U  Seg  11|600     iom_mailbox              scu(A)
209   ...
210      1600  777777 777777       0      0        Seg  57|0       idle_dsegs               scu(A)
211      1604  777777 777777       0      0        Seg  60|0       idle_pdses               scu(A)
212      1610  175620   1614       0      0        Vacant memory frame.                     abs_usable  scu(A)
213                                                  [series of 30 vacant frames]
214      1774    1770   2000       0      0        Vacant memory frame.                     abs_usable  scu(A)
215 
216 
217 Search for all PTWs that reference the memory frame at core_map offset
218 1604.
219 
220 azm:  cme -search 1604
221 
222   CME_OFS     FWD   BACK   ASTEP   PTWP  DFWU  --- FRAME CONTENT ---------------------  --- FLAGS ---
223      1604       0      0       0      0    W   Seg  60|0       idle_pdses               abs_wired  scu(A)
224      1604       0      0       0      0    W   Seg 436|0       free_area_1              abs_wired  scu(A)
225 
226 
227 Search for all segments which include the breakpoint_page.
228 
229 azm:  cme -seg breakpoint_page
230 
231 CMEs  for      Segment without ASTE: breakpoint_page (Seg 14  in Proc 0), with Page Table at unpaged_page_tables|36.
232 
233   CME_OFS     FWD   BACK   ASTEP   PTWP  DFWU  --- FRAME CONTENT ---------------------  --- FLAGS ---
234       144       0      0       0      0    W   Seg  14|0       breakpoint_page          abs_wired  scu(A)
235                                                 CA-MAX 1777
236 
237 azm:  cme -srh 144
238 
239 19 PTWs reference memory frame described by core_map|144:
240 
241   CME_OFS     FWD   BACK   ASTEP   PTWP  DFWU  --- FRAME CONTENT ---------------------  --- FLAGS ---
242       144       0      0       0      0    W   Seg  14|0       breakpoint_page          abs_wired  scu(A)
243       144       0      0       0      0    W   Seg  17|6000    ws_linkage               abs_wired  scu(A)
244       144       0      0       0      0    W   Seg  34|6000    bound_interceptors       abs_wired  scu(A)
245       144       0      0       0      0    W   Seg  35|12000   bound_io_wired           abs_wired  scu(A)
246       144       0      0       0      0    W   Seg  37|4000    bound_iom_support        abs_wired  scu(A)
247       144       0      0       0      0    W   Seg  42|50000   bound_page_control       abs_wired  scu(A)
248       144       0      0       0      0    W   Seg  43|6000    bound_priv_1             abs_wired  scu(A)
249       144       0      0       0      0    W   Seg  44|10000   bound_tc_priv            abs_wired  scu(A)
250       144       0      0       0      0    W   Seg  45|2000    bound_unencacheable      abs_wired  scu(A)
251       144       0      0       0      0    W   Seg  46|30000   bound_wired_1            abs_wired  scu(A)
252       144       0      0       0      0    W   Seg  55|2000    emergency_shutdown       abs_wired  scu(A)
253       144       0      0       0      0    W   Seg  61|2000    init_processor           abs_wired  scu(A)
254       144       0      0       0      0    W   Seg  75|2000    restart_fault            abs_wired  scu(A)
255       144       0      0       0      0    W   Seg  76|2000    return_to_ring_0_        abs_wired  scu(A)
256       144       0      0       0      0    W   Seg 100|2000    signaller                abs_wired  scu(A)
257       144       0      0       0      0    W   Seg 406|2000    wi_linkage               abs_wired  scu(A)
258       144       0      0       0      0    W   Seg  72|22000   prds                     abs_wired  scu(A)
259       144       0      0       0      0    W   Seg  41|114000  bound_library_wired_     abs_wired  scu(A)
260       144       0      0       0      0    W   Seg  56|42000   error_table_             abs_wired  scu(A)
261 
262 
263 The first 3 pages of real memory holds contents of 3 special segments.
264 Each is a contiguous region within part of a page, or within several
265 adjacent pages of real memory.  Each is defined by an SDW whose
266 sdw.add references the starting point of the contiguous region, and
267 whose sdw.bound gives its length (in 16-word blocks), and
268 sdw.unpaged = "1"b meaning no page table is used to define these
269 special segments.
270 
271 The following example shows starting point and bounds of these three
272 segments by displaying CME information for the first 4 pages of real
273 memory, giving absolute addresses separated by 128 words.  Because
274 the first two page of real memory hold contents of two different
275 segments, this region cannot be managed by page control.  Therefore,
276 the segments must be wired in memory.  The cme request must search for
277 an SDW claiming ownership of each absolute address given as input.
278 
279 azm:  cme [ixs 0 10000o 200o -oct]
280 
281  ABS_ADDR     FWD   BACK   ASTEP   PTWP  DFWU  --- FRAME CONTENT ---------------------  --- FLAGS ---
282         0       0      0       0      0    WU  Seg   4|0       fault_vector             abs_wired  scu(A)
283       200       0      0       0      0    WU  Seg   4|200     fault_vector             abs_wired  scu(A)
284       400       0      0       0      0    WU  Seg   4|400     fault_vector             abs_wired  scu(A)
285       600       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
286      1000       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
287      1200       0      0       0      0    WU  Seg  11|0       iom_mailbox              abs_wired  scu(A)
288      1400       0      0       0      0    WU  Seg  11|200     iom_mailbox              abs_wired  scu(A)
289      1600       0      0       0      0    WU  Seg  11|400     iom_mailbox              abs_wired  scu(A)
290      2000       0      0       0      0    WU  Seg  11|600     iom_mailbox              abs_wired  scu(A)
291      2200       0      0       0      0    WU  Seg  11|1000    iom_mailbox              abs_wired  scu(A)
292      2400       0      0       0      0    WU  Seg  11|1200    iom_mailbox              abs_wired  scu(A)
293      2600       0      0       0      0    WU  Seg  11|1400    iom_mailbox              abs_wired  scu(A)
294      3000       0      0       0      0    WU  Seg  11|1600    iom_mailbox              abs_wired  scu(A)
295      3200       0      0       0      0    WU  Seg  11|2000    iom_mailbox              abs_wired  scu(A)
296      3400       0      0       0      0    WU  Seg   3|0       dn355_mailbox            abs_wired  scu(A)
297      3600       0      0       0      0    WU  Seg   3|200     dn355_mailbox            abs_wired  scu(A)
298      4000       0      0       0      0    WU  Seg   3|400     dn355_mailbox            abs_wired  scu(A)
299      4200       0      0       0      0    WU  Seg   3|600     dn355_mailbox            abs_wired  scu(A)
300      4400       0      0       0      0    WU  Seg   3|1000    dn355_mailbox            abs_wired  scu(A)
301      4600       0      0       0      0    WU  Seg   3|1200    dn355_mailbox            abs_wired  scu(A)
302      5000       0      0       0      0    WU  Seg   3|1400    dn355_mailbox            abs_wired  scu(A)
303      5200       0      0       0      0    WU  Seg   3|1600    dn355_mailbox            abs_wired  scu(A)
304      5400       0      0       0      0    WU  Seg   3|2000    dn355_mailbox            abs_wired  scu(A)
305      5600       0      0       0      0    WU  Seg   3|2200    dn355_mailbox            abs_wired  scu(A)
306      6000       0      0       0      0    WU  Seg   3|2400    dn355_mailbox            abs_wired  scu(A)
307      6200       0      0       0      0    WU  Seg   3|2600    dn355_mailbox            abs_wired  scu(A)
308      6400       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
309      6600       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
310      7000       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
311      7200       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
312      7400       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
313      7600       0      0       0      0    W   Vacant memory.                           abs_wired  scu(A)
314     10000       0      0       0      0    W   Seg   1|0       bos_toehold              abs_wired  scu(A)
315 
316 
317 :hcom:
318 /****^  HISTORY COMMENTS:
319   1) change(2022-12-24,GDixon), approve(2023-01-16,MCR10129),
320      audit(2023-02-28,Swenson), install(2023-02-28,MR12.8-1054):
321       A) Initial version of this info segment.
322                                                    END HISTORY COMMENTS */
323