Discussion:
[hercules-390] Zaap Processor usage
Dan Kalmar kalda0912@gmail.com [hercules-390]
2017-04-25 10:16:17 UTC
Permalink
I have Hercules 3.12 configured with 4 engines "ENGINES CP,CP,AP,IP"
running Z/OS 1.10 on a Windows 10 system.
Issuing "D M=CPU" from the console shows:

IEE174I 13.09.51 DISPLAY M
PROCESSOR STATUS
ID CPU SERIAL
00 + XXXX
01 + XXXX
02 +A XXXX
03 +I XXXX

CPC SI = 2084. .HRC.ZZ.00000000000XXXXX
Model: EMULATOR

when I run a batch job executing a simple assembler program I noticed in
the system trace that the program was dispatched
to execute on the ZAAP processor.

My understanding always was that ZAAP should be dispatched to run eligible
Java workloads.

This may not be a Hercules related issue at all but I thought I'd ask
anyway.

Thanks....Dani Kalmar
Tony Harminc tharminc@gmail.com [hercules-390]
2017-04-25 16:57:14 UTC
Permalink
Post by Dan Kalmar ***@gmail.com [hercules-390]
when I run a batch job executing a simple assembler program I noticed in
the system trace that the program was dispatched
to execute on the ZAAP processor.
My understanding always was that ZAAP should be dispatched to run eligible
Java workloads.
This may not be a Hercules related issue at all but I thought I'd ask
anyway.
I have no idea if the Hercules implementation of the various processor
types matches what z/OS is expecting, but certainly there could be a
misinterpretation there. Though I'd be surprised if z/OS lists the
processors as one type, and treats them as another.

But another thing to keep in mind is that there is nothing to say that IBM
(z/OS) cannot in its wisdom dispatch non-eligible work to run on a
specialty engine if it wants to. It's you the "customer" who can't. I'd be
surprised to see an initial dispatch of a batch job on a zAAP, but it is
known that once a workload is on a specialty engine, even if it becomes
ineligible (say, a JNI call from Java), z/OS may keep it on that engine for
a while in the interest of overall system efficiency, anticipating that the
JNI will return quickly to eligible (Java) code.

Anyway - IBM isn't talking about the details of this, and even less are
they going to be discussing it in the Hercules context, so I doubt you will
get a definitive answer anywhere.

Tony H.
'\'Fish\' (David B. Trout)' david.b.trout@gmail.com [hercules-390]
2017-04-25 22:19:07 UTC
Permalink
Dani Kalmar wrote:

[...]
Post by Dan Kalmar ***@gmail.com [hercules-390]
My understanding always was that ZAAP should be dispatched
to run eligible Java workloads.
This may not be a Hercules related issue at all [...]
It's not.

The choice of which processor engine -- specialty or otherwise -- a given guest workload is dispatched to run on is entirely up to the guest. The hardware (Hercules) is not involved in that decision in any way whatsoever.

The only role the hardware (Hercules) has in this decision is accurately reporting to the guest what TYPE of engine a given processor is. If Hercules reports the engine type incorrectly to the guest, then the guest could obviously end up dispatching its workload on the "wrong" processor.

As far as I know Hercules's processor engine type handling code logic is correct, so the "problem" (if you want to call it that) is obviously with the guest (z/OS), not the hardware (Hercules).
--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: ***@softdevlabs.com
Mike Schwab Mike.A.Schwab@gmail.com [hercules-390]
2017-04-26 09:53:50 UTC
Permalink
On real hardware, the zAAPs and zIIPs don't execute some functions.
Attempting to execute the functions would trigger an interrupt and the task
would be transferred to a CP. Hercules doesn't implement this restriction
so it would continue to run full function programs.
Post by Dan Kalmar ***@gmail.com [hercules-390]
I have Hercules 3.12 configured with 4 engines "ENGINES CP,CP,AP,IP"
running Z/OS 1.10 on a Windows 10 system.
IEE174I 13.09.51 DISPLAY M
PROCESSOR STATUS
ID CPU SERIAL
00 + XXXX
01 + XXXX
02 +A XXXX
03 +I XXXX
CPC SI = 2084. .HRC.ZZ.00000000000XXXXX
Model: EMULATOR
when I run a batch job executing a simple assembler program I noticed in
the system trace that the program was dispatched
to execute on the ZAAP processor.
My understanding always was that ZAAP should be dispatched to run eligible
Java workloads.
This may not be a Hercules related issue at all but I thought I'd ask
anyway.
Thanks....Dani Kalmar
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?
ahngb4nond2fjs4iv3chtuacfjmf4dgzileuxli7@yahoo.com [hercules-390]
2017-04-26 09:58:56 UTC
Permalink
The last comment makes a lot of sense based on what I noticed in the system trace. Normal COBOL code executes uninterrupted on ZIIP & ZAAP engines under Hercules.
Loading...