All of lore.kernel.org
 help / color / mirror / Atom feed
* Performance bug in c-r4k.c cache handling code
@ 2005-09-19 15:40 Thiemo Seufer
  2005-09-19 16:54 ` Atsushi Nemoto
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Thiemo Seufer @ 2005-09-19 15:40 UTC (permalink / raw)
  To: linux-mips

Hello All,

I found an performance bug in c-r4k.c:r4k_dma_cache_inv, where a
Hit_Writeback_Inv instead of Hit_Invalidate is done. Ralf mentioned
this is probably due to broken Hit_Invalidate cache ops on some
CPUs, does anybody have more information about this? The appended
patch works apparently fine on R4400, R4600v2.0, R5000.


Thiemo


Index: arch/mips/mm/c-r4k.c
===================================================================
RCS file: /home/cvs/linux/arch/mips/mm/c-r4k.c,v
retrieving revision 1.119
diff -u -p -r1.119 c-r4k.c
--- arch/mips/mm/c-r4k.c	9 Sep 2005 20:26:54 -0000	1.119
+++ arch/mips/mm/c-r4k.c	19 Sep 2005 15:33:35 -0000
@@ -685,7 +685,7 @@ static void r4k_dma_cache_inv(unsigned l
 		a = addr & ~(sc_lsize - 1);
 		end = (addr + size - 1) & ~(sc_lsize - 1);
 		while (1) {
-			flush_scache_line(a);	/* Hit_Writeback_Inv_SD */
+			invalidate_scache_line(a);	/* Hit_Invalidate_SD */
 			if (a == end)
 				break;
 			a += sc_lsize;
@@ -702,7 +702,7 @@ static void r4k_dma_cache_inv(unsigned l
 		a = addr & ~(dc_lsize - 1);
 		end = (addr + size - 1) & ~(dc_lsize - 1);
 		while (1) {
-			flush_dcache_line(a);	/* Hit_Writeback_Inv_D */
+			invalidate_dcache_line(a);	/* Hit_Invalidate_D */
 			if (a == end)
 				break;
 			a += dc_lsize;

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-09-20 14:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-19 15:40 Performance bug in c-r4k.c cache handling code Thiemo Seufer
2005-09-19 16:54 ` Atsushi Nemoto
2005-09-19 18:31   ` Thiemo Seufer
2005-09-19 17:01 ` Maciej W. Rozycki
2005-09-20  9:09   ` Dominic Sweetman
2005-09-20 12:22     ` Ralf Baechle
2005-09-20 12:37     ` Maciej W. Rozycki
2005-09-20 13:18       ` Dominic Sweetman
2005-09-20 14:51         ` Maciej W. Rozycki
2005-09-19 17:31 ` peter fuerst

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.