[parisc-linux] itlb miss handler optimizations!

Carlos O'Donell carlos@baldric.uwo.ca
Sat, 26 Jul 2003 14:02:29 -0400


> > @@ -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 ;-)

I'll take a look at that and rewrite the patch. It was 3AM when I
finished it and didn't bother to compile it as I passed out on the
bed ;)

c.