[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <684b9004-fad2-3727-b215-a4b2bfe36712@redhat.com>
Date: Wed, 7 Sep 2022 21:34:15 +0200
From: David Hildenbrand <david@...hat.com>
To: Yang Shi <shy828301@...il.com>, peterx@...hat.com,
kirill.shutemov@...ux.intel.com, jhubbard@...dia.com,
jgg@...dia.com, hughd@...gle.com, akpm@...ux-foundation.org,
aneesh.kumar@...ux.ibm.com
Cc: linux-mm@...ck.org, linuxppc-dev@...ts.ozlabs.org,
linux-kernel@...r.kernel.org
Subject: Re: [v2 PATCH 2/2] powerpc/64s/radix: don't need to broadcast IPI for
radix pmd collapse flush
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@...ux.ibm.com>
> Signed-off-by: Yang Shi <shy828301@...il.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@...hat.com>
--
Thanks,
David / dhildenb
Powered by blists - more mailing lists