On Thu, 19 Jan 2006, Jesse Barnes wrote:
> Maybe you could just turn the above into mmiowb() calls instead? That
> would cover altix, origin, and ppc as well I think. On other platforms
> it would be a complete no-op.
As you obviously noted, the core of the code was lifted from mmiowb().
But no, an mmiowb() as such isn't correct. At the time this code is
executing, it's on a CPU remote from the one which issued any PIO writes
to the device. So in this case we need to poll the Shub register for
a remote node, but mmiowb() only polls for the Shub corresponding to
the current CPU.
My first incarnation of this patch (never publicly presented) did
implement a new mmiowb_remote(cpu) machvec instead, and this was
placed in the context-switch (in) path instead of the task migration
path. However, since this behavior is only needed for the task
migration case, Jack Steiner pointed out that this was a more
appropriate way to implement it. As migration is much less frequent
than context switching, this is a better-performing method to solve
the problem.
Thanks,
Brent
--
Brent Casavant All music is folk music. I ain't
[email protected] never heard a horse sing a song.
Silicon Graphics, Inc. -- Louis Armstrong
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]