[crac] RFR: Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom [v3]
Anton Kozlov
akozlov at openjdk.org
Mon Aug 14 17:37:28 UTC 2023
On Mon, 14 Aug 2023 09:38:58 GMT, Jan Kratochvil <jkratochvil at openjdk.org> wrote:
>> Support -XX:+IgnoreCPUFeatures during -XX:CRaCRestoreFrom
>
> Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:
>
> - Implement -XX:+IgnoreCPUFeatures
> - Merge branch 'crac' into crac-restoreignore
> - Split off crac_restore_finalize() from crac_restore().
> - Document -XX:CPUFeatures=ignore, reject !ignore during -XX:CRaCRestoreFrom
> - Support -XX:CPUFeatures=ignore during -XX:CRaCRestoreFrom
LGTM except the declaration nit.
src/hotspot/cpu/x86/vm_version_x86.cpp line 2758:
> 2756: }
> 2757:
> 2758: auto supports_exit = [&](const char *supports, bool file, bool this_cpu) {
Just a note, not a part of this PR: all `_supports_*`, except _supports_cx8, are hard-wired to `true`, and all of them mostly serve to communicate CPU capabilities to the shared code.
The `_supports_cx8` equals to supports_cmpxchg8(), and I assume this is supported pretty widely. And supports_cmpxchg8 implemented via` _features & CPU_CX8`, so that is tested along CPU features check.
It looks the whole handling of `_supports_*` can be removed, or at least be turned into assert()s.
src/hotspot/cpu/x86/vm_version_x86.hpp line 630:
> 628: static void nonlibc_tty_print_uint64_comma_uint64(uint64_t num1, uint64_t num2);
> 629: static void print_using_features_cr();
> 630: static bool nonlibc_str_equals(const char *a, const char *b);
Stray declaration
-------------
PR Review: https://git.openjdk.org/crac/pull/100#pullrequestreview-1577278348
PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293759380
PR Review Comment: https://git.openjdk.org/crac/pull/100#discussion_r1293742065
More information about the crac-dev
mailing list