Opened 13 days ago

Last modified 13 days ago

#397 new enhancement

Need a tool to display IPC Event Channels

Reported by: Gary Dixon Owned by: Eric Swenson
Priority: major Milestone: No Milestore
Component: Tools Version: MR12.9
Keywords: IPC ECT Event Channel Cc:

Description

It is sometimes necessary to display status information for the IPC event channels in-use by a given process in order to determine why the communication between two Multics processes is not functioning properly.

An Event Channel Table (ECT) is created in each active ring of a user process which invokes ipc_$create_event_channel (or one of the earlier channel creation subroutines) to request creation of a new event wait or event call channel for use in that ring.

A new tool is needed to:

  • Display meters describing event channels in use by a given ring of a process.
  • Display information about status of each event channel registered in that ring.

Ideally, the new tool would be able to display unhandled events recorded in the table on a particular event channel. However, this may be difficult to do, since there is no particular format required for the event messages sent through event wait and event call channels.

Providing meters, and showing status of existing event channels would be a good start for such tool.

Change History (3)

comment:1 by Gary Dixon, 13 days ago

Summary: Need a tool to display information from IPC Event Channel TablesNeed a tool to display IPC Event Channels

comment:2 by Gary Dixon, 13 days ago

Typical output from the proposed event_channel_table.ec is shown below.

ec ect


  GDixon.Multics            2026-08-10 13:00:21
 Ring 4   Event Channel Table      at  247|17240

   --------- CHANNELS -----   Counts
    Total Channels                38
     Wait Channels                37
       Fast Chn in-use         1
       Fast Chn unassigned    35
       Regular Wait Chn        1
     Call Channels                 1

   ---- PENDING MESSAGES --   Counts
               Wait Channel        0
               Call Channel        0
                ITT Channel        0

   ---------- METERS ------   Counts
              Total Wakeups        0
               Wait Wakeups        0
               Call Wakeups        0
                 ITT Tosses        1
     Control Points Waiting        0

   ---------- FLAGS -------   -------------
        Event Call Channels    Low Priority
      Control Point Wakeups      disabled




 Wait Channels       starting at  247|17416

                               ----- Wait Channel -----    - Control Points -
                                       Fast_Chan   Count  Wake_CPs
   Address                Name            \   ID  Inh Wkp   |      1st Wkp CP   1st Msg --   Next W Chn
  247|17416  "337705421142400000000001"b3  F   1    0   0              (none)       (none)    247|17434
  247|20424  "337752215244440000000002"b3      -    0   0              (none)       (none)       (none)





 Call Channels       starting at  247|20406

                                     ---- Call Channel ----   - Control Point
                                  Priority  Async  Inhib  -Count-   Wake_CPs
   Address                Name            \    |    /    INH    WKP   |      1st Msg --  Next C Chn
  247|20406  "337751574101440000000001"b3  1               0      0              (none)       (none)
             procedure:  325|7233  message_facility_$wakeup_processor     data:  247|176132
             control point ID:  "000234000000"b3

r 13:00 22.099 814

comment:3 by Gary Dixon, 13 days ago

The ect.azmec can also be invoked as an exec_com request in analyze_multics while selecting a process in an ERF crash dump. The output below shows event channels used by the Initializer.SysDaemon process in its ring-1 runtime environment.

azm:  sld 011925.2154.0.1
  ERF 1   in directory >dumps dumped at 01/19/25  2254.7 mst Sun.
  System-ID GARYIPC4 Version-ID GARYIPC4
Proc  20 DBR  16637154 running        on cpu a   Clayton.SysAdmin.a

azm:  slp 0
Process   0, Initializer.SysDaemon.z, DBR  17007650

azm:  ec ect ring=1,default,lists,unused



  Initializer.SysDaemon     2025-01-19 10:40:56
 Ring 1   Event Channel Table      at  307|11300

   --------- CHANNELS -----   Counts
    Total Channels                38
     Wait Channels                38
       Fast Chn in-use         0
       Fast Chn unassigned    36
       Regular Wait Chn        2
     Call Channels                 0

   ---- PENDING MESSAGES --   Counts
               Wait Channel        0
               Call Channel        0
                ITT Channel        0

   ---------- METERS ------   Counts
              Total Wakeups       20
               Wait Wakeups       20
               Call Wakeups        0
                 ITT Tosses        0
     Control Points Waiting        0

   ---------- FLAGS -------   -------------
        Event Call Channels    Low Priority
      Control Point Wakeups      disabled

  ----------- LISTS -------   First Item
              Wait Channels   at  307|11456
              Call Channels     (none)
  Pending Wait Channel Msgs     (none)
  Pending Call Channel Msgs     (none)
  Pending Interprocess Msgs     (none)

  ---------- STORAGE ------   -------------
                   ECT Area   at  307|11230      size:   1044 words
  Event Channel Index Table   at  307|11354      size:     64 packed pointers




 Wait Channels       starting at  307|11456

                               ----- Wait Channel -----    - Control Points -
                                       Fast_Chan   Count  Wake_CPs
   Address                Name            \   ID  Inh Wkp   |      1st Wkp CP   1st Msg --   Next W Chn
  307|11456  "702364212443100000000001"b3  F   1  (unassigned)                                307|11474
  307|11474  "702365425107100000000002"b3  F   2  (unassigned)                                307|11512
  307|11512  "702366637552100000000003"b3  F   3  (unassigned)                                307|11530
  307|11530  "702367052216100000000004"b3  F   4  (unassigned)                                307|11546
  307|11546  "702370264662100000000005"b3  F   5  (unassigned)                                307|11564
  307|11564  "702371477325100000000006"b3  F   6  (unassigned)                                307|11602
  307|11602  "702372711771100000000007"b3  F   7  (unassigned)                                307|11620
  307|11620  "702373124435100000000010"b3  F   8  (unassigned)                                307|11636
  307|11636  "702374337100100000000011"b3  F   9  (unassigned)                                307|11654
  307|11654  "702375551544100000000012"b3  F  10  (unassigned)                                307|11672
  307|11672  "702376764207100000000013"b3  F  11  (unassigned)                                307|11710
  307|11710  "702377176653100000000014"b3  F  12  (unassigned)                                307|11726
  307|11726  "702400411317100000000015"b3  F  13  (unassigned)                                307|11744
  307|11744  "702401623762100000000016"b3  F  14  (unassigned)                                307|11762
  307|11762  "702402036426100000000017"b3  F  15  (unassigned)                                307|12000
  307|12000  "702403251072100000000020"b3  F  16  (unassigned)                                307|12016
  307|12016  "702404463535100000000021"b3  F  17  (unassigned)                                307|12034
  307|12034  "702405676201100000000022"b3  F  18  (unassigned)                                307|12052
  307|12052  "702406110644100000000023"b3  F  19  (unassigned)                                307|12070
  307|12070  "702407323310100000000024"b3  F  20  (unassigned)                                307|12106
  307|12106  "702410535754100000000025"b3  F  21  (unassigned)                                307|12124
  307|12124  "702411750417100000000026"b3  F  22  (unassigned)                                307|12142
  307|12142  "702412163063100000000027"b3  F  23  (unassigned)                                307|12160
  307|12160  "702413375527100000000030"b3  F  24  (unassigned)                                307|12176
  307|12176  "702414610172100000000031"b3  F  25  (unassigned)                                307|12214
  307|12214  "702415022636100000000032"b3  F  26  (unassigned)                                307|12232
  307|12232  "702416235301100000000033"b3  F  27  (unassigned)                                307|12250
  307|12250  "702417447745100000000034"b3  F  28  (unassigned)                                307|12266
  307|12266  "702420662411100000000035"b3  F  29  (unassigned)                                307|12304
  307|12304  "702421075054100000000036"b3  F  30  (unassigned)                                307|12322
  307|12322  "702422307520100000000037"b3  F  31  (unassigned)                                307|12340
  307|12340  "702423522164100000000040"b3  F  32  (unassigned)                                307|12356
  307|12356  "702424734627100000000041"b3  F  33  (unassigned)                                307|12374
  307|12374  "702425147273100000000042"b3  F  34  (unassigned)                                307|12412
  307|12412  "702426361736100000000043"b3  F  35  (unassigned)                                307|12430
  307|12430  "702427574402100000000044"b3  F  36  (unassigned)                                307|12446
  307|12446  "702430007046140000000021"b3      -    0   0              (none)       (none)    307|12464
  307|12464  "702431221511140000000022"b3      -    0   4              (none)       (none)       (none)



azm:  
Note: See TracTickets for help on using tickets.