tlb flushing on Power

Brian King brking at
Fri Jan 27 01:41:36 EST 2012

CC'ing linuxppc-dev...

On 01/26/2012 08:18 AM, Seth Jennings wrote:
> Hey Dave,
> So I submitted the zsmalloc patches to lkml at the beginning
> of the year
> I found there are two functions Nitin used in the mapping
> functions that are not supported in the powerpc arch:
> set_pte() and __flush_tlb_one().
> set_pte() seems straightforward for the ppc64 case, although
> I think Power does some sort of pte hashing that might convolute
> it a little.
> My real question is how to achieve the function of __flush_tlb_one()
> on Power.  I looked in Docuemntation/cachetlb.txt and it seems like
> the portable tlb flush functions are:
> void flush_tlb_all(void)
> void flush_tlb_mm(struct mm_struct *mm)
> void flush_tlb_range(struct vm_area_struct *vma,
> 			unsigned long start, unsigned long end)
> void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
> Of those options, flush_tlb_page() seems the closest to what 
> __flush_tlb_one() does.  However, we don't have a vma argument in
> our context (akaik) to send to it.
> I was wondering if you have any ideas.  Any help is greatly appreciated!
> --
> Seth

Brian King
Linux on Power Virtualization
IBM Linux Technology Center

More information about the Linuxppc-dev mailing list