[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: Linux questions
On Tue, Dec 04, 2007 at 11:27:02AM +0000, Keir Fraser wrote: > On 4/12/07 11:13, "Andi Kleen" <andi@xxxxxxxxxxxxxx> wrote: > > >>> I have to disagree: At least the uses of barrier() in monotonic_clock() > >>> appear > >>> to be in places where in reality (and from a theoretical standpoint) rmb() > >>> ought to be used. > >> > >> We're sync'ing against concurrent updates of a this_cpu variable. We can > >> only race updates in a local ISR, and hence barrier() suffices. > > > > Not if you use RDTSC inside the loop. > > I must disagree! And I *know* that RDTSC is not a serialising instruction... > > If we race, then there was an interrupt. Interrupt delivery is a > serialisation point for the interrupted instruction stream. The synchronization relies on the RDTSC happening between the two sequence number checks. Otherwise you can get inconsistent state between RDTSC and the xtime data which might be changing asynchronously on another CPU. Therefore you need RDTSC barriers. -Andi _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |