So, after our investigations, we were able to pinpoint the issue.
It seem to happen on most RHEL derivative distributions when migrating from 8.7 to 8.8. As suggested, the bug is in the kernel.
Starting with 4.18.0-466.el8
the patch: x86/idt: Annotate alloc_intr_gate() with __init is integrated and will create the issue. It is missing x86/xen: Split HVM vector callback setup and interrupt gate allocation that should have been integrated as well.
The migration to 8.8 will move you to 4.18.0-477.*
versions that are also raising this issue, that's what you reported.
We found that the 4.18.0-488
that can be found in CentOS 8 Stream integrates the missing patch, and do indeed work when installed manually.
Your report helped us identify and reproduce the issues. That allowed us to provide a callstack to Xen devs. Then Roger Pau MonnΓ© found that it was this patch missing quickly, and we were able to find which versions of the kernel RPMs were integrating it and when the fix was integrated.
This means the issue was identified on RH side, and it is now a matter of having an updated kernel in derivative distributions like Rocky and Alma.