Balbir Singh <bsinghar...@gmail.com> writes: > On 23/11/16 22:09, Aneesh Kumar K.V wrote: >> When we are updating pte, we just need to flush the tlb mapping for >> that pte. Right now we do a full mm flush because we don't track page >> size. Update the interface to track the page size and use that to >> do the right tlb flush. >> > > Could you also clarify the scope -- this seems to be _radix_ only. > The problem statement is not very clear and why doesn't the flush_tlb_page() > following ptep_set_access_flags() work? What else do we need to do?
Yes it modifies only radix part. Don't understand the flush_tlb_page() part of the comment above. We are modifying the tlbflush that we need to do in the pte update sequence for DD1. ie, we need to do the flush before we can set the pte with new value. Also in this specific case, we can idealy drop that flush_tlb_page, because relaxing an access really don't need a tlb flush from generic architecture point of view. I left it there to make sure, we measure and get the invalidate path correct before going ahead with that optimization. > > >> Signed-off-by: Aneesh Kumar K.V <aneesh.ku...@linux.vnet.ibm.com> >> --- >> arch/powerpc/include/asm/book3s/32/pgtable.h | 4 +++- >> arch/powerpc/include/asm/book3s/64/pgtable.h | 7 +++++-- >> arch/powerpc/include/asm/book3s/64/radix.h | 14 +++++++------- >> arch/powerpc/include/asm/nohash/32/pgtable.h | 4 +++- >> arch/powerpc/include/asm/nohash/64/pgtable.h | 4 +++- >> arch/powerpc/mm/pgtable-book3s64.c | 3 ++- >> arch/powerpc/mm/pgtable-radix.c | 16 ++++++++++++++++ >> arch/powerpc/mm/pgtable.c | 10 ++++++++-- >> arch/powerpc/mm/tlb-radix.c | 15 --------------- >> 9 files changed, 47 insertions(+), 30 deletions(-) >> -aneesh