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.


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 » Thu Jul 06, 2023 8:44 pm

Not wishing in particular to continue flogging this particular horse (all previous disclaimers regarding unoptimised releases, etc. applied) but I cannot see the difficulty in reproducing the outstanding kernel mode.

Just doing a simple DCL procedure mediated CC build of 102 modules and static linking these against SSL3 on each of the previously described X86 and Alpha platforms shows X86 kernel mode to be 6x that on Alpha and occupying half the CPU (close enough). Duration of build on X86 0 00:11:38.41 and on Alpha 0 00:13:54.13, so proportional to the VUPS.COM of their respective performance.

This simple build does not exercise the more diverse range of "NETWORK, SYSTEM SERVICE, APPLICATION ACTIVATION AND OTHER ASPECTS of system behaviour" claimed for the OWASP ZAP crawl which certainly could account for the +~20% kernel mode on top of the simple build.

Code: Select all

                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node X86VMS
            +-----+          7-JUL-2023 09:29:03.41

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


                            OpenVMS Monitor Utility
            +-----+         TIME IN PROCESSOR MODES
            | AVE |              on node KLAATU
            +-----+          7-JUL-2023 09:28:21.51

                                     0         25        50        75       100
                                     + - - - - + - - - - + - - - - + - - - - +
 Interrupt State                     |
 MP Synchronization                  |
 Kernel Mode                       8 |**
 Executive Mode                    6 |**
 Supervisor Mode                     |
 User Mode                        82 |********************************
 Compatibility Mode                  |
 Idle Time                         4 |*
                                     + - - - - + - - - - + - - - - + - - - - +


Node: X86VMS                OpenVMS Monitor Utility      7-JUL-2023 09:29:04
Statistic: AVERAGE             SYSTEM STATISTICS
                                                     Process States
          + CPU Busy (98)           -+         LEF:       3    LEFO:       0
          |************************* |         HIB:      20    HIBO:       0
CPU     0 |--------------------------| 100     COM:       1    COMO:       0
          |**********************    |         PFW:       0    CUR:        1
          +--------------------------+         MWAIT:     0    Other:      0
          Cur Top: FTA9_SYSTEM (85)                      Total: 25

          + Page Fault Rate (968)   -+         + Free List Size (808442)  +
          |*|************************|         |********************      | 979K
MEMORY  0 |--------------------------| 500   0 |--------------------------|
          |**************************|         |                          | 98K
          +--------------------------+         + Mod List Size (938)      +
          Cur Top: FTA9_SYSTEM (5427)

          + Direct I/O Rate (296)   -+         + Buffered I/O Rate (218) -+
          |***************           |         |***********               |
I/O     0 |--------------------------| 500   0 |--------------------------| 500
          |**************************|         |**************            |
          +--------------------------+         |--------------------------+
          Cur Top: FTA9_SYSTEM (1105)          Cur Top: FTA9_SYSTEM (277)


Node: KLAATU                OpenVMS Monitor Utility      7-JUL-2023 09:28:21
Statistic: AVERAGE             SYSTEM STATISTICS
                                                     Process States
          + CPU Busy (98)           -+         LEF:      10    LEFO:       0
          |************************* |         HIB:      18    HIBO:       0
CPU     0 |--------------------------| 100     COM:       1    COMO:       0
          |************************  |         PFW:       0    CUR:        1
          +--------------------------+         MWAIT:     0    Other:      0
          Cur Top: _FTA3: (96)                           Total: 30

          + Page Fault Rate (968)   -+         + Free List Size (157881)  +
          ||*************************|         |********************      | 192K
MEMORY  0 |--------------------------| 500   0 |--------------------------|
          |**************************|         |***                       | 19K
          +--------------------------+         + Mod List Size (2667)     +
          Cur Top: _FTA3: (575)

          + Direct I/O Rate (84)    -+         + Buffered I/O Rate (189) -+
          |****                      |         |*********                 |
I/O     0 |--------------------------| 500   0 |--------------------------| 500
          |**************************|         |***************           |
          |--------------------------+         +--------------------------+
          Cur Top: _FTA3: (1011)               Cur Top: _FTA3: (305)


cgrant
VSI Expert
Contributor
Posts: 18
Joined: Mon Aug 09, 2021 9:01 am
Reputation: 0
Status: Offline

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

Post by cgrant » Fri Jul 07, 2023 6:01 am

I now have reproducers.

Clair


cgrant
VSI Expert
Contributor
Posts: 18
Joined: Mon Aug 09, 2021 9:01 am
Reputation: 0
Status: Offline

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

Post by cgrant » Mon Jul 10, 2023 9:27 am

RE: GETSYI in a loop - lots of mode switching and lots of PROBEs, both of which are "expensive" and completely different on x86. Nothing functionally newsworthy there. We will look deeper once we build with optimizing compilers.

RE: PRIME_SIEVE - will start looking at this soon

Clair

User avatar

volkerhalle
Master
Posts: 198
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 » Mon Jul 10, 2023 1:10 pm

cgrant wrote:
Mon Jul 10, 2023 9:27 am
RE: PRIME_SIEVE - will start looking at this soon
Clair,

I've used PRIME_SIEVE, which consumes 100% USER mode, primarily to show the raw CPU speed of the x86-64 CPUs. And to compare the CPU speed with the other systems and the other architectures (to try to 'calibrate' the VUPS procedure).

Volker.


cgrant
VSI Expert
Contributor
Posts: 18
Joined: Mon Aug 09, 2021 9:01 am
Reputation: 0
Status: Offline

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

Post by cgrant » Tue Jul 11, 2023 5:30 am

I got a version of PRME_SIEVE off the net and it exhibited the same PC Sampling characteristics on x86 as did GETSYI in a loop. I does not seem there is anymore to learn from these particular exercises at the moment.

Clair

Post Reply