Ivan Warren ivan@vmfacility.fr [hercules-390]
2018-02-09 17:11:03 UTC
Hey folks,
I had fun around with yet another z/architecture implementation.... It's
open source, but it is limited to running linux and limited to z/Arch...
It's the qemu s390x emulator which uses a technique called "tcg" (Tiny
Code Generator) - which is a sort of JIT (Just In Time) compiler, which
rely on generating and optimizing machine code from emulated code using
the GCC backend by converting the emulated instructions to INSN (The
intermediate code) and then compiling that code to native code.
It's slightly (significantly) faster than hercules when it comes to
running zLinux...
Here are some of the times I get from compiling hercules itself (same
rig (Xeon based), single emulated CPU) :
qemu-system-s390x
real   108m35.287s
user   90m50.142s
sys    16m56.053s
hercules
real   222m33.518s
user   202m52.797s
sys    19m5.514s
Not sure how or if some of those techniques could be applied to hercules
(most problematic I think would be self modifying code) - and qemu s390x
certainly doesn't do SIE...
--Ivan
[Non-text portions of this message have been removed]
I had fun around with yet another z/architecture implementation.... It's
open source, but it is limited to running linux and limited to z/Arch...
It's the qemu s390x emulator which uses a technique called "tcg" (Tiny
Code Generator) - which is a sort of JIT (Just In Time) compiler, which
rely on generating and optimizing machine code from emulated code using
the GCC backend by converting the emulated instructions to INSN (The
intermediate code) and then compiling that code to native code.
It's slightly (significantly) faster than hercules when it comes to
running zLinux...
Here are some of the times I get from compiling hercules itself (same
rig (Xeon based), single emulated CPU) :
qemu-system-s390x
real   108m35.287s
user   90m50.142s
sys    16m56.053s
hercules
real   222m33.518s
user   202m52.797s
sys    19m5.514s
Not sure how or if some of those techniques could be applied to hercules
(most problematic I think would be self modifying code) - and qemu s390x
certainly doesn't do SIE...
--Ivan
[Non-text portions of this message have been removed]