[parisc-linux] Re: [parisc-linux-cvs] 7300LC
Matthew Wilcox
willy at debian.org
Mon Apr 26 05:59:18 MDT 2004
On Sun, Apr 25, 2004 at 06:41:11PM -0700, Randolph Chung wrote:
> willy, kyle found out that this doesn't work:
>
> > > Split out 7300LC from 7100LC and PREFETCH from PA20.
>
> extern inline void prefetchw(const void *addr)
> {
> __asm__("ldd 0(%0), %%r0" : : "r" (addr));
> }
>
> on pa11 gas won't assemble the ldd insn.
>
> is this supposed to work for pa7300lc? if so we might have to rewrite
> prefetchw to use a .word or something...
It is supposed to work, yes. I gleaned this information from
http://cpus.hp.com/technical_references/b7300lc.shtml section 2.2.4
The 7300LC ERS (http://ftp.parisc-linux.org/docs/chips/pcxl2_ers.pdf)
is of no help in this matter. In section 14.5, it says:
Because the processor does not necessarily stall even with two cache
misses pending, software prefetching can lead to better performance
increases than on the PA7100LC. This is because a software prefetch,
initiated by a load to general register 0, is not treated like a
load miss by the data cache and therefore can be completed in the
``background'' by the hardware and is less likely to cause processor
stalls.
But, thinking about it, PA7300LC isn't SMP-capable. Is there any
difference between prefetch-for-read and prefetch-for-write on a
uniprocessor system? I don't think so. So possibly we should just
define prefetchw to be the same as prefetch for CONFIG_PA7300LC and
different for CONFIG_PA20. Makes sense?
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
More information about the parisc-linux
mailing list