Subject: Re: time to fold GENERIC.MP into GENERIC?
To: None <port-sparc@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-sparc
Date: 04/29/2004 04:36:26
>> in the GENERIC kernel,
(or any other configured for certain combinations of
SUN4/SUN4C/SUN4M/SUN4D)
>> all MMU accesses are slower because of an additional function
>> pointer indirection and other tests.

> Could you point me to the configuration option(s) causing this?

SUN4, SUN4C, SUN4M, SUN4D.  See the SPARC pmap.h:

	#if !(defined(SUN4M) || defined(SUN4D)) && (defined(SUN4) || defined(SUN4C))
	
	#define		pmap_clear_modify	pmap_clear_modify4_4c
[...]
	#elif (defined(SUN4M) || defined(SUN4D)) && !(defined(SUN4) || defined(SUN4C))
	
	#define		pmap_clear_modify	pmap_clear_modify4m
[...]
	#else  /* must use function pointers */
	
	extern boolean_t(*pmap_clear_modify_p)(struct vm_page *);
[...]
	#define		pmap_clear_modify	(*pmap_clear_modify_p)
[...]
	#endif

For the "other tests", look up the definition and uses of the
CPU_ISSUN4, CPU_ISSUN4M, CPU_ISSUN4C, CPU_ISSUN4D macros.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B