lkml.org 
[lkml]   [2005]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: question on memory barrier
    On Fri, 26 Aug 2005, moreau francis wrote:

    > I don't think that MIPS cpu reorder memory access, but gcc can ! And I
    > don't think that the use of 'volatile' can prevent it to do that.

    Well, certain MIPS implementations may merge multiple uncached writes in
    the writeback buffer, e.g. writes to different bytes within a single
    aligned word. This is true for consecutive writes; I'm not sure this
    permits jumping the writeback queue, though.

    > > To return to the point directly at hand - on MIPS architectures to date,
    > > simply doing your memory access through a "volatile u32 *" is sufficient
    > > to ensure that the IO hits the bus (assuming that your pointer points to
    > > kseg1, not kseg0, or is otherwise uncached), because 'volatile' forces
    > > gcc to generate a "sw" for each store, and all MIPS so far have been
    > > designed so that multiple uncached writes to mmio locations do generate
    > > multiple bus transactions.

    Unfortunately this is not true -- see above. This is why even wmb()
    isn't a no-op on MIPS.

    Maciej
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-08-26 12:47    [W:0.020 / U:0.576 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site