Subject: Re: [PATCH v2 1/4] powerpc: Introduce local (non-broadcast) forms of tlb invalidates

From: Benjamin Herrenschmidt <[email-masked]>
Date: Thu, 04 Sep 2008 13:06:15 +1000

On Fri, 2008-08-29 at 08:56 -0500, Kumar Gala wrote:

>  #if defined(CONFIG_40x) || defined(CONFIG_8xx)
>  #define _tlbia()	asm volatile ("tlbia; sync" : : : "memory")
> @@ -38,31 +41,31 @@ extern void _tlbia(void);
>  
>  static inline void flush_tlb_mm(struct mm_struct *mm)
>  {
> -	_tlbia();
> +	_tlbil_all();
>  }
>  

Why not _tlbil_pid() ?

I think those flush_tlb_* should be implemented once for
all SW loaded TLB processors. The low level tlbil_pid
can just alias to tlbil_all() on CPUs that don't support
it (either that, or you do a read/test/write loop over
the TLB, might be worth experimenting with both).

Cheers,
Ben.