Re: [PATCH v3 1/8] mm: Cleanup faultaround and finish_fault() codepaths
From: Guenter Roeck <linux@roeck-us.net>
Date: 2021-02-10 14:58:19
Also in:
linux-mm, lkml
On 2/10/21 3:44 AM, Will Deacon wrote:
On Tue, Feb 09, 2021 at 12:24:49PM -0800, Guenter Roeck wrote:quoted
On Thu, Jan 14, 2021 at 05:59:27PM +0000, Will Deacon wrote:quoted
From: "Kirill A. Shutemov" <redacted> alloc_set_pte() has two users with different requirements: in the faultaround code, it called from an atomic context and PTE page table has to be preallocated. finish_fault() can sleep and allocate page table as needed. PTL locking rules are also strange, hard to follow and overkill for finish_fault(). Let's untangle the mess. alloc_set_pte() has gone now. All locking is explicit. The price is some code duplication to handle huge pages in faultaround path, but it should be fine, having overall improvement in readability. Link: https://lore.kernel.org/r/20201229132819.najtavneutnf7ajp@box (local) Signed-off-by: Kirill A. Shutemov <redacted> [will: s/from from/from/ in comment; spotted by willy] Signed-off-by: Will Deacon <will@kernel.org> --- fs/xfs/xfs_file.c | 6 +- include/linux/mm.h | 12 ++- include/linux/pgtable.h | 11 +++ mm/filemap.c | 177 ++++++++++++++++++++++++++--------- mm/memory.c | 199 ++++++++++++---------------------------- 5 files changed, 213 insertions(+), 192 deletions(-)When building microblaze:mmu_defconfig: mm/filemap.c: In function 'filemap_map_pages': mm/filemap.c:3153:3: error: implicit declaration of function 'update_mmu_cache'; did you mean 'update_mmu_tlb'? Bisect log attached.Looks like a missing include.
Indeed.
Will --->8quoted
From 076f93117c067d5b6caab4773c6d6da130859cc4 Mon Sep 17 00:00:00 2001From: Will Deacon <will@kernel.org> Date: Wed, 10 Feb 2021 11:15:11 +0000 Subject: [PATCH] mm: filemap: Fix microblaze build failure with 'mmu_defconfig' Commit f9ce0be71d1f ("mm: Cleanup faultaround and finish_fault() codepaths") added a call to 'update_mmu_cache()' in mm/filemap.c, which breaks the build for microblaze: | mm/filemap.c: In function 'filemap_map_pages': | mm/filemap.c:3153:3: error: implicit declaration of function 'update_mmu_cache'; did you mean 'update_mmu_tlb'? Include asm/tlbflush.h in mm/filemap.c to make sure that the function (or indeed, macro) is available. Reported-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20210209202449.GA104837@roeck-us.net (local) Signed-off-by: Will Deacon <will@kernel.org>
Tested-by: Guenter Roeck <linux@roeck-us.net>
quoted hunk ↗ jump to hunk
--- mm/filemap.c | 1 + 1 file changed, 1 insertion(+)diff --git a/mm/filemap.c b/mm/filemap.c index fb7a8d9b5603..2ca13227747b 100644 --- a/mm/filemap.c +++ b/mm/filemap.c@@ -43,6 +43,7 @@ #include <linux/ramfs.h> #include <linux/page_idle.h> #include <asm/pgalloc.h> +#include <asm/tlbflush.h> #include "internal.h" #define CREATE_TRACE_POINTS
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel