aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/mm
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-03-19 02:55:11 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:16:41 -0500
commitbb8646d8340fa7c1b66a037428e39f85f8738f0a (patch)
tree931d4505a0ba65124b662f0f8b5935e0b154bd66 /arch/sparc64/mm
parent88d7079458f87d6f2d2261b2f87b7b9416019f5e (diff)
[SPARC64]: Optimized TSB table initialization.
We only need to write an invalid tag every 16 bytes, so taking advantage of this can save many instructions compared to the simple memset() call we make now. A prefetching implementation is implemented for sun4u and a block-init store version if implemented for Niagara. The next trick is to be able to perform an init and a copy_tsb() in parallel when growing a TSB table. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/mm')
-rw-r--r--arch/sparc64/mm/tsb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc64/mm/tsb.c b/arch/sparc64/mm/tsb.c
index 1af797a0a092..b2064e2a44d6 100644
--- a/arch/sparc64/mm/tsb.c
+++ b/arch/sparc64/mm/tsb.c
@@ -313,7 +313,7 @@ retry_tsb_alloc:
313 } 313 }
314 314
315 /* Mark all tags as invalid. */ 315 /* Mark all tags as invalid. */
316 memset(new_tsb, 0x40, new_size); 316 tsb_init(new_tsb, new_size);
317 317
318 /* Ok, we are about to commit the changes. If we are 318 /* Ok, we are about to commit the changes. If we are
319 * growing an existing TSB the locking is very tricky, 319 * growing an existing TSB the locking is very tricky,