Re: New resources - pls, explain :-(

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sun, 15 Aug 1999 00:46:04 +0100 (BST)


> Linus Torvalds wrote:
> > - writel() - strict ordering
> > - __writel() - only to be used for people who REALLY know that they don't
> > care about ordering.
>
> As a bonus, it can actually be more efficient for writel() to implement
> ordering instead of explicit barriers in the driver.
>
> How so? See type aliasing rules...

Store ordering below the compiler level is important. Doing

foo[1]=1;
foo[0]=2;

May well be strictly ordered from the C point of view. What it looks like
to another CPU or on another bus is entirely different to what ANSI says
about the code within program flow.

There are two layers of caches, write buffers on the cpu and the bridges
and also inter cpu cache fill logic all conspiring to anooy you and all below
the C world

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