On Wed, 2002-05-29 at 12:50, Maciej W. Rozycki wrote:
> On 29 May 2002, Justin Carlson wrote:
>
> > Here's a patch against cvs that does the rename. Unless anyone has
> > objections, Ralf, could you apply this?
>
> That looks fine to me. I'd keep the leading double underscore, though --
> it acts as a warning sign the function is internal and low-level and thus
> it should not be used without an appropriate justification.
>
Yes, you're right, it's not a standard function to have. But I'm
already wondering if this is not the right thing to do. See below.
> Well, at least r3k uses WT for dcache, so it really doesn't matter unless
> what you want to achieve is to hit performance. I suspect this is also
> the case for the others that ignore dcache flushes. The L1 vs L2 issue
> should be investigated where applicable.
Are the general semantics of the thing just broken, then? We already
ignore the arguments to sys_cacheflush; would redefining the syscall to
mean "flush the caches in such a way that I won't get stale instructions
from this address range" actually break any current programs?
(Evidently not, if several ports are already doing it that way)...
More to the point, does __flush_cache_all() serve any useful purpose at
all, or can it just be replaced with appropriate invocations of
flush_icache_range()? Other than internal use for the individual port
cache routines, it's *only* used in the syscalls and the gdb stub.
I'd like to hear the rationale for __flush_cache_all() from the original
author; it appears to have shown up in CVS a little more than a year
ago, but I don't know who sent the patch to Ralf. Ralf, do you
remember?
Thanks,
Justin
|