-
Notifications
You must be signed in to change notification settings - Fork 42
8385815: [CRaC] Fix aarch64 failing testcases #321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jankratochvil
wants to merge
45
commits into
openjdk:crac
Choose a base branch
from
jankratochvil:8385815
base: crac
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
45 commits
Select commit
Hold shift + click to select a range
104cdff
8385815: CRaC: Fix aarch64 failing testcases
jankratochvil 6c349cd
Unify glibc features numbering
jankratochvil dd9a56c
Compilation fixes
jankratochvil 2d75c5d
aarch64 compilation fixes
jankratochvil 3fee099
Fix x86 testcases
jankratochvil e485a96
Fix whitespace
jankratochvil bed0d6b
Merge branch 'crac' into 8385815
jankratochvil efb045e
Merge fixup.
jankratochvil f5375da
Fix unused bits
jankratochvil 1b08c8a
Keep CPU_FEATURE_FLAGS compatible for 2 parameters
jankratochvil 73a7adf
Revert "Keep CPU_FEATURE_FLAGS compatible for 2 parameters"
jankratochvil e4a3e56
Remove: // TODO: check if there are any mandatory features and set th…
jankratochvil ec4b509
CPUFeaturesCheck: timeout in 1 minute
jankratochvil 7f1f37b
Fix test/jdk/jdk/crac/engine/CheckCPUFeaturesMessageTest.java for the…
jankratochvil 2f9bfa4
Fix test/jdk/jdk/crac/CPUFeatures/SimpleCPUFeaturesTest.java for the …
jankratochvil 1383d22
Fix _features_names
jankratochvil df72e36
Fix _features_names on aarch64
jankratochvil 32ad1cd
Fix _features_names for OSX
jankratochvil 19ea634
Fix SortIncludes
jankratochvil 61583ec
Fix aarch64 testcases
jankratochvil b59fff8
Fix CPUFeaturesAWS.sh
jankratochvil bcd03d7
Update src/hotspot/share/runtime/vm_features.inline.hpp
jankratochvil b3b8664
test/jdk/jdk/crac/ignoreRestore/MissingMetadataTest.java: Add aarch64
jankratochvil 2972e2e
Update src/hotspot/share/runtime/vm_features.inline.hpp
jankratochvil 33af019
Fix assertion on test/jdk/jdk/crac/CPUFeatures/SimpleCPUFeaturesTest.…
jankratochvil 6566d0a
Fix compatibility of CPUFeatures mask with older JDKs
jankratochvil 6745562
Fix CPUFeatures gap sanity check; fix also aarch64
jankratochvil fcfca73
Fix SimpleCPUFeaturesTest.java
jankratochvil e8da63a
Merge branch 'crac' into 8385815
jankratochvil dc6d1cb
Update CPU_SHA value
jankratochvil e56848a
Fix excessive error message newline
jankratochvil 4d78c6c
shift the bits for jdk17
jankratochvil 9e37a40
Fix aarch64 build
jankratochvil 5f99e03
Fix aarch64
jankratochvil e5c19cf
CPUFeaturesAWS.sh: Fix random shutdowns
jankratochvil b48c809
Sync CPU Feature with jdk26
jankratochvil 9ecabed
move/unify VM_Version::print_using_features_cr
jankratochvil 6bc10e4
Make the mask compatible with jdk26
jankratochvil d2d6b56
Fix mandatory mmx
jankratochvil 9234bbf
Try to make the testcase more safe against unexpected shutdowns
jankratochvil bacb940
FIx CheckCPUFeaturesMessageTest.java
jankratochvil fb2b917
Return CPU_SSE to CPUFeatures_mandatory()
jankratochvil 96e0bab
Remove unconditional setting of MMX_UNUSED and FLUSH_UNUSED as they a…
jankratochvil 31f0298
Revert "Remove unconditional setting of MMX_UNUSED and FLUSH_UNUSED a…
jankratochvil 7a7e742
Update CPUFeatures_mandatory comments
jankratochvil File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -126,6 +126,9 @@ | |
| /* These are handled as an exception in VM_Version::glibc_patch(). */ \ | ||
| GLIBC_UNSUPPORTED(CMPXCHG16 ); \ | ||
| GLIBC_UNSUPPORTED(LAHFSAHF ); \ | ||
| /* Unused fields, see the enum definition. */ \ | ||
| GLIBC_UNSUPPORTED(MMX_UNUSED ); \ | ||
| GLIBC_UNSUPPORTED(FLUSH_UNUSED ); \ | ||
| /**/ | ||
|
|
||
| #if INCLUDE_CPU_FEATURE_ACTIVE | ||
|
|
@@ -143,9 +146,7 @@ int VM_Version::_stepping; | |
| bool VM_Version::_has_intel_jcc_erratum; | ||
| VM_Version::CpuidInfo VM_Version::_cpuid_info = { 0, }; | ||
|
|
||
| #define DECLARE_CPU_FEATURE_NAME(id, name) XSTR(name), | ||
| const char* VM_Version::_features_names[] = { CPU_FEATURE_FLAGS(DECLARE_CPU_FEATURE_NAME)}; | ||
| #undef DECLARE_CPU_FEATURE_NAME | ||
| const VM_Features::FeaturesNames VM_Version::_features_names = VM_Features::make_features_names(); | ||
|
|
||
| // Address of instruction which causes SEGV | ||
| address VM_Version::_cpuinfo_segv_addr = nullptr; | ||
|
|
@@ -2166,16 +2167,6 @@ bool VM_Version::cpu_features_binary(VM_Version::VM_Features *data) { | |
| return true; | ||
| } | ||
|
|
||
| void VM_Version::print_using_features_cr() { | ||
| if (_ignore_glibc_not_using) { | ||
| tty->print_raw_cr("CPU features are being kept intact as requested by -XX:CPUFeatures=ignore"); | ||
| } else { | ||
| tty->print_raw("CPU features being used are: -XX:CPUFeatures="); | ||
| _features.aot_code_cache_features().print_numbers(*tty); | ||
| tty->cr(); | ||
| } | ||
| } | ||
|
|
||
| #ifdef COMPILER2 | ||
| // Determine if it's running on Cascade Lake using default options. | ||
| bool VM_Version::is_default_intel_cascade_lake() { | ||
|
|
@@ -3200,6 +3191,14 @@ VM_Version::VM_Features VM_Version::CpuidInfo::feature_flags() const { | |
| if (std_cpuid1_ecx.bits.osxsave != 0) { | ||
| vm_features.set_feature(CPU_OSXSAVE); | ||
| } | ||
| if (sef_cpuid7_edx.bits.cet_ibt != 0) { | ||
| // GLIBC name for CPU_CET_IBT, we could share its bit in VM_Features. | ||
| vm_features.set_feature(CPU_IBT); | ||
| } | ||
| if (sef_cpuid7_ecx.bits.cet_ss != 0) { | ||
| // GLIBC name for CPU_CET_SS, we could share its bit in VM_Features. | ||
| vm_features.set_feature(CPU_SHSTK); | ||
| } | ||
| if (std_cpuid1_ecx.bits.xsave != 0) { | ||
| vm_features.set_feature(CPU_XSAVE); | ||
| } | ||
|
|
@@ -3230,6 +3229,9 @@ VM_Version::VM_Features VM_Version::CpuidInfo::feature_flags() const { | |
| } | ||
| } | ||
| } | ||
| // Unused fields, see the enum definition. | ||
| vm_features.set_feature(CPU_MMX_UNUSED); | ||
| vm_features.set_feature(CPU_FLUSH_UNUSED); | ||
|
|
||
| // Composite features. | ||
| if (supports_tscinv_bit() && | ||
|
|
@@ -3421,8 +3423,12 @@ bool VM_Version::is_intrinsic_supported(vmIntrinsicID id) { | |
|
|
||
| VM_Features VM_Version::CPUFeatures_mandatory() { | ||
| VM_Features vm_features; | ||
| // JDK-8383881 in jdk28+ removed supports_sse(), supports_sse2(), supports_mmx() and supports_clflush(). | ||
| // JDK-8383881 has kept the CPU_SSE and CPU_SSE2 bits for an unknown reason. | ||
| vm_features.set_feature(CPU_SSE); | ||
| vm_features.set_feature(CPU_SSE2); | ||
| vm_features.set_feature(CPU_MMX_UNUSED); | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In JDK 26 we don't have MMX in mandatory, so why is it here? |
||
| vm_features.set_feature(CPU_FLUSH_UNUSED); | ||
| return vm_features; | ||
| } | ||
|
|
||
|
|
@@ -3432,7 +3438,7 @@ VM_Features VM_Version::CPUFeatures_generic() { | |
| #else | ||
| VM_Features retval = CPUFeatures_mandatory(); | ||
| #ifdef AMD64 | ||
| // The following options are all in /proc/cpuinfo of one of the first 64-bit CPUs - Atom D2700 (and Opteron 1352): https://superuser.com/q/1572306/1015048 | ||
| // The following options are all in /proc/cpuinfo of one of the first 64-bit CPUs - Atom D2700 (and Opteron 1352): https://superuser.com/q/1572306/1015048 | ||
| retval.set_feature(CPU_FXSR); // enabled in 'gcc -Q --help=target', not used by OpenJDK | ||
| retval.set_feature(CPU_TSC); // not used by gcc, used by OpenJDK | ||
| retval.set_feature(CPU_CX8); // gcc detects it to set cpu "pentium" (=32-bit only), used by OpenJDK | ||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.