[comp.os.vms] PID's across VAXClusters

WILLIAMS_B@svax05.pfizer-central-research.co.UK (09/09/87)

Does anyone know how you can relate the first few digits of the PID
to the cluster node you are on? I'd like to be able to tell which
account file I'm looking at by the PID's of the processes therein.

Thanks
Brian Williams (address above)

nagy%warner.hepnet@LBL.ARPA (09/10/87)

>Does anyone know how you can relate the first few digits of the PID
>to the cluster node you are on? I'd like to be able to tell which
>account file I'm looking at by the PID's of the processes therein.
     
The following was pulled from the SYS$LIBRARY:LIB.REQ file (under VMS V4.5):

! 
! *** WARNING - THE INTERNAL STRUCTURE OF THE EPID IS SUBJECT TO RADICAL
! ***           CHANGE BETWEEN VERSIONS OF VMS.  NO ASSUMPTIONS SHOULD
! ***           EVER BE MADE ABOUT ITS FORMAT
! 

PCB$V_EPIC_PROC		size=21 bits	offset=bit 0
			! PROCESS ID FIELD, CAN CONVERT TO PCB$L_PID

PCB$V_EPID_NODE_IDX	size=8 bits	offset=bit 21
			! IDX - INDEX TO TABLE OF NODE IDENTIFICATIONS

PCB$V_EPID_NODE_SEQ	size=2 bits	offset=bit 29
			! SEQ - SEQUENCE NUMBER FOR NODE TABLE ENTRY REUSE

PCB$V_EPID_WILD		size=1 bit	offset=bit 31
			! FLAG THAT EPID IS WILDCARD CONTEXT FOR $GETJPI,
			! AND NOT A VALID EPID

So, the node is represented in the EPID (External or Extended PID), by
an index into a table.  I believe that nodes are added to the table in
the order they join the VAXCluster.  Thus the node identified by a particular
slot in the table can possibly change from boot to boot.  My interpretation
of this is that the EPID is not useful in determining which processor a
process ran on in the past; only which processor it is running on at the
present time (present incarnation of the VAXCluster after a boot).



= Frank J. Nagy   "VAX Guru"
= Fermilab Research Division EED/Controls
= HEPNET: WARNER::NAGY (43198::NAGY) or FNAL::NAGY (43009::NAGY)
= BitNet: NAGY@FNAL
= USnail: Fermilab POB 500 MS/220 Batavia, IL 60510