Re: [PATCH v2] mm/gup: fix gup_fast with dynamic page table folding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 17, 2020 at 03:53:33PM +0000, Sasha Levin wrote:
> Hi
> 
> [This is an automated email]
> 
> This commit has been processed because it contains a "Fixes:" tag
> fixing commit: 1a42010cdc26 ("s390/mm: convert to the generic get_user_pages_fast code").
> 
> The bot has tested the following trees: v5.8.9, v5.4.65.
> 
> v5.8.9: Build OK!
> v5.4.65: Failed to apply! Possible dependencies:
>     051a7a94aaa9 ("arm64: hibernate: use get_safe_page directly")
>     13373f0e6580 ("arm64: hibernate: rename dst to page in create_safe_exec_page")
>     48c963e31bc6 ("KVM: arm/arm64: Release kvm->mmu_lock in loop to prevent starvation")
>     68ecabd0e680 ("arm64/mm: Use phys_to_page() to access pgtable memory")
>     8a0af66b35f8 ("arm: mm: add p?d_leaf() definitions")
>     974b9b2c68f3 ("mm: consolidate pte_index() and pte_offset_*() definitions")
>     a2c2e67923ec ("arm64: hibernate: add trans_pgd public functions")
>     a89d7ff933b0 ("arm64: hibernate: remove gotos as they are not needed")
>     d234332c2815 ("arm64: hibernate: pass the allocated pgdp to ttbr0")
>     e9f6376858b9 ("arm64: add support for folded p4d page tables")
> 
> 
> NOTE: The patch will not be queued to stable trees until it is upstream.
> 
> How should we proceed with this patch?

Patch contains Cc: <stable@xxxxxxxxxxxxxxx> [5.2+], so a stable backport to
v5.4.y is also desired once upstream. A patch is self contained and has no
dependencies.

 arch/s390/include/asm/pgtable.h | 42 +++++++++++++++++++++++----------
 include/asm-generic/pgtable.h   | 10 ++++++++
 mm/gup.c                        | 18 +++++++-------
 3 files changed, 49 insertions(+), 21 deletions(-)

There are 2 trivial merge conflicts both for include/asm-generic/pgtable.h.
1. commit ca5999fde0a1 ("mm: introduce include/linux/pgtable.h")
   since v5.8
   it renamed include/asm-generic/pgtable.h => include/linux/pgtable.h

2. commit 93fab1b22ef7 ("mm: add generic p?d_leaf() macros")
   since v5.6
   introduced p?d_leaf() macros after mm_pmd_folded, so the bottom context
   of the hunk mismatch here:

diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index e8cbc2e795d5..90654cb63e9e 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -1427,6 +1427,16 @@ typedef unsigned int pgtbl_mod_mask;
 #define mm_pmd_folded(mm)჻·····__is_defined(__PAGETABLE_PMD_FOLDED)
 #endif
 
+#ifndef p4d_offset_lockless
+#define p4d_offset_lockless(pgdp, pgd, address) p4d_offset(&(pgd), address)
+#endif
+#ifndef pud_offset_lockless
+#define pud_offset_lockless(p4dp, p4d, address) pud_offset(&(p4d), address)
+#endif
+#ifndef pmd_offset_lockless
+#define pmd_offset_lockless(pudp, pud, address) pmd_offset(&(pud), address)
+#endif
+
 /*
  * p?d_leaf() - true if this entry is a final mapping to a physical address.
  * This differs from p?d_huge() by the fact that they are always available (if

Patch for a stable-5.4.y backport sent as a follow on.

Thank you,
Vasily




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux