diff for duplicates of <20180723162735.GA5980@cmpxchg.org> diff --git a/a/1.txt b/N1/1.txt index d68e075..1665984 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -21,7 +21,7 @@ On Mon, Jul 23, 2018 at 05:35:35PM +0200, Arnd Bergmann wrote: > With longer CPU and node masks, I could recreate the problem with > kernels as old as linux-4.7 when arm64 NUMA support got added. > -> Cc: stable@vger.kernel.org +> Cc: stable at vger.kernel.org > Fixes: 1a2db300348b ("arm64, numa: Add NUMA support for arm64 platforms.") > Fixes: 3e1907d5bf5a ("arm64: mm: move vmemmap region right below > the linear region") @@ -52,7 +52,7 @@ Thanks for testing it, I don't have a cross-compile toolchain set up. --- -From 34c4c4549f09f971d2d391a8d652d56cb9b05475 Mon Sep 17 00:00:00 2001 +>From 34c4c4549f09f971d2d391a8d652d56cb9b05475 Mon Sep 17 00:00:00 2001 From: Johannes Weiner <hannes@cmpxchg.org> Date: Mon, 23 Jul 2018 10:18:23 -0400 Subject: [PATCH] arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap @@ -104,7 +104,7 @@ Says Arnd: Reported-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Arnd Bergmann <arnd@arndb.de> -Cc: stable@vger.kernel.org +Cc: stable at vger.kernel.org Fixes: 1a2db300348b ("arm64, numa: Add NUMA support for arm64 platforms.") Fixes: 3e1907d5bf5a ("arm64: mm: move vmemmap region right below the linear region") Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> diff --git a/a/content_digest b/N1/content_digest index 85060fb..3fc51a5 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,27 +3,10 @@ "ref\0CAK8P3a3Nsmt54-ed_gWNev3CBS6_Sv5QGOw4G0sY4ZXOi1R4_Q@mail.gmail.com\0" "ref\020180723152323.GA3699@cmpxchg.org\0" "ref\0CAK8P3a15K-TXYuFX-ZsJiroqA1GWX2XS4ioZSjcjJYgh1b_xSA@mail.gmail.com\0" - "From\0Johannes Weiner <hannes@cmpxchg.org>\0" - "Subject\0Re: [PATCH 02/10] mm: workingset: tell cache transitions from workingset thrashing\0" + "From\0hannes@cmpxchg.org (Johannes Weiner)\0" + "Subject\0[PATCH 02/10] mm: workingset: tell cache transitions from workingset thrashing\0" "Date\0Mon, 23 Jul 2018 12:27:35 -0400\0" - "To\0Arnd Bergmann <arnd@arndb.de>\0" - "Cc\0Peter Zijlstra <peterz@infradead.org>" - Suren Baghdasaryan <surenb@google.com> - Mike Galbraith <efault@gmx.de> - Will Deacon <will.deacon@arm.com> - Linux Kernel Mailing List <linux-kernel@vger.kernel.org> - kernel-team@fb.com - Linux-MM <linux-mm@kvack.org> - Vinayak Menon <vinmenon@codeaurora.org> - Ingo Molnar <mingo@redhat.com> - Shakeel Butt <shakeelb@google.com> - Catalin Marinas <catalin.marinas@arm.com> - Tejun Heo <tj@kernel.org> - cgroups@vger.kernel.org - Andrew Morton <akpm@linux-foundation.org> - Linus Torvalds <torvalds@linux-foundation.org> - Christopher Lameter <cl@linux.com> - " Linux ARM <linux-arm-kernel@lists.infradead.org>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Mon, Jul 23, 2018 at 05:35:35PM +0200, Arnd Bergmann wrote:\n" @@ -49,7 +32,7 @@ "> With longer CPU and node masks, I could recreate the problem with\n" "> kernels as old as linux-4.7 when arm64 NUMA support got added.\n" "> \n" - "> Cc: stable@vger.kernel.org\n" + "> Cc: stable at vger.kernel.org\n" "> Fixes: 1a2db300348b (\"arm64, numa: Add NUMA support for arm64 platforms.\")\n" "> Fixes: 3e1907d5bf5a (\"arm64: mm: move vmemmap region right below\n" "> the linear region\")\n" @@ -80,7 +63,7 @@ "\n" "---\n" "\n" - "From 34c4c4549f09f971d2d391a8d652d56cb9b05475 Mon Sep 17 00:00:00 2001\n" + ">From 34c4c4549f09f971d2d391a8d652d56cb9b05475 Mon Sep 17 00:00:00 2001\n" "From: Johannes Weiner <hannes@cmpxchg.org>\n" "Date: Mon, 23 Jul 2018 10:18:23 -0400\n" "Subject: [PATCH] arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap\n" @@ -132,7 +115,7 @@ "\n" "Reported-by: Arnd Bergmann <arnd@arndb.de>\n" "Tested-by: Arnd Bergmann <arnd@arndb.de>\n" - "Cc: stable@vger.kernel.org\n" + "Cc: stable at vger.kernel.org\n" "Fixes: 1a2db300348b (\"arm64, numa: Add NUMA support for arm64 platforms.\")\n" "Fixes: 3e1907d5bf5a (\"arm64: mm: move vmemmap region right below the linear region\")\n" "Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>\n" @@ -162,4 +145,4 @@ "-- \n" 2.18.0 -e3be00de20e6169dddaabfd03c0b54f3a7dd5a5f670f44a2011fc2322e158ef7 +55999740c87e8c256c4e463e9ce90309cc1d932d8c7051203f5c103989907ccb
diff --git a/a/1.txt b/N2/1.txt index d68e075..5bbc0b0 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -51,85 +51,3 @@ Sure thing. Thanks for testing it, I don't have a cross-compile toolchain set up. --- - -From 34c4c4549f09f971d2d391a8d652d56cb9b05475 Mon Sep 17 00:00:00 2001 -From: Johannes Weiner <hannes@cmpxchg.org> -Date: Mon, 23 Jul 2018 10:18:23 -0400 -Subject: [PATCH] arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap - setups - -Arnd reports the following arm64 randconfig build error with the PSI -patches that add another page flag: - - /git/arm-soc/arch/arm64/mm/init.c: In function 'mem_init': - /git/arm-soc/include/linux/compiler.h:357:38: error: call to - '__compiletime_assert_618' declared with attribute error: BUILD_BUG_ON - failed: sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT) - -The additional page flag causes other information stored in -page->flags to get bumped into their own struct page member: - - #if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT+LAST_CPUPID_SHIFT <= - BITS_PER_LONG - NR_PAGEFLAGS - #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT - #else - #define LAST_CPUPID_WIDTH 0 - #endif - - #if defined(CONFIG_NUMA_BALANCING) && LAST_CPUPID_WIDTH == 0 - #define LAST_CPUPID_NOT_IN_PAGE_FLAGS - #endif - -which in turn causes the struct page size to exceed the size set in -STRUCT_PAGE_MAX_SHIFT. This value is an an estimate used to size the -VMEMMAP page array according to address space and struct page size. - -However, the check is performed - and triggers here - on a !VMEMMAP -config, which consumes an additional 22 page bits for the sparse -section id. When VMEMMAP is enabled, those bits are returned, cpupid -doesn't need its own member, and the page passes the VMEMMAP check. - -Restrict that check to the situation it was meant to check: that we -are sizing the VMEMMAP page array correctly. - -Says Arnd: - - Further experiments show that the build error already existed before, - but was only triggered with larger values of CONFIG_NR_CPU and/or - CONFIG_NODES_SHIFT that might be used in actual configurations but - not in randconfig builds. - - With longer CPU and node masks, I could recreate the problem with - kernels as old as linux-4.7 when arm64 NUMA support got added. - -Reported-by: Arnd Bergmann <arnd@arndb.de> -Tested-by: Arnd Bergmann <arnd@arndb.de> -Cc: stable@vger.kernel.org -Fixes: 1a2db300348b ("arm64, numa: Add NUMA support for arm64 platforms.") -Fixes: 3e1907d5bf5a ("arm64: mm: move vmemmap region right below the linear region") -Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> ---- - arch/arm64/mm/init.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c -index 1b18b4722420..86d9f9d303b0 100644 ---- a/arch/arm64/mm/init.c -+++ b/arch/arm64/mm/init.c -@@ -611,11 +611,13 @@ void __init mem_init(void) - BUILD_BUG_ON(TASK_SIZE_32 > TASK_SIZE_64); - #endif - -+#ifdef CONFIG_SPARSEMEM_VMEMMAP - /* - * Make sure we chose the upper bound of sizeof(struct page) -- * correctly. -+ * correctly when sizing the VMEMMAP array. - */ - BUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT)); -+#endif - - if (PAGE_SIZE >= 16384 && get_num_physpages() <= 128) { - extern int sysctl_overcommit_memory; --- -2.18.0 diff --git a/a/content_digest b/N2/content_digest index 85060fb..0caa452 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -78,88 +78,6 @@ "\n" "Thanks for testing it, I don't have a cross-compile toolchain set up.\n" "\n" - "---\n" - "\n" - "From 34c4c4549f09f971d2d391a8d652d56cb9b05475 Mon Sep 17 00:00:00 2001\n" - "From: Johannes Weiner <hannes@cmpxchg.org>\n" - "Date: Mon, 23 Jul 2018 10:18:23 -0400\n" - "Subject: [PATCH] arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap\n" - " setups\n" - "\n" - "Arnd reports the following arm64 randconfig build error with the PSI\n" - "patches that add another page flag:\n" - "\n" - " /git/arm-soc/arch/arm64/mm/init.c: In function 'mem_init':\n" - " /git/arm-soc/include/linux/compiler.h:357:38: error: call to\n" - " '__compiletime_assert_618' declared with attribute error: BUILD_BUG_ON\n" - " failed: sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT)\n" - "\n" - "The additional page flag causes other information stored in\n" - "page->flags to get bumped into their own struct page member:\n" - "\n" - " #if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT+LAST_CPUPID_SHIFT <=\n" - " BITS_PER_LONG - NR_PAGEFLAGS\n" - " #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT\n" - " #else\n" - " #define LAST_CPUPID_WIDTH 0\n" - " #endif\n" - "\n" - " #if defined(CONFIG_NUMA_BALANCING) && LAST_CPUPID_WIDTH == 0\n" - " #define LAST_CPUPID_NOT_IN_PAGE_FLAGS\n" - " #endif\n" - "\n" - "which in turn causes the struct page size to exceed the size set in\n" - "STRUCT_PAGE_MAX_SHIFT. This value is an an estimate used to size the\n" - "VMEMMAP page array according to address space and struct page size.\n" - "\n" - "However, the check is performed - and triggers here - on a !VMEMMAP\n" - "config, which consumes an additional 22 page bits for the sparse\n" - "section id. When VMEMMAP is enabled, those bits are returned, cpupid\n" - "doesn't need its own member, and the page passes the VMEMMAP check.\n" - "\n" - "Restrict that check to the situation it was meant to check: that we\n" - "are sizing the VMEMMAP page array correctly.\n" - "\n" - "Says Arnd:\n" - "\n" - " Further experiments show that the build error already existed before,\n" - " but was only triggered with larger values of CONFIG_NR_CPU and/or\n" - " CONFIG_NODES_SHIFT that might be used in actual configurations but\n" - " not in randconfig builds.\n" - "\n" - " With longer CPU and node masks, I could recreate the problem with\n" - " kernels as old as linux-4.7 when arm64 NUMA support got added.\n" - "\n" - "Reported-by: Arnd Bergmann <arnd@arndb.de>\n" - "Tested-by: Arnd Bergmann <arnd@arndb.de>\n" - "Cc: stable@vger.kernel.org\n" - "Fixes: 1a2db300348b (\"arm64, numa: Add NUMA support for arm64 platforms.\")\n" - "Fixes: 3e1907d5bf5a (\"arm64: mm: move vmemmap region right below the linear region\")\n" - "Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>\n" - "---\n" - " arch/arm64/mm/init.c | 4 +++-\n" - " 1 file changed, 3 insertions(+), 1 deletion(-)\n" - "\n" - "diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c\n" - "index 1b18b4722420..86d9f9d303b0 100644\n" - "--- a/arch/arm64/mm/init.c\n" - "+++ b/arch/arm64/mm/init.c\n" - "@@ -611,11 +611,13 @@ void __init mem_init(void)\n" - " \tBUILD_BUG_ON(TASK_SIZE_32\t\t\t> TASK_SIZE_64);\n" - " #endif\n" - " \n" - "+#ifdef CONFIG_SPARSEMEM_VMEMMAP\n" - " \t/*\n" - " \t * Make sure we chose the upper bound of sizeof(struct page)\n" - "-\t * correctly.\n" - "+\t * correctly when sizing the VMEMMAP array.\n" - " \t */\n" - " \tBUILD_BUG_ON(sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT));\n" - "+#endif\n" - " \n" - " \tif (PAGE_SIZE >= 16384 && get_num_physpages() <= 128) {\n" - " \t\textern int sysctl_overcommit_memory;\n" - "-- \n" - 2.18.0 + --- -e3be00de20e6169dddaabfd03c0b54f3a7dd5a5f670f44a2011fc2322e158ef7 +a0fd2f0a2ec32ad1d7d49c4491b5c4747a3181c6d75f46604f91d98d6b8be13d
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.