OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles


Topic author
mgdaniel
Valued Contributor
Posts: 62
Joined: Mon Feb 28, 2022 5:16 pm
Reputation: 0
Location: Adelaide, South Australia
Status: Offline
Contact:

OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by mgdaniel » Thu Apr 27, 2023 5:57 pm

This originated from a post to the info-WASD mailing list noting the very significant more KERNEL mode used by x86-64 VMS V9.2 https://wasd.vsm.com.au/info-WASD/2023/0077

This also kicked-off a discussion on c.o.v. https://groups.google.com/g/comp.os.vms/c/Eu2eP4Yid7Y

In that post I observe a very significant increase in KERNEL mode usage on X86 V9.2 compared to my Alpha V8.4 and basically ask why? (my uninformed conjecture was memory KESU access via emulation, probably at least that)

Is there someone or somewhere that can explain why the KERNEL mode is the standout in this simple baseline test?

For those who will not read the full test of the above post I'd like to emphasise the ZAP crawl was the most equitable (and easy for me to setup).
ZAP is also used for this KERNEL mode exercise because it results in a
"crawl" of similar portions of underlying files and executables (scripts)
across multiple independent systems and so represents similar profiles of
NETWORK, SYSTEM SERVICE, APPLICATION ACTIVATION AND OTHER ASPECTS of system
behaviour.

User avatar

volkerhalle
Master
Posts: 196
Joined: Fri Aug 14, 2020 11:31 am
Reputation: 0
Status: Offline

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by volkerhalle » Fri Apr 28, 2023 2:46 am

Mark,

if you're interested in the details of the KERNEL mode usage, consider to run the following to provide more detailled information (copied from my reply in comp.os.vms):

$ ANA/SYS
SDA> READ/EXEC ! get better symbolization (routine names)
SDA> PCS LOAD ! PC sampling SDA Execlet
SDA> PCS START TRACE
...
SDA> PCS STOP TRACE
SDA> PCS SHOW TRACE/STAT/MODE=KERNEL
...
SDA> PCS UNLOAD
SDA> EXIT

SDA> PCS SHOW TRACE/STAT/MODE=KERNEL will show the PC values seen most often during the trace period (sorted by decreasing no. of occurences) and it will symbolize the PC values as routine names or execlet names. This might give you an idea, which kind of kernel mode code is running how often.

Added in 2 hours 18 minutes 22 seconds:

here are some MONITOR MODE/AVERAGE examples from running the SAME SRI_VUPS_NEW.COM procedure on otherwise idle systems for 3 different architectures Alpha (emulated), I64 (rx2600) and x86-64 E9.2-1

Code: Select all

                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node AXPVMS
            +-----+         28-APR-2023 10:19:32.61

                                     0         25        50        75       100
                                     + - - - - + - - - - + - - - - + - - - - +
 Interrupt State                     |
                                     |         |         |         |         |
 MP Synchronization                  |
                                     |         |         |         |         |
 Kernel Mode                       1 |
                                     |         |         |         |         |
 Executive Mode                   22 |********
                                     |         |         |         |         |
 Supervisor Mode                  76 |******************************
                                     |         |         |         |         |
 User Mode                           |
                                     |         |         |         |         |
 Compatibility Mode                  |
                                     |         |         |         |         |
 Idle Time                           |
                                     + - - - - + - - - - + - - - - + - - - - +

OpenVMS Alpha (emulated) V8.2: 677 VUPS (it's an emulated Alpha, so not a 'hardware' VUPS measurement !)

Code: Select all

                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node I64VMS
            +-----+         28-APR-2023 10:23:21.02

                                     0         25        50        75       100
                                     + - - - - + - - - - + - - - - + - - - - +
 Interrupt State                     |
                                     |         |         |         |         |
 MP Synchronization                  |
                                     |         |         |         |         |
 Kernel Mode                       5 |**
                                     |         |         |         |         |
 Executive Mode                   17 |******
                                     |         |         |         |         |
 Supervisor Mode                  78 |*******************************
                                     |         |         |         |         |
 User Mode                           |
                                     |         |         |         |         |
 Compatibility Mode                  |
                                     |         |         |         |         |
 Idle time                           |
                                     + - - - - + - - - - + - - - - + - - - - +

OpenVMS I64 V8.2 (rx2600): 1759 VUPS.

Code: Select all

                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node VOLKER
            +-----+         28-APR-2023 10:34:35.31

Combined for  2 CPUs                 0         50        100       150      200
                                     + - - - - + - - - - + - - - - + - - - - +
 Interrupt State                   4 |
                                     |         |         |         |         |
 MP Synchronization                  |
                                     |         |         |         |         |
 Kernel Mode                      15 |***
                                     |         |         |         |         |
 Executive Mode                   23 |****
                                     |         |         |         |         |
 Supervisor Mode                  62 |************
                                     |         |         |         |         |
 User Mode                           |
                                     |         |         |         |         |
 Compatibility Mode                  |
                                     |         |         |         |         |
 Idle Time                        97 |*******************
                                     + - - - - + - - - - + - - - - + - - - - +

VSI OpenVMS E9.2-1, VMware Workstation Player 16, i5-9600K @3.7 GHz, VUPS: 3783
Results of PRIME_SIEVE calculating prime numbers up to 10^10:
Reference: http://wwwhomes.uni-bielefeld.de/achim/prime_sieve.html

Code: Select all

(emulated) Alpha:    CPUTIM is 9723 ticks     677 VUPS
I64 rx2600:          CPUTIM is 3869 ticks    1759 VUPS
x86-64:              CPUTIM is 1947 ticks    3783 VUPS
After evaluating the above results from PRIME_SIEVE, I had to change the CPU_MULTIPLIER for x86-64 to 5 (instead of 8) to get a more realistic VUPS value for x86-64.

Next I will try to look at the details of the KERNEL mode consumption...

Added in 24 minutes 53 seconds:

Code: Select all

SDA> pcs sho trace/stat/mode=kernel  ! on E9.2-1 reports this
PC sampler information:
-----------------------
PC                IPL Pid      Count        Routine                          Module
----------------- --- -------- ------------ -------------------------------- ------
FFFF8300.069B3270  0  00000428           12 EXE$SS_PREP_C                    SYSTEM_PRIMITIVES_7_MIN
FFFF8300.069A166C  0  00000428            3 SYSTEM_PRIMITIVES_7_MIN+8003B66C SYSTEM_PRIMITIVES_7_MIN
FFFF8300.069AC6B0  0  00000428            2 SWIS$SANITIZE_FRAME_C            SYSTEM_PRIMITIVES_7_MIN
FFFF8300.069A1B04  0  00000428            1 EXE$INT_PROBE_KERNEL_C+00004     SYSTEM_PRIMITIVES_7_MIN
FFFF8300.069A1909  0  00000428            1 SYSTEM_PRIMITIVES_7_MIN+8003B909 SYSTEM_PRIMITIVES_7_MIN
FFFF8300.069A1621  0  00000428            1 SYSTEM_PRIMITIVES_7_MIN+8003B621 SYSTEM_PRIMITIVES_7_MIN
FFFF8300.069A14A4  0  00000428            1 SYSTEM_PRIMITIVES_7_MIN+8003B4A4 SYSTEM_PRIMITIVES_7_MIN
FFFF8300.0680235B  0  00000428            1 SYS$BASE_IMAGE+8000025B          SYS$BASE_IMAGE
FFFF8300.068022E0  0  00000428            1 SYS$BASE_IMAGE+800001E0          SYS$BASE_IMAGE
FFFF8300.06D5A481  3  00000000            1 X86_HALT_C+00001                 PROCESS_MANAGEMENT

PCS$SDA on OpenVMS I64 V8.2 does not offer statistics per mode, so I can only compare PCS data collected when running SRI_VUPS_NEW.COM on VSI OpenVMS Alpha V8.4-2L2 (again emulated Alpha), which is pretty simple:

Code: Select all

SDA> pcs sho trace/stat/mode=kernel

PC sampler information:
-----------------------
PC                IPL Pid      Count        Routine                          Module
----------------- --- -------- ------------ -------------------------------- ------
FFFFFFFF.8426403C  3  00000000           40 SYS$IDLE+0003C                   SYS$IDLE
So there seems to be significant - but not unexpected - KERNEL mode 'overhead' on x86-64.

It would be interesting to see the PCS statistics from your WASD load test.

Volker.

PS: Edited to fix the SDA> PCS syntax - thanks Maurizio for spotting this.
Last edited by volkerhalle on Fri Apr 28, 2023 11:39 am, edited 2 times in total.


Topic author
mgdaniel
Valued Contributor
Posts: 62
Joined: Mon Feb 28, 2022 5:16 pm
Reputation: 0
Location: Adelaide, South Australia
Status: Offline
Contact:

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by mgdaniel » Fri Apr 28, 2023 11:03 am

Hmmm...

Code: Select all

X86VMS$ ana /system

OpenVMS system analyzer

SDA> READ/EXEC ! get better symbolization (routine names)
SDA> LOAD PCS ! PC sampling SDA Execlet
%CLI-W-SYNTAX, error parsing 'LOAD'
SDA>
My system seems bereft of a LOAD verb

Code: Select all

  Additional information available:

  ATTACH     CLUE_Extension        COLLECT    COPY       CPU_Context
  DEFINE     Display_Mode          DUMP       EVALUATE   EXAMINE
  Execute_Command       EXIT       Expressions           Extension_Routines
  FLT_Extension         FORMAT     HELP       Initialization        MAP
  MODIFY     OCLA_Extension        Operation  Page_Protections
  Process_Context       READ       REPEAT     SEARCH     SET        SHOW
  SPAWN      SPL_Extension         Symbols    UNDEFINE   VALIDATE   WAIT
  XFC_Extension
  
Seemingly relevant updates

Code: Select all

VSI X86VMS VMS92X_DEBUG V1.0         Patch       Install     Val 15-FEB-2023
VSI X86VMS VMS92X_UPDATE V2.0        Patch       Install     Val 30-DEC-2022
VSI X86VMS VMS92X_UPDATE V1.0        Patch       Install     Val 31-OCT-2022
VSI X86VMS VMS V9.2                  Oper System Install     Val 30-OCT-2022

User avatar

m_detommaso
Valued Contributor
Posts: 67
Joined: Thu Jun 06, 2019 6:57 am
Reputation: 0
Location: Brindisi (Italy)
Status: Offline
Contact:

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by m_detommaso » Fri Apr 28, 2023 11:26 am

Mark,

try the following procedure :

$ ana/sys
SDA> read/exec
SDA> pcs load
SDA> pcs start trace
...
...
SDA> pcs stop trace
SDA> pcs show trace/stat/mode=kernel
...
SDA> pcs unload
SDA> exit

/Maurizio


Topic author
mgdaniel
Valued Contributor
Posts: 62
Joined: Mon Feb 28, 2022 5:16 pm
Reputation: 0
Location: Adelaide, South Australia
Status: Offline
Contact:

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by mgdaniel » Fri Apr 28, 2023 7:26 pm

Thank you Maurizio. Monkey see, monkey do. Just cut-paste from Volker's c.o.v. post (no slight intended).

Very useful capability. Makes me wish I'd done a (any) VMS course during my time.

Oops, and just realised I've reenabled the second CPU.

Code: Select all

                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node X86VMS
            +-----+         29-APR-2023 07:11:51.43

Combined for  2 CPUs                 0         50        100       150      200
                                     + - - - - + - - - - + - - - - + - - - - +
 Interrupt State                   2 |
 MP Synchronization               27 |*****
 Kernel Mode                     118 |***********************
Disable and start again (and certainly notice the absence of that second CPU when under load).

50k requests, 15 concurrent connections, and approximately 90 minutes later...

Code: Select all

                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node X86VMS
            +-----+         29-APR-2023 08:37:32.89

                                     0         25        50        75       100
                                     + - - - - + - - - - + - - - - + - - - - +
 Interrupt State                   8 |***
 MP Synchronization                  |
 Kernel Mode                      66 |**************************
 Executive Mode                    5 |**
 Supervisor Mode                     |
 User Mode                        20 |********
 Compatibility Mode                  |
 Idle Time                         1 |
                                     + - - - - + - - - - + - - - - + - - - - +
                                     

Code: Select all

PC                IPL Pid      Count        Routine                          Module
----------------- --- -------- ------------ -------------------------------- ------
FFFF8300.05F7BAD0  0  0000069A         3547 SYSTEM_PRIMITIVES_6_MIN+80049AD0 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05FED7D6  8  000006AB         3507 EXE$RANDOM_HARVEST_DIRECT_C+0067 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F77062  8  0000069A         1806 SWIS$GET_CURRENT_HWPCB_C+00652   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7713D 21  000006A3          763 SWIS$GET_CURRENT_HWPCB_C+0072D   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.0628E75B  8  0000069A          674 PROCESS_MANAGEMENT+8000325B      PROCESS_MANAGEMENT
FFFFFFFF.89C053DE  8  0000069E          573 SYS$PUBLIC_VECTORS+093DE         SYS$PUBLIC_VECTORS
FFFF8300.05F6A75D  0  00000693          480 SYSTEM_PRIMITIVES_6_MIN+8003875D SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F76036  8  000006AB          420 SYSTEM_PRIMITIVES_6_MIN+80044036 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A61E  0  0000069A          356 SYSTEM_PRIMITIVES_6_MIN+8003861E SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A42C  0  00000642          335 SYSTEM_PRIMITIVES_6_MIN+8003842C SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89CB30D0  8  000006AB          304 SYSTEM_PRIMITIVES_6_MIN+9E4D0    SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E579E0  8  0000069D          231 EXE$TIMEDWAIT_SETUP_C+00090      SYS$PLATFORM_SUPPORT
FFFF8300.05F6A4DF  0  00000693          225 SYSTEM_PRIMITIVES_6_MIN+800384DF SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C0BA  0  000006AA          224 SYSTEM_PRIMITIVES_6_MIN+8004A0BA SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C51360  0  00000693          219 LIB$ALPHA_REG_VECTOR_BASE        SYS$BASE_IMAGE
FFFF8300.05F7C0B7  0  00000695          184 SYSTEM_PRIMITIVES_6_MIN+8004A0B7 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E02670  0  0000069E          182 SYS$BASE_IMAGE+80000570          SYS$BASE_IMAGE
FFFF8300.05F6A7A3  0  0000069A          182 SYSTEM_PRIMITIVES_6_MIN+800387A3 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F74F00  0  00000694          167 SWIS$INSERT_RING_BUFFER_C+00250  SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E5790A  8  00000695          146 EXE$TIMEDWAIT_COMPLETE_C+0003A   SYS$PLATFORM_SUPPORT
FFFF8300.05F696B0  0  00000645          138 SYSTEM_PRIMITIVES_6_MIN+800376B0 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C460  0  0000069E          135 SYSTEM_PRIMITIVES_6_MIN+8004A460 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A8C0  0  00000677          135 SYSTEM_PRIMITIVES_6_MIN+800388C0 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C197  0  0000069E          130 SYSTEM_PRIMITIVES_6_MIN+8004A197 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C0A8  0  00000693          127 SYSTEM_PRIMITIVES_6_MIN+8004A0A8 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A425  0  00000645          126 SYSTEM_PRIMITIVES_6_MIN+80038425 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A7F0  0  00000693          124 SYSTEM_PRIMITIVES_6_MIN+800387F0 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A20D  0  00000694          115 SYSTEM_PRIMITIVES_6_MIN+8003820D SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69F1F  0  00000697          108 SYSTEM_PRIMITIVES_6_MIN+80037F1F SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69961  0  0000069A          106 SYSTEM_PRIMITIVES_6_MIN+80037961 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F775F4  2  00000677           98 SWIS$GET_CURRENT_HWPCB_C+00BE4   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A756  0  0000066B           91 SYSTEM_PRIMITIVES_6_MIN+80038756 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A357  0  00000645           87 SYSTEM_PRIMITIVES_6_MIN+80038357 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F697D7  0  00000645           87 SYSTEM_PRIMITIVES_6_MIN+800377D7 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A3E1  0  000006AA           85 SYSTEM_PRIMITIVES_6_MIN+800383E1 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69A90  0  0000069E           85 SYSTEM_PRIMITIVES_6_MIN+80037A90 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C113  0  00000677           84 SYSTEM_PRIMITIVES_6_MIN+8004A113 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05FFE3C8  0  000006A9           79 AMAC$EMUL_CMPC5_C+00B38          SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F697DB  0  0000069A           79 SYSTEM_PRIMITIVES_6_MIN+800377DB SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F696B1  0  000006AB           77 SYSTEM_PRIMITIVES_6_MIN+800376B1 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A4D8  0  000006AB           74 SYSTEM_PRIMITIVES_6_MIN+800384D8 SYSTEM_PRIMITIVES_6_MIN

    Press RETURN for more.

PC                IPL Pid      Count        Routine                          Module
----------------- --- -------- ------------ -------------------------------- ------
FFFF8300.05F6A617  0  000006A9           74 SYSTEM_PRIMITIVES_6_MIN+80038617 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69930  0  000006A9           74 SYSTEM_PRIMITIVES_6_MIN+80037930 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A2CD  0  0000069A           74 SYSTEM_PRIMITIVES_6_MIN+800382CD SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A264  0  00000695           72 SYSTEM_PRIMITIVES_6_MIN+80038264 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A410  0  000006AB           70 SYSTEM_PRIMITIVES_6_MIN+80038410 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A1D1  8  00000645           68 SYSTEM_PRIMITIVES_6_MIN+800381D1 SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C053C0  0  00000693           66 SYS$PUBLIC_VECTORS+093C0         SYS$PUBLIC_VECTORS
FFFF8300.05F6992C  0  000006AB           65 SYSTEM_PRIMITIVES_6_MIN+8003792C SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69DE1  0  00000694           65 SYSTEM_PRIMITIVES_6_MIN+80037DE1 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69A8C  0  00000677           64 SYSTEM_PRIMITIVES_6_MIN+80037A8C SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69F1B  0  0000066B           64 SYSTEM_PRIMITIVES_6_MIN+80037F1B SYSTEM_PRIMITIVES_6_MIN
FFFF8300.0605B3D0  0  00000644           64 SMP_STD$ACQUIRE_C                SYSTEM_SYNCHRONIZATION_MIN
FFFF8300.05F6A4C3  0  00000699           62 SYSTEM_PRIMITIVES_6_MIN+800384C3 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69E74  0  000006A9           61 SYSTEM_PRIMITIVES_6_MIN+80037E74 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.0607E350  8  000006AB           58 SMP_STD$RELEASE_C                SYSTEM_SYNCHRONIZATION_MIN
FFFF8300.05F6A39F  0  000006A9           58 SYSTEM_PRIMITIVES_6_MIN+8003839F SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7BAE3  0  000006AB           57 SYSTEM_PRIMITIVES_6_MIN+80049AE3 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A315  0  00000699           57 SYSTEM_PRIMITIVES_6_MIN+80038315 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6C94A  8  0000069E           55 SYSTEM_PRIMITIVES_6_MIN+8003A94A SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E0236B  0  00000677           55 SYS$BASE_IMAGE+8000026B          SYS$BASE_IMAGE
FFFF8300.05F6A5E8  0  00000693           54 SYSTEM_PRIMITIVES_6_MIN+800385E8 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69E52  8  00000645           53 SYSTEM_PRIMITIVES_6_MIN+80037E52 SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C04000  0  000006A9           52 SYS$PUBLIC_VECTORS+08000         SYS$PUBLIC_VECTORS
FFFF8300.05F69801  0  00000695           52 SYSTEM_PRIMITIVES_6_MIN+80037801 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A39D  0  0000069E           50 SYSTEM_PRIMITIVES_6_MIN+8003839D SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F57113  0  00000645           49 SYSTEM_PRIMITIVES_6_MIN+80025113 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.0605B520  0  0000069E           48 SMP$ACQUIRE_C+00050              SYSTEM_SYNCHRONIZATION_MIN
FFFF8300.05F69866  0  0000066B           48 SYSTEM_PRIMITIVES_6_MIN+80037866 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A313  0  00000644           48 SYSTEM_PRIMITIVES_6_MIN+80038313 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C0AE  0  000006A9           47 SYSTEM_PRIMITIVES_6_MIN+8004A0AE SYSTEM_PRIMITIVES_6_MIN
FFFF8300.06085ED0  0  00000694           47 SMP$VALIDATE_HW_CONFIGURATION_C+ SYSTEM_SYNCHRONIZATION_MIN
FFFF8300.05F6A602  0  00000697           46 SYSTEM_PRIMITIVES_6_MIN+80038602 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E02353  0  000006AB           45 SYS$BASE_IMAGE+80000253          SYS$BASE_IMAGE
FFFF8300.05F7C0AA  0  00000699           45 SYSTEM_PRIMITIVES_6_MIN+8004A0AA SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A626  0  00000645           45 SYSTEM_PRIMITIVES_6_MIN+80038626 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A4A9  0  00000694           44 SYSTEM_PRIMITIVES_6_MIN+800384A9 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69E37  0  00000642           44 SYSTEM_PRIMITIVES_6_MIN+80037E37 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F696FB  0  00000697           43 SYSTEM_PRIMITIVES_6_MIN+800376FB SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69A21  0  00000694           43 SYSTEM_PRIMITIVES_6_MIN+80037A21 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A3AA  8  00000677           43 SYSTEM_PRIMITIVES_6_MIN+800383AA SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A605  0  00000645           43 SYSTEM_PRIMITIVES_6_MIN+80038605 SYSTEM_PRIMITIVES_6_MIN

    Press RETURN for more.
 
PC                IPL Pid      Count        Routine                          Module
----------------- --- -------- ------------ -------------------------------- ------
FFFF8300.0607E5BC  8  0000069E           42 SMP$RELEASE_C+0015C              SYSTEM_SYNCHRONIZATION_MIN
FFFF8300.05F6A4E7  0  00000644           42 SYSTEM_PRIMITIVES_6_MIN+800384E7 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.0628E63C  8  0000053D           42 PROCESS_MANAGEMENT+8000313C      PROCESS_MANAGEMENT
FFFF8300.05F699B7  0  000006AB           41 SYSTEM_PRIMITIVES_6_MIN+800379B7 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69980  0  00000695           41 SYSTEM_PRIMITIVES_6_MIN+80037980 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69711  0  00000695           41 SYSTEM_PRIMITIVES_6_MIN+80037711 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7766C  0  00000677           41 SWIS$GET_CURRENT_HWPCB_C+00C5C   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F99A3E 11  0000053D           41 EXE$ALLOCATE_C+0010E             SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A727  0  0000066B           40 SYSTEM_PRIMITIVES_6_MIN+80038727 SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C0BF9E  0  00000644           40 SYS$PUBLIC_VECTORS+0FF9E         SYS$PUBLIC_VECTORS
FFFF8300.05F7C0AC  0  000006A9           39 SYSTEM_PRIMITIVES_6_MIN+8004A0AC SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F699C6  0  0000069E           39 SYSTEM_PRIMITIVES_6_MIN+800379C6 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F699E1  0  00000695           39 SYSTEM_PRIMITIVES_6_MIN+800379E1 SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C24E90  0  00000699           38 SMP_STD$ACQUIRE                  SYS$BASE_IMAGE
FFFF8300.05F6974E  0  00000699           38 SYSTEM_PRIMITIVES_6_MIN+8003774E SYSTEM_PRIMITIVES_6_MIN
FFFF8300.062FC01F  0  00000694           38 PROCESS_MANAGEMENT+80070B1F      PROCESS_MANAGEMENT
FFFF8300.05F6A323  0  00000694           38 SYSTEM_PRIMITIVES_6_MIN+80038323 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A223  0  000006AA           37 SYSTEM_PRIMITIVES_6_MIN+80038223 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6976C  0  000006A9           37 SYSTEM_PRIMITIVES_6_MIN+8003776C SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A741  0  0000069E           37 SYSTEM_PRIMITIVES_6_MIN+80038741 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A413  0  000006AB           36 SYSTEM_PRIMITIVES_6_MIN+80038413 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E02678  0  000006A9           36 SYS$BASE_IMAGE+80000578          SYS$BASE_IMAGE
FFFF8300.05F6A451  0  00000694           36 SYSTEM_PRIMITIVES_6_MIN+80038451 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A123  0  000006AA           35 SYSTEM_PRIMITIVES_6_MIN+80038123 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69A95  0  00000697           35 SYSTEM_PRIMITIVES_6_MIN+80037A95 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69730  0  00000695           35 SYSTEM_PRIMITIVES_6_MIN+80037730 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69F24  0  00000642           35 SYSTEM_PRIMITIVES_6_MIN+80037F24 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A3CA  0  000006A9           33 SYSTEM_PRIMITIVES_6_MIN+800383CA SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A159  0  00000694           33 SYSTEM_PRIMITIVES_6_MIN+80038159 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A4C6  0  0000066B           33 SYSTEM_PRIMITIVES_6_MIN+800384C6 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F698C1  0  00000645           33 SYSTEM_PRIMITIVES_6_MIN+800378C1 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69935  0  00000644           33 SYSTEM_PRIMITIVES_6_MIN+80037935 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A3AD  0  000006AB           32 SYSTEM_PRIMITIVES_6_MIN+800383AD SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A744  8  0000069E           32 SYSTEM_PRIMITIVES_6_MIN+80038744 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F75F60  0  00000693           32 SYSTEM_PRIMITIVES_6_MIN+80043F60 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C461  0  00000697           31 SYSTEM_PRIMITIVES_6_MIN+8004A461 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A1DF  0  000006AB           30 SYSTEM_PRIMITIVES_6_MIN+800381DF SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A7F1  0  000006A9           30 SYSTEM_PRIMITIVES_6_MIN+800387F1 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A289  0  0000069E           30 SYSTEM_PRIMITIVES_6_MIN+80038289 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A4DC  0  00000699           30 SYSTEM_PRIMITIVES_6_MIN+800384DC SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A28B  0  00000694           30 SYSTEM_PRIMITIVES_6_MIN+8003828B SYSTEM_PRIMITIVES_6_MIN

    Press RETURN for more.

PC                IPL Pid      Count        Routine                          Module
----------------- --- -------- ------------ -------------------------------- ------
FFFF8300.05F6A31C  0  00000693           30 SYSTEM_PRIMITIVES_6_MIN+8003831C SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C594  0  00000677           30 SYSTEM_PRIMITIVES_6_MIN+8004A594 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69E96  0  000006A9           29 SYSTEM_PRIMITIVES_6_MIN+80037E96 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7667D  8  0000069E           29 SWIS$SET_CURRENT_KT_ID_C+0012D   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A3A6  8  00000677           29 SYSTEM_PRIMITIVES_6_MIN+800383A6 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69E46  8  0000066B           29 SYSTEM_PRIMITIVES_6_MIN+80037E46 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F7C4CC  0  0000069A           28 SYSTEM_PRIMITIVES_6_MIN+8004A4CC SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F698A7  0  00000697           28 SYSTEM_PRIMITIVES_6_MIN+800378A7 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F76F75  8  00000642           28 SWIS$GET_CURRENT_HWPCB_C+00565   SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C27710  8  0000053D           28 SMP_STD$RELEASE                  SYS$BASE_IMAGE
FFFF8300.05F699E5  0  000006AB           27 SYSTEM_PRIMITIVES_6_MIN+800379E5 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.0636F480  0  00000695           27 PROCESS_MANAGEMENT+800E3F80      PROCESS_MANAGEMENT
FFFFFFFF.89C053E0  8  0000066B           27 SYS$PUBLIC_VECTORS+093E0         SYS$PUBLIC_VECTORS
FFFF8300.05F6A125  0  0000066B           27 SYSTEM_PRIMITIVES_6_MIN+80038125 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A61B  0  00000644           27 SYSTEM_PRIMITIVES_6_MIN+8003861B SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C053C1  0  000006AB           26 SYS$PUBLIC_VECTORS+093C1         SYS$PUBLIC_VECTORS
FFFF8300.05F714C0  8  000006A9           26 SYSTEM_PRIMITIVES_6_MIN+8003F4C0 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E022E0  0  0000053D           26 SYS$BASE_IMAGE+800001E0          SYS$BASE_IMAGE
FFFF8300.05E023A5  0  000006A9           25 SYS$BASE_IMAGE+800002A5          SYS$BASE_IMAGE
FFFF8300.05F6A18F  0  00000694           25 SYSTEM_PRIMITIVES_6_MIN+8003818F SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69A07  0  00000677           25 SYSTEM_PRIMITIVES_6_MIN+80037A07 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A8C1  0  00000645           25 SYSTEM_PRIMITIVES_6_MIN+800388C1 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69E00  8  00000642           25 SYSTEM_PRIMITIVES_6_MIN+80037E00 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F765F0  0  0000069E           24 SWIS$SET_CURRENT_KT_ID_C+000A0   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69881  0  00000695           24 SYSTEM_PRIMITIVES_6_MIN+80037881 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F570D0  0  0000066B           24 SYSTEM_PRIMITIVES_6_MIN+800250D0 SYSTEM_PRIMITIVES_6_MIN
FFFFFFFF.89C05780  0  000006A9           23 SYS$PUBLIC_VECTORS+09780         SYS$PUBLIC_VECTORS
FFFF8300.068941C5  2  0000069A           23 SYS$VM+8009A9C5                  SYS$VM
FFFF8300.05F7C5A2  0  00000694           23 SYSTEM_PRIMITIVES_6_MIN+8004A5A2 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A340  0  00000677           23 SYSTEM_PRIMITIVES_6_MIN+80038340 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E0236F  0  00000677           23 SYS$BASE_IMAGE+8000026F          SYS$BASE_IMAGE
FFFF8300.05F75CC0  8  00000645           23 SYSTEM_PRIMITIVES_6_MIN+80043CC0 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A75A  0  00000697           22 SYSTEM_PRIMITIVES_6_MIN+8003875A SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A1ED  0  00000694           22 SYSTEM_PRIMITIVES_6_MIN+800381ED SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F76580  8  00000646           22 SWIS$SET_CURRENT_KT_ID_C+00030   SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A135  0  00000645           22 SYSTEM_PRIMITIVES_6_MIN+80038135 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F69752  0  00000644           22 SYSTEM_PRIMITIVES_6_MIN+80037752 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05E0234F  0  0000053D           22 SYS$BASE_IMAGE+8000024F          SYS$BASE_IMAGE
FFFF8300.05F6A174  0  000006AB           21 SYSTEM_PRIMITIVES_6_MIN+80038174 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A127  0  000006AB           21 SYSTEM_PRIMITIVES_6_MIN+80038127 SYSTEM_PRIMITIVES_6_MIN
FFFF8300.05F6A3B4  0  000006AA           21 SYSTEM_PRIMITIVES_6_MIN+800383B4 SYSTEM_PRIMITIVES_6_MIN

    Press RETURN for more.
plus 40+ more pages (stopped counting at that)

Any way to output the entire report to a file?

User avatar

volkerhalle
Master
Posts: 196
Joined: Fri Aug 14, 2020 11:31 am
Reputation: 0
Status: Offline

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by volkerhalle » Sat Apr 29, 2023 12:33 am

Mark,

you can get help for the PCS SDA extension using:

SDA> PCS

This is the default behaviour for most SDA extensions (SYS$SHARE:*$SDA.EXE), some even might have SDA> XXX help

You can 'dump' the PCS data using SDA> PCS DUMP filename - this will dump the binary trace data to a file

SDA> PCS DUMP/CSV filename will export the trace data in a readable .CSV file

Adding /RESET to the PCS DUMP ... command will clear the in-memory trace data

SDA> PCS ANALYZE filename will read the 'binary' data dumped earlier and display the data as desired by the additional qualifiers

Note that with the default buffer size of 1280 pages, the trace buffer does collect trace data for about 19 minutes per CPU

Volker.
Last edited by volkerhalle on Sat Apr 29, 2023 3:25 am, edited 2 times in total.

User avatar

volkerhalle
Master
Posts: 196
Joined: Fri Aug 14, 2020 11:31 am
Reputation: 0
Status: Offline

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by volkerhalle » Sat Apr 29, 2023 3:25 am

mgdaniel wrote:
Fri Apr 28, 2023 7:26 pm

Very useful capability. Makes me wish I'd done a (any) VMS course during my time.
Mark,

yes, SDA extensions are really powerful ! And they come with the OpenVMS operating system for free.

Some of them are documented in the VSI OpenVMS System Analysis Tools Manual

Or have a look at my SDA extensions presentation on https://eisner.encompasserve.org/~halle/#sda_extensions

Volker.


sodjan
Active Contributor
Posts: 40
Joined: Mon Apr 24, 2023 3:51 am
Reputation: 0
Status: Offline

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by sodjan » Sat Apr 29, 2023 6:41 am

So, now that we have some data collected from Daniel, would it be possible to get
some insight in what is going on and what is causing the high Kernel Mode numbers?

User avatar

volkerhalle
Master
Posts: 196
Joined: Fri Aug 14, 2020 11:31 am
Reputation: 0
Status: Offline

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by volkerhalle » Sat Apr 29, 2023 11:47 am

sodjan,

if you can spare an hour or two, you might want to watch Camiel's presentation on SWIS from the OpenVMS Bootcamp 2017:

https://www.youtube.com/watch?v=U8kcfvJ1Iec

This may help you understand, why certain 'enhancements' had to be made to OpenVMS, to allow it to run on the x86-64 architecture. And those had to be done in the operating system and therefore need to run in kernel mode.

Volker.


Topic author
mgdaniel
Valued Contributor
Posts: 62
Joined: Mon Feb 28, 2022 5:16 pm
Reputation: 0
Location: Adelaide, South Australia
Status: Offline
Contact:

Re: OpenVMS x86-64 V9.2 and Alpha V8.4-2L1 CPU profiles

Post by mgdaniel » Sat Apr 29, 2023 5:17 pm

volkerhalle wrote:
Sat Apr 29, 2023 3:25 am
mgdaniel wrote:
Fri Apr 28, 2023 7:26 pm

Very useful capability. Makes me wish I'd done a (any) VMS course during my time.
Mark,

yes, SDA extensions are really powerful ! And they come with the OpenVMS operating system for free.

Some of them are documented in the VSI OpenVMS System Analysis Tools Manual

Or have a look at my SDA extensions presentation on https://eisner.encompasserve.org/~halle/#sda_extensions

Volker.
Thank you Volker. I'll work through them.

Also the https://www.youtube.com/watch?v=U8kcfvJ1Iec link is an excellent introduction to the whole VMS architecture and its porting challenges. I have been following the YouTube and Webinar recordings and they have been a great resource (especially lessening "The Tyranny of Distance").

Post Reply