Subject: Re: CVS commit: src/sys/arch/sgimips/sgimips
To: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
From: Christopher SEKIYA <wileyc@rezrov.net>
List: port-sgimips
Date: 10/15/2005 22:37:09
On Sat, Oct 15, 2005 at 01:33:31PM +0900, Izumi Tsutsui wrote:

> Is't it better to check mips_sdcache_line_size
> (which is taken from CP0, though mips_machdep_find_l2cache()
>  overrides it) rather than mips_sdcache_size?

Yes.  My original analysis of the problem was slightly wrong.

The problem was not that mips_machdep_find_l2cache() did not properly set
mips_sdcache_line_size; the problem was mips_machdep_cache_config() called
r5k_enable_sdcache() iff MIPS3_CONFIG_SC was zero.

MIPS3_CONFIG_SC is not reliable for r5k on IP22.  Since r5k_enable_sdcache()
will gracefully exit if SC size is zero, we should call it unconditionally.

I believe the patch below does the right thing.  My IP22 seems happy with it
(although it doesn't seem any faster, perhaps I should run a benchmark).

-- Chris
	GPG key FEB9DE7F (91AF 4534 4529 4BCC 31A5  938E 023E EEFB FEB9 DE7F)

Index: machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sgimips/sgimips/machdep.c,v
retrieving revision 1.93
diff -u -r1.93 machdep.c
--- machdep.c   3 Jun 2005 19:02:33 -0000       1.93
+++ machdep.c   15 Oct 2005 13:31:37 -0000
@@ -862,6 +862,7 @@
 #if defined(MIPS3)
        case MIPS_R5000:
        case MIPS_RM5200:
+               r5k_enable_sdcache();
                break;
 #endif
        }