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

Re: [Xen-devel] Nested events in 64bit mini-OS



Dear all,

I haven't seen any updates on this matter, so I try to come up with a fix. Generally speaking, I want to mimic 32-bit mini-OS behaviour, adding: 1) a fixup table: for each byte offset in the critical region, it provides the number of bytes which have already been popped from the interrupted stack frame. 2) a fixup routine: obtain number of restored registers by quickly looking up the fixup table and coalesce the current stack frame with the just-interrupted one.
3) checks against re-entrance in hypervisor_callback

The "git diff" output is attached to this email. I only did some naive "tests" by running it inside gdb. I am wondering is there a test suite for mini-OS? A follow-up question is that given this fix, do you still need hypercall iret?

Thank you very much.

Regards,
Xu Zhang

On 10/25/2012 03:56 PM, Samuel Thibault wrote:
Xu Zhang, le Tue 23 Oct 2012 17:43:28 -0500, a écrit :
64-bit mini-OS seems to adopt a mixed use of both (in HYPERVISOR_IRET).
mini-OS doesn't have an userspace, so unless an NMI happened, it always
perform interrupt/exception return with machine instruction iret, without
checking against nested events. This is wrong to me. Am I missing something
here?
I don't think you are missing anything. Cc-ing Grzegorz, who actually
wrote the code.

Samuel

Attachment: fixup.diff
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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