Messages in this thread | | | Date | Mon, 02 Jun 2008 11:56:39 +0200 | From | Jes Sorensen <> | Subject | Re: MMIO and gcc re-ordering issue |
| |
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
| |