Messages in this thread | | | Date | Fri, 07 Nov 2008 16:22:59 -0500 (EST) | From | Nicolas Pitre <> | Subject | Re: [RFC patch 08/18] cnt32_to_63 should use smp_rmb() |
| |
On Fri, 7 Nov 2008, Mathieu Desnoyers wrote:
> First off, read hw cnt low _is_ an uncached memory read (this is the > mmio read). __m_cnt_hi is a cached read, and therefore can be delayed if > the cache-line is busy. And we have no control on how much time can pass > between the two reads given the CPU may stall waiting for a cache-line. > > So the scenario above happens if CPU A have __m_cnt_hi in its cacheline, > but for come reason CPU B have to defer the cacheline read of __m_cnt_hi > due to heavy cacheline traffic and decides to proceed to mmio read > before the cacheline has been brought to the CPU because "hey, there is > no data dependency between those two reads !".
OK that makes sense.
Nicolas
| |