lkml.org 
[lkml]   [2008]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC patch 08/18] cnt32_to_63 should use smp_rmb()
    On Fri, Nov 07, 2008 at 04:04:48PM -0500, Steven Rostedt wrote:
    >
    > On Fri, 7 Nov 2008, Paul E. McKenney wrote:
    > > > > Would that make more sense ?
    > > > >
    > > >
    > > > Oh, actually, I got things reversed in this email : the readl(io_addr)
    > > > must be done _after_ the __m_cnt_hi read.
    > > >
    > > > Therefore, two consecutive executions would look like :
    > > >
    > > > barrier(); /* Make sure the compiler does not reorder __m_cnt_hi and
    > > > previous mmio read. */
    > > > read __m_cnt_hi
    > > > smp_rmb(); /* Waits for every cached memory reads to complete */
    > >
    > > If these are MMIO reads, then you need rmb() rather than smp_rmb(),
    > > at least on architectures that can reorder writes (Power, Itanium,
    > > and I believe also ARM, ...).
    >
    > The read is from a clock source. The only writes that are happening is
    > by the clock itself.
    >
    > On a UP system, is a rmb still needed? That is, can you have two reads on
    > the same CPU from the clock source that will produce a backwards clock?
    > That to me sounds like the clock interface is broken.

    I do not believe that all CPUs are guaranteed to execute a sequence
    of MMIO reads in order.

    Thanx, Paul


    \
     
     \ /
      Last update: 2008-11-08 01:37    [W:3.336 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site