tlb flushing on Power

Brian King brking at linux.vnet.ibm.com
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
> 
> https://lkml.org/lkml/2012/1/9/389
> 
> 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