[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 07/10] tools/insn-fuzz: Provide IA32_DEBUGCTL consistently to the emulator
x86_emulates()'s is_branch_step() performs a speculative read of IA32_DEBUGCTL, but doesn't squash exceptions should they arise. In reality, this MSR is always available. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: George Dunlap <george.dunlap@xxxxxxxxxxxxx> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> RFC: I'm also wondering whether it would be better for the emulator to always clean up after failed speculative reads. It is plausible that might wish to explicitly run with some architectural MSRs unavailable. --- tools/fuzz/x86_instruction_emulator/fuzz-emul.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c index 74c15d2..ca902f6 100644 --- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c +++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c @@ -385,7 +385,8 @@ enum { MSRI_STAR, MSRI_LSTAR, MSRI_CSTAR, - MSRI_SYSCALL_MASK + MSRI_SYSCALL_MASK, + MSRI_IA32_DEBUGCTLMSR, }; static const unsigned int msr_index[MSR_INDEX_MAX] = { @@ -396,7 +397,8 @@ static const unsigned int msr_index[MSR_INDEX_MAX] = { [MSRI_STAR] = MSR_STAR, [MSRI_LSTAR] = MSR_LSTAR, [MSRI_CSTAR] = MSR_CSTAR, - [MSRI_SYSCALL_MASK] = MSR_SYSCALL_MASK + [MSRI_SYSCALL_MASK] = MSR_SYSCALL_MASK, + [MSRI_IA32_DEBUGCTLMSR] = MSR_IA32_DEBUGCTLMSR, }; static int fuzz_read_msr( -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |