|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
RE: [Xen-ia64-devel] Re: [Xen-devel] [PATCH] fix event channelnotificati
>From: Keir Fraser
>Sent: 2006年6月29日 21:29
>
>On 29 Jun 2006, at 06:43, Isaku Yamahata wrote:
>
>> evtchn_do_upcall() has a micro optimization which is depends on
>> that xchg is a barrier.
>> However xchg of IA64 has acquire semantics so that event
>> channel notification is lost sometimes. This patch fixes it.
>
>clear_bit() isn't a barrier either (at least according to Linux bitop
>semantics). You want 'rmb();'. I suggest just putting it inside ifndef
>CONFIG_X86, with the comment about XCHG being a barrier on x86
>placed
>just before the ifndef. Leave the zap of pending flag as a plain write.
>
> -- Keir
>
Yes, the explicit semantic of clear_bit doesn’t contain the barrier,
which however implicitly imposes a partial barrier on xen/ia64 due to its
memory model. On IA64, a acquire semantic serves to ensure current
instruction made visible prior to all subsequent instructions, and clear_bit
on IA64 is implemented with cmpxchg.acq which can ensure subsequent
event manipulations strictly following event indicator clearance.
But, in this special case, seems to use rmb() is preferred, since this
clearance doesn't need to be a semaphore operation which should be
light.
Thanks
Kevin
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- RE: [Xen-ia64-devel] Re: [Xen-devel] [PATCH] fix event channelnotification loss on IA64,
Tian, Kevin <=
|
|
|
|
|