rr (http://rr-project.org/), a Linux userspace record-and-replay reverse-
execution debugger, would like to trap and emulate the CPUID instruction.
This would allow us to a) mask away certain hardware features that rr does
not support (e.g. RDRAND) and b) enable trace portability across machines
by providing constant results. Patches for support in the Linux kernel are in
flight, and we'd like to be able to use this feature on virtualized Linux
instances as well.
Changes since v2:
- Added missing Signed-off-by.
- Style nits.
- Made comments in traps.c more descriptive.
- Don't advance IP past the CPUID when faulting from vmx_do_cpuid.
- Do advance IP past the undefined prefix in emulate_forced_invalid_op.
- Deliver a #GP when faulting in emulate_forced_invalid_op (instead of #UD).
- Rearrange cpuid_fault within arch_vcpu.
Xen-devel mailing list