qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-discuss] s390x user-mode working example


From: Alex Kashchenko
Subject: Re: [Qemu-discuss] s390x user-mode working example
Date: Fri, 24 Nov 2017 17:09:13 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

On 11/24/2017 12:52 PM, Thomas Huth wrote:
On 24.11.2017 12:19, Alex Kashchenko wrote:
Unfortunately, I just found that OpenJDK's JIT requires newer
instruction set than z900:

$ ./s390x-linux-user/qemu-s390x
~/jdk9/build/linux-s390x-normal-server-release/images/jdk/bin/java -version
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (vm_version_s390.hpp:367), pid=26037, tid=26039
#  guarantee((_features[0] & GnrlInstrExtFacilityMask) ==
GnrlInstrExtFacilityMask) failed: We no more support older than z10.

That looks like it is missing the so-called "general instruction
extension facility". You might be lucky - that's one of the extensions
that can already be enabled for testing purposes with the "qemu" CPU:
Try to start QEMU with the "-cpu qemu,ginste=true" parameter.
If it then still complains about missing facilities, try "-cpu help" to
list all recognized feature flags.

"-cpu qemu,ginste=true" helps to pass the check from previous email.


The following features can already be enabled with the "qemu" CPU (list
has been copy-n-pasted from the sources, but I hope you'll be able to
map it to the output of "-cpu help", too):

        S390_FEAT_DAT_ENH,
        S390_FEAT_IDTE_SEGMENT,
        S390_FEAT_STFLE,
        S390_FEAT_EXTENDED_IMMEDIATE,
        S390_FEAT_EXTENDED_TRANSLATION_2,
        S390_FEAT_EXTENDED_TRANSLATION_3,
        S390_FEAT_LONG_DISPLACEMENT,
        S390_FEAT_LONG_DISPLACEMENT_FAST,
        S390_FEAT_ETF2_ENH,
        S390_FEAT_STORE_CLOCK_FAST,
        S390_FEAT_MOVE_WITH_OPTIONAL_SPEC,
        S390_FEAT_ETF3_ENH,
        S390_FEAT_COMPARE_AND_SWAP_AND_STORE,
        S390_FEAT_COMPARE_AND_SWAP_AND_STORE_2,
        S390_FEAT_GENERAL_INSTRUCTIONS_EXT,
        S390_FEAT_EXECUTE_EXT,
        S390_FEAT_FLOATING_POINT_SUPPPORT_ENH,
        S390_FEAT_STFLE_45,
        S390_FEAT_STFLE_49,
        S390_FEAT_LOCAL_TLB_CLEARING,
        S390_FEAT_STFLE_53,

Applying all the options from this list:

-cpu qemu,ginste=true,dateh=true,idtes=true,stfle=true,eimm=true,etf2=true,etf3=true,ldisp=true,ldisphp=true,etf3eh=true,etf3eh=true,csst=true,csst2=true,ginste=true,exrl=true,fpseh=true,stfle45=true,stfle49=true,ltlbc=true,stfle53=true

still causes the SIGILL during the JVM init though.

Thanks for the list! At least I know now that the problem is not caused by some local misconfiguration.

--
-Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]