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 , 13 days ago
| Summary: | Need a tool to display information from IPC Event Channel Tables → Need a tool to display IPC Event Channels |
|---|
comment:2 by , 13 days ago
comment:3 by , 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:

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