[parisc-linux] itlb miss handler optimizations!

Matthew Wilcox willy@debian.org
Fri, 25 Jul 2003 12:46:15 +0100


On Fri, Jul 25, 2003 at 03:04:50AM -0400, Carlos O'Donell wrote:
> @@ -1882,6 +1884,15 @@ kernel_bad_space:
>  dbit_fault:
>  	b               intr_save
>  	ldi             20,%r8
> +
> +itlb_user_fault:
> +	/* User tlb missed for other than his own space. Optimization. */
> +#ifdef __LP64__
> +	cmpb,=		%r0,t0,itlb_miss_common20 /* backward */
> +#else
> +	cmpb,=		%r0,t0,itlb_miss_common11 /* backward */
> +#endif
> +	nop

can't do that.  we have three sets of routines -- itlb_miss_common_11,
itlb_miss_common_20 and itlb_miss_common_20w.  we select between _20w
or not at compile time (if it's 64-bit, it's PA 2.0 Wide), but select
between _20 and _11 at boot time (fault_vector_20 vs fault_vector_11).

shame on you, you didn't even try assembling it ;-)

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk