[crac] RFR: 8372933: [CRaC] Restore failed due to incompatible or missing CPU features, try using -XX:CPUFeatures=0xfoo, 0xbar on checkpoint
Jan Kratochvil
jkratochvil at openjdk.org
Tue Dec 2 13:59:37 UTC 2025
On Tue, 2 Dec 2025 13:41:27 GMT, Radim Vansa <rvansa at openjdk.org> wrote:
>> Since [JDK-8368929](https://bugs.openjdk.org/browse/JDK-8368929) the message:
>>
>> Restore failed due to incompatible or missing CPU features, try using -XX:CPUFeatures=0xe14e1805fdfbf7,0xfcc on checkpoint.
>>
>> is wrong as it does not do logical and of both CPUFeatures masks.
>>
>> Yes, I should have caught it during [JDK-8368929](https://bugs.openjdk.org/browse/JDK-8368929) review.
>>
>> @rvansa will probably want to change the API but this is a PoC how it should work.
>>
>> It is in fact untested as I haven't run it with CRIU yet.
>
> src/java.base/share/native/libcrexec/image_constraints.cpp line 286:
>
>> 284: print_bitmap("Constraint: ", static_cast<const unsigned char*>(c.data), c.data_size);
>> 285: print_bitmap("Image: ", static_cast<const unsigned char*>(t->data), t->data_size);
>> 286: if (c.comparison != EQUALS) {
>
> You should rather check that this was really a `SUBSET` comparison - in case of `SUPERSET` the desired value would be logical OR. Not sure if we should call it a 'conjuction' or an 'intersection' since we're talking about set.
I agree it should be just for `SUBSET`.
-------------
PR Review Comment: https://git.openjdk.org/crac/pull/278#discussion_r2581309608
More information about the crac-dev
mailing list