Re: MMIO and gcc re-ordering issue

Jes Sorensen
2008-06-02T09:56:53Z

Jeremy Higdon wrote:
> We don't actually have that problem on the Altix. All writes issued
> by CPU X will be ordered with respect to each other. But writes by
> CPU X and CPU Y will not be, unless an mmiowb() is done by the
> original CPU before the second CPU writes. I.e.
>
> CPU X writel
> CPU X writel
> CPU X mmiowb
>
> CPU Y writel
> ...
>
> Note that this implies some sort of locking. Also note that if in
> the above, CPU Y did the mmiowb, that would not work.

Hmmm,

Then it's less bad than I thought - my apologies for the confusion.

Would we be able to use Ben's trick of setting a per cpu flag in
writel() then and checking that in spin unlock issuing the mmiowb()
there if needed?

Cheers,
Jes