Messages in this thread | | | Date | Fri, 10 Jul 2009 08:07:13 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH] x86_64/__iowrite32_copy: don't use string move for PIO writes |
| |
Pavel Machek wrote: >> - the current code is fine as long as it doesn't cross from cached to >> uncached memory, which it never should in any kind of sensible driver; > > Should we add a comment somewhere saying that is not permitted (and why)?
It sounds like what we should do is simply remove arch/x86/lib/iomap_copy_64.S, and probably add a comment to lib/iomap_copy.c stating that rep string instructions have been reported to cause anomalies when accessing WC memory, and that we rely on gcc not generating them due thanks to the volatiles in the implementation of __raw_writel(). H.J. Lu tells me that gcc will not generate string instructions for volatiles, and that the x86 gcc team considers that part of the definition for volatile. (HJL: please correct if I got that incorrect.)
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
| |