[v2 PATCH 2/2] powerpc/64s/radix: don't need to broadcast IPI for radix pmd collapse flush

David Hildenbrand david at redhat.com
Thu Sep 8 05:34:15 AEST 2022


On 07.09.22 20:01, Yang Shi wrote:
> The IPI broadcast is used to serialize against fast-GUP, but fast-GUP
> will move to use RCU instead of disabling local interrupts in fast-GUP.
> Using an IPI is the old-styled way of serializing against fast-GUP
> although it still works as expected now.
> 
> And fast-GUP now fixed the potential race with THP collapse by checking
> whether PMD is changed or not.  So IPI broadcast in radix pmd collapse
> flush is not necessary anymore.  But it is still needed for hash TLB.
> 
> Suggested-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
> Signed-off-by: Yang Shi <shy828301 at gmail.com>
> ---
>   arch/powerpc/mm/book3s64/radix_pgtable.c | 9 ---------
>   1 file changed, 9 deletions(-)
> 
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index 698274109c91..e712f80fe189 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -937,15 +937,6 @@ pmd_t radix__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long addre
>   	pmd = *pmdp;
>   	pmd_clear(pmdp);
>   
> -	/*
> -	 * pmdp collapse_flush need to ensure that there are no parallel gup
> -	 * walk after this call. This is needed so that we can have stable
> -	 * page ref count when collapsing a page. We don't allow a collapse page
> -	 * if we have gup taken on the page. We can ensure that by sending IPI
> -	 * because gup walk happens with IRQ disabled.
> -	 */
> -	serialize_against_pte_lookup(vma->vm_mm);
> -
>   	radix__flush_tlb_collapsed_pmd(vma->vm_mm, address);
>   
>   	return pmd;

Makes sense to me

Acked-by: David Hildenbrand <david at redhat.com>

-- 
Thanks,

David / dhildenb



More information about the Linuxppc-dev mailing list