[Info-vax] VUPS.COM relevance for modern CPUs

Simon Clubley clubley at remove_me.eisner.decus.org-Earth.UFP
Fri Dec 16 08:31:37 EST 2022


On 2022-12-16, Mark Daniel <mark.daniel at wasd.vsm.com.au> wrote:
>
> It seems to be implemented as a tight DCL loop that executes almost 
> entirely in inner modes (I'm sure Brian can explain why).
>

Unless CPU instructions execute at a different rate in inner modes,
that by itself should make no difference. However, there is one area
in which that could maybe matter for x86-64. See below.

> $ start_cputime = f$getjpi(0,"CPUTIM")
> $ loop_index = 0
> $ 10$:
> $ loop_index = loop_index + 1
> $ if loop_index .ne. init_loop_maximum then goto 10$
> $ end_cputime = f$getjpi(0,"CPUTIM")
>
>|Combined for  2 CPUs         0         50        100       150      200
>| Interrupt State             |                                       |
>| MP Synchronization          |                                       |
>| Kernel Mode              21 |????                                   |
>| Executive Mode           21 |????                                   |
>| Supervisor Mode          58 |???????????                            |
>| User Mode                   |                                       |
>| Compatibility Mode          |                                       |
>| Idle Time                99 |???????????????????                    |
>
> 100% (or all-but) of this execution appears to be in inner modes. 
> Although X86 (above) seems to to have much more Kernel than other 
> architectures, e.g. IA64 below).  There is no USER mode displayed in either.
>

And that's the difference (and what you are seeing is what I would expect).

Don't forget that Executive and Supervisor modes on x86-64 VMS are purely
an illusion and don't forget that effort is expended in Kernel mode to
switch to and from the emulation of those modes.

>
> Are the Alpha tweaks sufficient to allow relevance for all 64bit CPUs?
>
> Are further tweaks required to make measurements on Itania relevant?
>
> And of course the same question for the successor to all three 
> architectures?
>

I think you are now seeing the limits of trying to do this in DCL.

Given all the Executive and Supervisor mode overheads in x86-64 VMS,
I think the only sensible solution is to implement this as a user-mode
compiled program so that you really are testing the relative CPU performance.

You are certainly going to see issues when trying to compare Intel with
AMD processors for example (due to the lack of PCID on AMD processors).

I was going to compare VUPS.COM to the BogoMIPS measurement used on Linux,
but there are issues addressed during the calculation of BogoMIPS that
cannot be addressed when trying to do this at DCL level. The following is
a pretty good summary of how BogoMIPS works:

https://en.wikipedia.org/wiki/BogoMips

BTW, there is one very interesting thing mentioned in the above article
that I had not considered until now when it comes to VMS on x86-64:

Does x86-64 VMS implement dynamic frequency scaling or does it run the
CPUs flat out at 100% of maximum speed all the time ?

As a final note, VUPS.COM only tests relative CPU performance. Should there
now be additional testing programs to test I/O subsystem performance ?

Simon.

-- 
Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.



More information about the Info-vax mailing list