[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] EFLAGS based v->arch.hvm_vcpu.single_step

Hi all,

Does anyone have thoughts on extending v->arch.hvm_vcpu.single_step to support pre-MTF systems, in a way that would mimic the MTF?

So far I'm emulating PUSHF/POPF to hide the hypervisor's trap flag, and eventually I'll multiplex it down to the guest, but I'm having issues.

Right now, I'm enabling X86_EFLAGS_TF in vmx_intr_assist, just like where MTF is enabled if desired. It's cleared at the start of vmx_exit_handler (if required). I'm catching single step from TRAP_debug, but when I disable stepping the guest usually seems to hang. It's not completely frozen, because if I turn single stepping back on I see more events, and the instruction pointer is moving.

I'm mainly running into problems with interrupts (I believe). I think during a context switch from a timer, I'm doing things like enabling the trap flag on CR3 change. The guest seems to get caught in a loop somewhere in kernel land after stepping is disabled.

Any thoughts on the general idea, or hints in the right direction would be appreciated.

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.