From: Sasha Levin <sashal@kernel.org>
To: Jann Horn <jannh@google.com>
Cc: stable@vger.kernel.org
Subject: Re: [PATCH stable 4.19 1/2] mm/khugepaged: fix GUP-fast interaction by sending IPI
Date: Sun, 11 Dec 2022 22:04:34 -0500 [thread overview]
Message-ID: <Y5aaQqNH71IMVks0@sashalap> (raw)
In-Reply-To: <20221206171614.1183048-6-jannh@google.com>
On Tue, Dec 06, 2022 at 06:16:07PM +0100, Jann Horn wrote:
>commit 2ba99c5e08812494bc57f319fb562f527d9bacd8 upstream.
>
>Since commit 70cbc3cc78a99 ("mm: gup: fix the fast GUP race against THP
>collapse"), the lockless_pages_from_mm() fastpath rechecks the pmd_t to
>ensure that the page table was not removed by khugepaged in between.
>
>However, lockless_pages_from_mm() still requires that the page table is
>not concurrently freed. Fix it by sending IPIs (if the architecture uses
>semi-RCU-style page table freeing) before freeing/reusing page tables.
>
>Link: https://lkml.kernel.org/r/20221129154730.2274278-2-jannh@google.com
>Link: https://lkml.kernel.org/r/20221128180252.1684965-2-jannh@google.com
>Link: https://lkml.kernel.org/r/20221125213714.4115729-2-jannh@google.com
>Fixes: ba76149f47d8 ("thp: khugepaged")
>Signed-off-by: Jann Horn <jannh@google.com>
>Reviewed-by: Yang Shi <shy828301@gmail.com>
>Acked-by: David Hildenbrand <david@redhat.com>
>Cc: John Hubbard <jhubbard@nvidia.com>
>Cc: Peter Xu <peterx@redhat.com>
>Cc: <stable@vger.kernel.org>
>Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>[manual backport: two of the three places in khugepaged that can free
>ptes were refactored into a common helper between 5.15 and 6.0;
>TLB flushing was refactored between 5.4 and 5.10;
>TLB flushing was refactored between 4.19 and 5.4;
>pmd collapse for PTE-mapped THP was only added in 5.4]
>Signed-off-by: Jann Horn <jannh@google.com>
This one actually fails on v4.19:
mm/khugepaged.c: In function 'collapse_huge_page':
mm/khugepaged.c:1048:9: error: implicit declaration of function 'tlb_remove_table_sync_one'; did you mean 'tlb_remove_page_size'? [-Werror=implicit-function-declaration]
1048 | tlb_remove_table_sync_one();
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| tlb_remove_page_size
Presumably because we don't have 9de7d833e370 ("s390/tlb: Convert to
generic mmu_gather") on those kernels.
I'll drop both backports from <= 4.19 kernels.
--
Thanks,
Sasha
next prev parent reply other threads:[~2022-12-12 3:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-06 17:16 [PATCH stable 4.9,4.14 1/2] mm/khugepaged: fix GUP-fast interaction by sending IPI Jann Horn
2022-12-06 17:16 ` [PATCH stable 4.9,4.14 2/2] mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths Jann Horn
2022-12-06 17:16 ` [PATCH stable 5.10,5.15 2/3] mm/khugepaged: fix GUP-fast interaction by sending IPI Jann Horn
2022-12-06 17:16 ` [PATCH stable 5.10,5.15 3/3] mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths Jann Horn
2022-12-06 17:16 ` [PATCH stable 5.10,5.15 1/3] mm/khugepaged: take the right locks for page table retraction Jann Horn
2022-12-06 17:16 ` [PATCH stable 4.19 1/2] mm/khugepaged: fix GUP-fast interaction by sending IPI Jann Horn
2022-12-12 3:04 ` Sasha Levin [this message]
2022-12-06 17:16 ` [PATCH stable 4.19 2/2] mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths Jann Horn
2022-12-06 17:16 ` [PATCH stable 5.4 2/3] mm/khugepaged: fix GUP-fast interaction by sending IPI Jann Horn
2022-12-06 17:16 ` [PATCH stable 5.4 3/3] mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths Jann Horn
2022-12-06 17:16 ` [PATCH stable 5.4 1/3] mm/khugepaged: take the right locks for page table retraction Jann Horn
2022-12-06 17:16 ` [PATCH stable 6.0 2/3] mm/khugepaged: fix GUP-fast interaction by sending IPI Jann Horn
2022-12-06 17:16 ` [PATCH stable 6.0 3/3] mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths Jann Horn
2022-12-06 17:16 ` [PATCH stable 6.0 1/3] mm/khugepaged: take the right locks for page table retraction Jann Horn
2022-12-08 13:54 ` [PATCH stable 4.9,4.14 1/2] mm/khugepaged: fix GUP-fast interaction by sending IPI Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y5aaQqNH71IMVks0@sashalap \
--to=sashal@kernel.org \
--cc=jannh@google.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.