History log of /arch/tile/lib/cacheflush.c
Revision Date Author Comments
54229ff359250ce7292dbeb59f157a2d3b67e30c 30-Mar-2012 Chris Metcalf <cmetcalf@tilera.com> arch/tile: fix finv_buffer_remote() for tilegx

There were some correctness issues with this code that are now fixed
with this change. The change is likely less performant than it could
be, but it should no longer be vulnerable to any races with memory
operations on the memory network while invalidating a range of memory.
This code is run infrequently so performance isn't critical, but
correctness definitely is.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
918cbd38aef83de3a2516299bcb230caf59462a0 29-Mar-2012 Chris Metcalf <cmetcalf@tilera.com> arch/tile: fix pointer cast in cacheflush.c

Pragmatically it couldn't be wrong to cast pointers to long to compare
them (since all kernel addresses are in the top half of VA space),
but it's more correct to cast to unsigned long.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
dbb434214e34014dc7acb0e7811c37471df26a72 02-May-2011 Chris Metcalf <cmetcalf@tilera.com> arch/tile: disable GX prefetcher during cache flush

Otherwise, it's possible to end up with the prefetcher pulling
data into cache that the code believes has been flushed.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
63b7ca6b04427aea9075d6f5f5f15b82e115bce4 28-Feb-2011 Chris Metcalf <cmetcalf@tilera.com> arch/tile: enhance existing finv_buffer_remote() routine

It now takes an additional argument so it can be used to
flush-and-invalidate pages that are cached using hash-for-home
as well those that are cached with coherence point on a single cpu.

This allows it to be used more widely for changing the coherence
point of arbitrary pages when necessary.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
c78095bd8c77fca2619769ff8efb639fd100e373 25-Jun-2010 Chris Metcalf <cmetcalf@tilera.com> arch/tile: Split the icache flush code off to a generic <arch> header.

This code is used in other places in our system than in Linux, so
to share it we now implement it as an inline function in our low-level
<arch> headers, and instantiate it in one file in Linux's arch/tile/lib.
The file is now cacheflush.c and is C code rather than the strangely-named
and assembler-implemented __invalidate_icache.S.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>