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 v3:
- Added Reviewed-by lines.
- Check cpuid_fault before getting the segment register to avoid unnecessary
- Move cpuid_fault checking logic for hvm domains into a new function
- Emulating cpuid faulting in the hvmemul code, being careful to emulate
cpuid faulting only if we're actually emulating cpuid.
Xen-devel mailing list