[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8EA2C2C4116BF44AB370468FBF85A777FDC8066C@orsmsx504.amr.corp.intel.com>
Date: Fri, 10 Jul 2009 09:02:54 -0700
From: "Lu, Hongjiu" <hongjiu.lu@...el.com>
To: "H. Peter Anvin" <hpa@...or.com>, Pavel Machek <pavel@....cz>
CC: "John A. Gregor" <john.gregor@...gic.com>,
"ralph.campbell@...gic.com" <ralph.campbell@...gic.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"johng@...mond.mv.qlogic.com" <johng@...mond.mv.qlogic.com>
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.)
>
That is correct. If it isn't the case, please open a gcc bug report.
H.J.
Powered by blists - more mailing lists