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

Re: [Xen-devel] [PATCH V2 0/6] mini-os: check and fix up against nested events in x86-64 kernel entry

On 04/22/2013 07:00 AM, Ian Campbell wrote:
On Sun, 2013-04-21 at 01:22 +0100, Samuel Thibault wrote:
Ian Campbell, le Wed 17 Apr 2013 16:14:51 +0100, a Ãcrit :
On Thu, 2013-04-11 at 05:46 +0100, Xu Zhang wrote:
mini-os almost always use direct iret to return from interrupt.
But this operation is not atomic because Xen uses event mask to
enable/disable event delivery. So there is a window for nested
events to happen after re-enabling event delivery and before
a direct iret.

The issues come with such non-atomicity have been discussed in:

And also on Xen-devel:

This patch checks and fixes up against nested events in a similar
fashion of Linux 32bit pvops.
It checks against re-entrant of critical section in event handling
callback. Try to fix up by coalescing the two stack frames into
one when the a nested event came.
It then resumes execution as if the second event never happened.

It also refactors mini-os's x86-64 kernel entry assembly code.
Samuel are you now happy with this?
Thanks. George also Acked on IRC wrt the freeze so applied.

Thanks Xu.


Thanks, Ian.

Another thing: mini-os x86-32bit fixes up against event re-entrant using a look up table in the similar fashion of the initial version of these patches. There is no problem correctness wise. But such table could be hard to maintain, as Jeremy pointed out. So I can apply the similar refinement on x86_32.S, too. It also makes mini-os 32bit kernel entry consistent with 64bit's. Let me know if it is worth doing.

Thanks again.



Xen-devel mailing list



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