diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2024-04-16 15:46:45 -0700 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2024-04-16 15:46:45 -0700 |
commit | 11a743235ddef7807167259e5fedc4871aa5e9b6 (patch) | |
tree | 5eda6152ae4af36820cb54a2c6d03d330089723b | |
parent | ca7be0e11bf78ddbc23899f6a8bedb29fd31d367 (diff) | |
download | 25-new-11a743235ddef7807167259e5fedc4871aa5e9b6.tar.gz |
foo
74 files changed, 74 insertions, 469 deletions
diff --git a/patches/bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy-fix.patch b/patches/bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy-fix.patch index da3e51176..3f4f043de 100644 --- a/patches/bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy-fix.patch +++ b/patches/bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy-fix.patch @@ -15,7 +15,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/lib/bootconfig.c~bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy-fix +++ a/lib/bootconfig.c -@@ -901,7 +901,8 @@ static int __init xbc_parse_tree(void) +@@ -898,7 +898,8 @@ static int __init xbc_parse_tree(void) } /** diff --git a/patches/fix-missing-vmalloch-includes-fix-2.patch b/patches/fix-missing-vmalloch-includes-fix-2.patch index 1fefbac6e..fb5cafce3 100644 --- a/patches/fix-missing-vmalloch-includes-fix-2.patch +++ b/patches/fix-missing-vmalloch-includes-fix-2.patch @@ -24,7 +24,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> #include <linux/memblock.h> #include <linux/init.h> +#include <linux/vmalloc.h> + #include <asm/pgtable_areas.h> #include "numa_internal.h" - _ diff --git a/patches/fs-convert-alloc_inode_sb-to-a-macro.patch b/patches/fs-convert-alloc_inode_sb-to-a-macro.patch index 690f5b8f3..39d83f277 100644 --- a/patches/fs-convert-alloc_inode_sb-to-a-macro.patch +++ b/patches/fs-convert-alloc_inode_sb-to-a-macro.patch @@ -34,7 +34,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/include/linux/fs.h~fs-convert-alloc_inode_sb-to-a-macro +++ a/include/linux/fs.h -@@ -3083,11 +3083,7 @@ int setattr_should_drop_sgid(struct mnt_ +@@ -3085,11 +3085,7 @@ int setattr_should_drop_sgid(struct mnt_ * This must be used for allocating filesystems specific inodes to set * up the inode reclaim context correctly. */ diff --git a/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling-fix.patch b/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling-fix.patch index bcc47b7b3..7a41d0354 100644 --- a/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling-fix.patch +++ b/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling-fix.patch @@ -22,7 +22,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/MAINTAINERS~maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling-fix +++ a/MAINTAINERS -@@ -5258,6 +5258,7 @@ CODE TAGGING +@@ -5256,6 +5256,7 @@ CODE TAGGING M: Suren Baghdasaryan <surenb@google.com> M: Kent Overstreet <kent.overstreet@linux.dev> S: Maintained @@ -30,7 +30,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> F: include/linux/codetag.h F: lib/codetag.c -@@ -14167,10 +14168,10 @@ M: Suren Baghdasaryan <surenb@google.com +@@ -14163,10 +14164,10 @@ M: Suren Baghdasaryan <surenb@google.com M: Kent Overstreet <kent.overstreet@linux.dev> L: linux-mm@kvack.org S: Maintained @@ -42,5 +42,5 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -F: lib/pgalloc_tag.c MEMORY CONTROLLER DRIVERS - M: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> + M: Krzysztof Kozlowski <krzk@kernel.org> _ diff --git a/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling.patch b/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling.patch index bedeaa16c..0f195ecf8 100644 --- a/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling.patch +++ b/patches/maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling.patch @@ -32,7 +32,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/MAINTAINERS~maintainers-add-entries-for-code-tagging-and-memory-allocation-profiling +++ a/MAINTAINERS -@@ -5254,6 +5254,13 @@ S: Supported +@@ -5252,6 +5252,13 @@ S: Supported F: Documentation/process/code-of-conduct-interpretation.rst F: Documentation/process/code-of-conduct.rst @@ -46,7 +46,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> COMEDI DRIVERS M: Ian Abbott <abbotti@mev.co.uk> M: H Hartley Sweeten <hsweeten@visionengravers.com> -@@ -14155,6 +14162,16 @@ F: mm/memblock.c +@@ -14151,6 +14158,16 @@ F: mm/memblock.c F: mm/mm_init.c F: tools/testing/memblock/ @@ -61,6 +61,6 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +F: lib/pgalloc_tag.c + MEMORY CONTROLLER DRIVERS - M: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> + M: Krzysztof Kozlowski <krzk@kernel.org> L: linux-kernel@vger.kernel.org _ diff --git a/patches/mm-arch-provide-pud_pfn-fallback.patch b/patches/mm-arch-provide-pud_pfn-fallback.patch index bd973ec0d..241b4edf8 100644 --- a/patches/mm-arch-provide-pud_pfn-fallback.patch +++ b/patches/mm-arch-provide-pud_pfn-fallback.patch @@ -43,7 +43,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/arch/riscv/include/asm/pgtable.h~mm-arch-provide-pud_pfn-fallback +++ a/arch/riscv/include/asm/pgtable.h -@@ -642,6 +642,7 @@ static inline unsigned long pmd_pfn(pmd_ +@@ -648,6 +648,7 @@ static inline unsigned long pmd_pfn(pmd_ #define __pud_to_phys(pud) (__page_val_to_pfn(pud_val(pud)) << PAGE_SHIFT) diff --git a/patches/mm-change-inlined-allocation-helpers-to-account-at-the-call-site.patch b/patches/mm-change-inlined-allocation-helpers-to-account-at-the-call-site.patch index 42f934067..5e6407225 100644 --- a/patches/mm-change-inlined-allocation-helpers-to-account-at-the-call-site.patch +++ b/patches/mm-change-inlined-allocation-helpers-to-account-at-the-call-site.patch @@ -360,7 +360,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> * skcipher_request_free() - zeroize and free request data structure --- a/include/linux/bpf.h~mm-change-inlined-allocation-helpers-to-account-at-the-call-site +++ a/include/linux/bpf.h -@@ -2230,31 +2230,14 @@ void *bpf_map_kvcalloc(struct bpf_map *m +@@ -2244,31 +2244,14 @@ void *bpf_map_kvcalloc(struct bpf_map *m void __percpu *bpf_map_alloc_percpu(const struct bpf_map *map, size_t size, size_t align, gfp_t flags); #else @@ -760,7 +760,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> __realloc_size(3); --- a/include/linux/sockptr.h~mm-change-inlined-allocation-helpers-to-account-at-the-call-site +++ a/include/linux/sockptr.h -@@ -92,9 +92,9 @@ static inline int copy_to_sockptr(sockpt +@@ -117,9 +117,9 @@ static inline int copy_to_sockptr(sockpt return copy_to_sockptr_offset(dst, 0, src, size); } @@ -772,7 +772,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> if (!p) return ERR_PTR(-ENOMEM); -@@ -104,10 +104,11 @@ static inline void *memdup_sockptr(sockp +@@ -129,10 +129,11 @@ static inline void *memdup_sockptr(sockp } return p; } @@ -786,7 +786,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> if (!p) return ERR_PTR(-ENOMEM); -@@ -118,6 +119,7 @@ static inline void *memdup_sockptr_nul(s +@@ -143,6 +144,7 @@ static inline void *memdup_sockptr_nul(s p[len] = '\0'; return p; } diff --git a/patches/mm-introduce-__gfp_no_obj_ext-flag-to-selectively-prevent-slabobj_ext-creation.patch b/patches/mm-introduce-__gfp_no_obj_ext-flag-to-selectively-prevent-slabobj_ext-creation.patch index cb4426226..a3016cbb5 100644 --- a/patches/mm-introduce-__gfp_no_obj_ext-flag-to-selectively-prevent-slabobj_ext-creation.patch +++ b/patches/mm-introduce-__gfp_no_obj_ext-flag-to-selectively-prevent-slabobj_ext-creation.patch @@ -34,7 +34,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/include/linux/gfp_types.h~mm-introduce-__gfp_no_obj_ext-flag-to-selectively-prevent-slabobj_ext-creation +++ a/include/linux/gfp_types.h -@@ -53,6 +53,9 @@ enum { +@@ -55,6 +55,9 @@ enum { #ifdef CONFIG_LOCKDEP ___GFP_NOLOCKDEP_BIT, #endif @@ -44,7 +44,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> ___GFP_LAST_BIT }; -@@ -93,6 +96,11 @@ enum { +@@ -95,6 +98,11 @@ enum { #else #define ___GFP_NOLOCKDEP 0 #endif @@ -56,7 +56,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> /* * Physical address zone modifiers (see linux/mmzone.h - low four bits) -@@ -133,12 +141,15 @@ enum { +@@ -135,12 +143,15 @@ enum { * node with no fallbacks or placement policy enforcements. * * %__GFP_ACCOUNT causes the allocation to be accounted to kmemcg. diff --git a/patches/mm-switch-mm-get_unmapped_area-to-a-flag.patch b/patches/mm-switch-mm-get_unmapped_area-to-a-flag.patch index 6af0b4b12..a9f40c015 100644 --- a/patches/mm-switch-mm-get_unmapped_area-to-a-flag.patch +++ b/patches/mm-switch-mm-get_unmapped_area-to-a-flag.patch @@ -343,7 +343,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> unsigned long len, unsigned long pgoff, --- a/io_uring/io_uring.c~mm-switch-mm-get_unmapped_area-to-a-flag +++ a/io_uring/io_uring.c -@@ -3520,7 +3520,7 @@ static unsigned long io_uring_mmu_get_un +@@ -3525,7 +3525,7 @@ static unsigned long io_uring_mmu_get_un #else addr = 0UL; #endif diff --git a/patches/mmpage_owner-fix-accounting-of-pages-when-migrating.patch b/patches/mmpage_owner-fix-accounting-of-pages-when-migrating.patch deleted file mode 100644 index 8b1e7fb00..000000000 --- a/patches/mmpage_owner-fix-accounting-of-pages-when-migrating.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Oscar Salvador <osalvador@suse.de> -Subject: mm,page_owner: fix accounting of pages when migrating -Date: Thu, 4 Apr 2024 09:07:01 +0200 - -Upon migration, new allocated pages are being given the handle of the old -pages. This is problematic because it means that for the stack which -allocated the old page, we will be substracting the old page + the new one -when that page is freed, creating an accounting imbalance. - -There is an interest in keeping it that way, as otherwise the output will -biased towards migration stacks should those operations occur often, but -that is not really helpful. - -The link from the new page to the old stack is being performed by calling -__update_page_owner_handle() in __folio_copy_owner(). The only thing that -is left is to link the migrate stack to the old page, so the old page will -be subtracted from the migrate stack, avoiding by doing so any possible -imbalance. - -Link: https://lkml.kernel.org/r/20240404070702.2744-4-osalvador@suse.de -Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") -Signed-off-by: Oscar Salvador <osalvador@suse.de> -Reviewed-by: Vlastimil Babka <vbabka@suse.cz> -Cc: Alexander Potapenko <glider@google.com> -Cc: Alexandre Ghiti <alexghiti@rivosinc.com> -Cc: Andrey Konovalov <andreyknvl@gmail.com> -Cc: Marco Elver <elver@google.com> -Cc: Michal Hocko <mhocko@suse.com> -Cc: Palmer Dabbelt <palmer@dabbelt.com> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> ---- - - mm/page_owner.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - ---- a/mm/page_owner.c~mmpage_owner-fix-accounting-of-pages-when-migrating -+++ a/mm/page_owner.c -@@ -366,9 +366,12 @@ void __split_page_owner(struct page *pag - - void __folio_copy_owner(struct folio *newfolio, struct folio *old) - { -+ int i; - struct page_ext *old_ext; - struct page_ext *new_ext; - struct page_owner *old_page_owner; -+ struct page_owner *new_page_owner; -+ depot_stack_handle_t migrate_handle; - - old_ext = page_ext_get(&old->page); - if (unlikely(!old_ext)) -@@ -381,6 +384,8 @@ void __folio_copy_owner(struct folio *ne - } - - old_page_owner = get_page_owner(old_ext); -+ new_page_owner = get_page_owner(new_ext); -+ migrate_handle = new_page_owner->handle; - __update_page_owner_handle(new_ext, old_page_owner->handle, - old_page_owner->order, old_page_owner->gfp_mask, - old_page_owner->last_migrate_reason, -@@ -395,6 +400,16 @@ void __folio_copy_owner(struct folio *ne - old_page_owner->free_pid, - old_page_owner->free_tgid, - old_page_owner->free_ts_nsec); -+ /* -+ * We linked the original stack to the new folio, we need to do the same -+ * for the new one and the old folio otherwise there will be an imbalance -+ * when subtracting those pages from the stack. -+ */ -+ for (i = 0; i < (1 << new_page_owner->order); i++) { -+ old_page_owner->handle = migrate_handle; -+ old_ext = page_ext_next(old_ext); -+ old_page_owner = get_page_owner(old_ext); -+ } - - page_ext_put(new_ext); - page_ext_put(old_ext); -_ diff --git a/patches/mmpage_owner-fix-refcount-imbalance.patch b/patches/mmpage_owner-fix-refcount-imbalance.patch deleted file mode 100644 index 9b33d6db7..000000000 --- a/patches/mmpage_owner-fix-refcount-imbalance.patch +++ /dev/null @@ -1,234 +0,0 @@ -From: Oscar Salvador <osalvador@suse.de> -Subject: mm,page_owner: fix refcount imbalance -Date: Thu, 4 Apr 2024 09:07:00 +0200 - -Current code does not contemplate scenarios were an allocation and free -operation on the same pages do not handle it in the same amount at once. -To give an example, page_alloc_exact(), where we will allocate a page of -enough order to stafisfy the size request, but we will free the remainings -right away. - -In the above example, we will increment the stack_record refcount only -once, but we will decrease it the same number of times as number of unused -pages we have to free. This will lead to a warning because of refcount -imbalance. - -Fix this by recording the number of base pages in the refcount field. - -Link: https://lkml.kernel.org/r/20240404070702.2744-3-osalvador@suse.de -Reported-by: syzbot+41bbfdb8d41003d12c0f@syzkaller.appspotmail.com -Closes: https://lore.kernel.org/linux-mm/00000000000090e8ff0613eda0e5@google.com -Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") -Signed-off-by: Oscar Salvador <osalvador@suse.de> -Reviewed-by: Vlastimil Babka <vbabka@suse.cz> -Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> -Cc: Alexander Potapenko <glider@google.com> -Cc: Andrey Konovalov <andreyknvl@gmail.com> -Cc: Marco Elver <elver@google.com> -Cc: Michal Hocko <mhocko@suse.com> -Cc: Palmer Dabbelt <palmer@dabbelt.com> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> ---- - - Documentation/mm/page_owner.rst | 73 +++++++++++++++--------------- - mm/page_owner.c | 34 ++++++++----- - 2 files changed, 58 insertions(+), 49 deletions(-) - ---- a/Documentation/mm/page_owner.rst~mmpage_owner-fix-refcount-imbalance -+++ a/Documentation/mm/page_owner.rst -@@ -24,10 +24,10 @@ fragmentation statistics can be obtained - each page. It is already implemented and activated if page owner is - enabled. Other usages are more than welcome. - --It can also be used to show all the stacks and their outstanding --allocations, which gives us a quick overview of where the memory is going --without the need to screen through all the pages and match the allocation --and free operation. -+It can also be used to show all the stacks and their current number of -+allocated base pages, which gives us a quick overview of where the memory -+is going without the need to screen through all the pages and match the -+allocation and free operation. - - page owner is disabled by default. So, if you'd like to use it, you need - to add "page_owner=on" to your boot cmdline. If the kernel is built -@@ -75,42 +75,45 @@ Usage - - cat /sys/kernel/debug/page_owner_stacks/show_stacks > stacks.txt - cat stacks.txt -- prep_new_page+0xa9/0x120 -- get_page_from_freelist+0x7e6/0x2140 -- __alloc_pages+0x18a/0x370 -- new_slab+0xc8/0x580 -- ___slab_alloc+0x1f2/0xaf0 -- __slab_alloc.isra.86+0x22/0x40 -- kmem_cache_alloc+0x31b/0x350 -- __khugepaged_enter+0x39/0x100 -- dup_mmap+0x1c7/0x5ce -- copy_process+0x1afe/0x1c90 -- kernel_clone+0x9a/0x3c0 -- __do_sys_clone+0x66/0x90 -- do_syscall_64+0x7f/0x160 -- entry_SYSCALL_64_after_hwframe+0x6c/0x74 -- stack_count: 234 -+ post_alloc_hook+0x177/0x1a0 -+ get_page_from_freelist+0xd01/0xd80 -+ __alloc_pages+0x39e/0x7e0 -+ allocate_slab+0xbc/0x3f0 -+ ___slab_alloc+0x528/0x8a0 -+ kmem_cache_alloc+0x224/0x3b0 -+ sk_prot_alloc+0x58/0x1a0 -+ sk_alloc+0x32/0x4f0 -+ inet_create+0x427/0xb50 -+ __sock_create+0x2e4/0x650 -+ inet_ctl_sock_create+0x30/0x180 -+ igmp_net_init+0xc1/0x130 -+ ops_init+0x167/0x410 -+ setup_net+0x304/0xa60 -+ copy_net_ns+0x29b/0x4a0 -+ create_new_namespaces+0x4a1/0x820 -+ nr_base_pages: 16 - ... - ... - echo 7000 > /sys/kernel/debug/page_owner_stacks/count_threshold - cat /sys/kernel/debug/page_owner_stacks/show_stacks> stacks_7000.txt - cat stacks_7000.txt -- prep_new_page+0xa9/0x120 -- get_page_from_freelist+0x7e6/0x2140 -- __alloc_pages+0x18a/0x370 -- alloc_pages_mpol+0xdf/0x1e0 -- folio_alloc+0x14/0x50 -- filemap_alloc_folio+0xb0/0x100 -- page_cache_ra_unbounded+0x97/0x180 -- filemap_fault+0x4b4/0x1200 -- __do_fault+0x2d/0x110 -- do_pte_missing+0x4b0/0xa30 -- __handle_mm_fault+0x7fa/0xb70 -- handle_mm_fault+0x125/0x300 -- do_user_addr_fault+0x3c9/0x840 -- exc_page_fault+0x68/0x150 -- asm_exc_page_fault+0x22/0x30 -- stack_count: 8248 -+ post_alloc_hook+0x177/0x1a0 -+ get_page_from_freelist+0xd01/0xd80 -+ __alloc_pages+0x39e/0x7e0 -+ alloc_pages_mpol+0x22e/0x490 -+ folio_alloc+0xd5/0x110 -+ filemap_alloc_folio+0x78/0x230 -+ page_cache_ra_order+0x287/0x6f0 -+ filemap_get_pages+0x517/0x1160 -+ filemap_read+0x304/0x9f0 -+ xfs_file_buffered_read+0xe6/0x1d0 [xfs] -+ xfs_file_read_iter+0x1f0/0x380 [xfs] -+ __kernel_read+0x3b9/0x730 -+ kernel_read_file+0x309/0x4d0 -+ __do_sys_finit_module+0x381/0x730 -+ do_syscall_64+0x8d/0x150 -+ entry_SYSCALL_64_after_hwframe+0x62/0x6a -+ nr_base_pages: 20824 - ... - - cat /sys/kernel/debug/page_owner > page_owner_full.txt ---- a/mm/page_owner.c~mmpage_owner-fix-refcount-imbalance -+++ a/mm/page_owner.c -@@ -196,7 +196,8 @@ static void add_stack_record_to_list(str - spin_unlock_irqrestore(&stack_list_lock, flags); - } - --static void inc_stack_record_count(depot_stack_handle_t handle, gfp_t gfp_mask) -+static void inc_stack_record_count(depot_stack_handle_t handle, gfp_t gfp_mask, -+ int nr_base_pages) - { - struct stack_record *stack_record = __stack_depot_get_stack_record(handle); - -@@ -217,15 +218,20 @@ static void inc_stack_record_count(depot - /* Add the new stack_record to our list */ - add_stack_record_to_list(stack_record, gfp_mask); - } -- refcount_inc(&stack_record->count); -+ refcount_add(nr_base_pages, &stack_record->count); - } - --static void dec_stack_record_count(depot_stack_handle_t handle) -+static void dec_stack_record_count(depot_stack_handle_t handle, -+ int nr_base_pages) - { - struct stack_record *stack_record = __stack_depot_get_stack_record(handle); - -- if (stack_record) -- refcount_dec(&stack_record->count); -+ if (!stack_record) -+ return; -+ -+ if (refcount_sub_and_test(nr_base_pages, &stack_record->count)) -+ pr_warn("%s: refcount went to 0 for %u handle\n", __func__, -+ handle); - } - - static inline void __update_page_owner_handle(struct page_ext *page_ext, -@@ -306,7 +312,7 @@ void __reset_page_owner(struct page *pag - * the machinery is not ready yet, we cannot decrement - * their refcount either. - */ -- dec_stack_record_count(alloc_handle); -+ dec_stack_record_count(alloc_handle, 1 << order); - } - - noinline void __set_page_owner(struct page *page, unsigned short order, -@@ -325,7 +331,7 @@ noinline void __set_page_owner(struct pa - current->pid, current->tgid, ts_nsec, - current->comm); - page_ext_put(page_ext); -- inc_stack_record_count(handle, gfp_mask); -+ inc_stack_record_count(handle, gfp_mask, 1 << order); - } - - void __set_page_owner_migrate_reason(struct page *page, int reason) -@@ -872,11 +878,11 @@ static void *stack_next(struct seq_file - return stack; - } - --static unsigned long page_owner_stack_threshold; -+static unsigned long page_owner_pages_threshold; - - static int stack_print(struct seq_file *m, void *v) - { -- int i, stack_count; -+ int i, nr_base_pages; - struct stack *stack = v; - unsigned long *entries; - unsigned long nr_entries; -@@ -887,14 +893,14 @@ static int stack_print(struct seq_file * - - nr_entries = stack_record->size; - entries = stack_record->entries; -- stack_count = refcount_read(&stack_record->count) - 1; -+ nr_base_pages = refcount_read(&stack_record->count) - 1; - -- if (stack_count < 1 || stack_count < page_owner_stack_threshold) -+ if (nr_base_pages < 1 || nr_base_pages < page_owner_pages_threshold) - return 0; - - for (i = 0; i < nr_entries; i++) - seq_printf(m, " %pS\n", (void *)entries[i]); -- seq_printf(m, "stack_count: %d\n\n", stack_count); -+ seq_printf(m, "nr_base_pages: %d\n\n", nr_base_pages); - - return 0; - } -@@ -924,13 +930,13 @@ static const struct file_operations page - - static int page_owner_threshold_get(void *data, u64 *val) - { -- *val = READ_ONCE(page_owner_stack_threshold); -+ *val = READ_ONCE(page_owner_pages_threshold); - return 0; - } - - static int page_owner_threshold_set(void *data, u64 val) - { -- WRITE_ONCE(page_owner_stack_threshold, val); -+ WRITE_ONCE(page_owner_pages_threshold, val); - return 0; - } - -_ diff --git a/patches/numa-early-use-of-cpu_to_node-returns-0-instead-of-the-correct-node-id.patch b/patches/numa-early-use-of-cpu_to_node-returns-0-instead-of-the-correct-node-id.patch index 3195cb15a..a8b905615 100644 --- a/patches/numa-early-use-of-cpu_to_node-returns-0-instead-of-the-correct-node-id.patch +++ b/patches/numa-early-use-of-cpu_to_node-returns-0-instead-of-the-correct-node-id.patch @@ -54,7 +54,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- a/init/main.c~numa-early-use-of-cpu_to_node-returns-0-instead-of-the-correct-node-id +++ a/init/main.c -@@ -877,6 +877,19 @@ static void __init print_unknown_bootopt +@@ -882,6 +882,19 @@ static void __init print_unknown_bootopt memblock_free(unknown_options, len); } @@ -74,7 +74,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> asmlinkage __visible __init __no_sanitize_address __noreturn __no_stack_protector void start_kernel(void) { -@@ -907,6 +920,7 @@ void start_kernel(void) +@@ -912,6 +925,7 @@ void start_kernel(void) setup_nr_cpu_ids(); setup_per_cpu_areas(); smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */ diff --git a/patches/fix-missing-vmalloch-includes-fix-3.patch b/patches/old/fix-missing-vmalloch-includes-fix-3.patch index 97ed0b2fd..97ed0b2fd 100644 --- a/patches/fix-missing-vmalloch-includes-fix-3.patch +++ b/patches/old/fix-missing-vmalloch-includes-fix-3.patch diff --git a/patches/fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch b/patches/old/fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch index 1f066ba9d..1f066ba9d 100644 --- a/patches/fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch +++ b/patches/old/fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch diff --git a/patches/maintainers-update-naoya-horiguchis-email-address.patch b/patches/old/maintainers-update-naoya-horiguchis-email-address.patch index 96b52325a..96b52325a 100644 --- a/patches/maintainers-update-naoya-horiguchis-email-address.patch +++ b/patches/old/maintainers-update-naoya-horiguchis-email-address.patch diff --git a/patches/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.patch b/patches/old/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.patch index cd6f7e3cb..cd6f7e3cb 100644 --- a/patches/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.patch +++ b/patches/old/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.patch diff --git a/patches/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.patch b/patches/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.patch index dbaca4e7b..dbaca4e7b 100644 --- a/patches/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.patch +++ b/patches/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.patch diff --git a/patches/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.patch b/patches/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.patch index 144074684..144074684 100644 --- a/patches/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.patch +++ b/patches/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.patch diff --git a/patches/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.patch b/patches/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.patch index 97acbe352..97acbe352 100644 --- a/patches/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.patch +++ b/patches/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.patch diff --git a/patches/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.patch b/patches/old/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.patch index 2a8993405..2a8993405 100644 --- a/patches/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.patch +++ b/patches/old/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.patch diff --git a/patches/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.patch b/patches/old/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.patch index 6b7c2858d..6b7c2858d 100644 --- a/patches/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.patch +++ b/patches/old/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.patch diff --git a/patches/mmpage_owner-defer-enablement-of-static-branch.patch b/patches/old/mmpage_owner-defer-enablement-of-static-branch.patch index 9eba7bdcf..9eba7bdcf 100644 --- a/patches/mmpage_owner-defer-enablement-of-static-branch.patch +++ b/patches/old/mmpage_owner-defer-enablement-of-static-branch.patch diff --git a/patches/old/mmpage_owner-fix-accounting-of-pages-when-migrating.patch b/patches/old/mmpage_owner-fix-accounting-of-pages-when-migrating.patch index dfa3ded70..8b1e7fb00 100644 --- a/patches/old/mmpage_owner-fix-accounting-of-pages-when-migrating.patch +++ b/patches/old/mmpage_owner-fix-accounting-of-pages-when-migrating.patch @@ -1,6 +1,6 @@ From: Oscar Salvador <osalvador@suse.de> Subject: mm,page_owner: fix accounting of pages when migrating -Date: Tue, 26 Mar 2024 07:30:36 +0100 +Date: Thu, 4 Apr 2024 09:07:01 +0200 Upon migration, new allocated pages are being given the handle of the old pages. This is problematic because it means that for the stack which @@ -17,15 +17,16 @@ is left is to link the migrate stack to the old page, so the old page will be subtracted from the migrate stack, avoiding by doing so any possible imbalance. -Link: https://lkml.kernel.org/r/20240326063036.6242-4-osalvador@suse.de +Link: https://lkml.kernel.org/r/20240404070702.2744-4-osalvador@suse.de Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") Signed-off-by: Oscar Salvador <osalvador@suse.de> -Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Cc: Alexander Potapenko <glider@google.com> +Cc: Alexandre Ghiti <alexghiti@rivosinc.com> Cc: Andrey Konovalov <andreyknvl@gmail.com> Cc: Marco Elver <elver@google.com> Cc: Michal Hocko <mhocko@suse.com> +Cc: Palmer Dabbelt <palmer@dabbelt.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- diff --git a/patches/mmpage_owner-fix-printing-of-stack-records.patch b/patches/old/mmpage_owner-fix-printing-of-stack-records.patch index 6f3a17498..6f3a17498 100644 --- a/patches/mmpage_owner-fix-printing-of-stack-records.patch +++ b/patches/old/mmpage_owner-fix-printing-of-stack-records.patch diff --git a/patches/old/mmpage_owner-fix-refcount-imbalance.patch b/patches/old/mmpage_owner-fix-refcount-imbalance.patch index 6a4d22bcf..9b33d6db7 100644 --- a/patches/old/mmpage_owner-fix-refcount-imbalance.patch +++ b/patches/old/mmpage_owner-fix-refcount-imbalance.patch @@ -1,10 +1,9 @@ From: Oscar Salvador <osalvador@suse.de> Subject: mm,page_owner: fix refcount imbalance -Date: Tue, 26 Mar 2024 07:30:35 +0100 +Date: Thu, 4 Apr 2024 09:07:00 +0200 Current code does not contemplate scenarios were an allocation and free -operation on the same pages do not handle it in the same amount at once. - +operation on the same pages do not handle it in the same amount at once. To give an example, page_alloc_exact(), where we will allocate a page of enough order to stafisfy the size request, but we will free the remainings right away. @@ -16,17 +15,18 @@ imbalance. Fix this by recording the number of base pages in the refcount field. -Link: https://lkml.kernel.org/r/20240326063036.6242-3-osalvador@suse.de -Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") -Signed-off-by: Oscar Salvador <osalvador@suse.de> +Link: https://lkml.kernel.org/r/20240404070702.2744-3-osalvador@suse.de Reported-by: syzbot+41bbfdb8d41003d12c0f@syzkaller.appspotmail.com Closes: https://lore.kernel.org/linux-mm/00000000000090e8ff0613eda0e5@google.com +Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") +Signed-off-by: Oscar Salvador <osalvador@suse.de> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Konovalov <andreyknvl@gmail.com> Cc: Marco Elver <elver@google.com> Cc: Michal Hocko <mhocko@suse.com> +Cc: Palmer Dabbelt <palmer@dabbelt.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- diff --git a/patches/mmpage_owner-update-metadata-for-tail-pages.patch b/patches/old/mmpage_owner-update-metadata-for-tail-pages.patch index 781c43ef6..781c43ef6 100644 --- a/patches/mmpage_owner-update-metadata-for-tail-pages.patch +++ b/patches/old/mmpage_owner-update-metadata-for-tail-pages.patch diff --git a/patches/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch b/patches/old/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch index 0993847cf..0993847cf 100644 --- a/patches/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch +++ b/patches/old/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch diff --git a/patches/nilfs2-fix-oob-in-nilfs_set_de_type.patch b/patches/old/nilfs2-fix-oob-in-nilfs_set_de_type.patch index f82c263ce..f82c263ce 100644 --- a/patches/nilfs2-fix-oob-in-nilfs_set_de_type.patch +++ b/patches/old/nilfs2-fix-oob-in-nilfs_set_de_type.patch diff --git a/patches/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.patch b/patches/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.patch index 8efeb6a44..8efeb6a44 100644 --- a/patches/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.patch +++ b/patches/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.patch diff --git a/patches/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.patch b/patches/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.patch index abbdbe7e4..abbdbe7e4 100644 --- a/patches/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.patch +++ b/patches/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.patch diff --git a/patches/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch b/patches/old/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch index 7318f4ea8..7318f4ea8 100644 --- a/patches/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch +++ b/patches/old/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch diff --git a/patches/treewide-use-initializer-for-struct-vm_unmapped_area_info.patch b/patches/treewide-use-initializer-for-struct-vm_unmapped_area_info.patch index dd1603e9d..44d7271f5 100644 --- a/patches/treewide-use-initializer-for-struct-vm_unmapped_area_info.patch +++ b/patches/treewide-use-initializer-for-struct-vm_unmapped_area_info.patch @@ -153,7 +153,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> * We only need to do colour alignment if either the I or D --- a/arch/loongarch/mm/mmap.c~treewide-use-initializer-for-struct-vm_unmapped_area_info +++ a/arch/loongarch/mm/mmap.c -@@ -24,7 +24,7 @@ static unsigned long arch_get_unmapped_a +@@ -25,7 +25,7 @@ static unsigned long arch_get_unmapped_a struct vm_area_struct *vma; unsigned long addr = addr0; int do_color_align; @@ -162,7 +162,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> if (unlikely(len > TASK_SIZE)) return -ENOMEM; -@@ -82,7 +82,6 @@ static unsigned long arch_get_unmapped_a +@@ -83,7 +83,6 @@ static unsigned long arch_get_unmapped_a */ } diff --git a/patches/x86-remove-unneeded-memblock_find_dma_reserve.patch b/patches/x86-remove-unneeded-memblock_find_dma_reserve.patch index 72c0674ff..428e0e932 100644 --- a/patches/x86-remove-unneeded-memblock_find_dma_reserve.patch +++ b/patches/x86-remove-unneeded-memblock_find_dma_reserve.patch @@ -67,7 +67,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org> unsigned long end, pgprot_t prot); --- a/arch/x86/kernel/setup.c~x86-remove-unneeded-memblock_find_dma_reserve +++ a/arch/x86/kernel/setup.c -@@ -1105,8 +1105,6 @@ void __init setup_arch(char **cmdline_p) +@@ -1107,8 +1107,6 @@ void __init setup_arch(char **cmdline_p) */ arch_reserve_crashkernel(); diff --git a/pc/devel-series b/pc/devel-series index 0b153dfa3..79b54871f 100644 --- a/pc/devel-series +++ b/pc/devel-series @@ -70,40 +70,35 @@ mm-hotfixes-stable.patch ### ### # -mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.patch -# -# -#userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch: acks? -userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch -# -mmpage_owner-update-metadata-for-tail-pages.patch -mmpage_owner-fix-refcount-imbalance.patch -mmpage_owner-fix-accounting-of-pages-when-migrating.patch -mmpage_owner-fix-printing-of-stack-records.patch -# -mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.patch -# -mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.patch -mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.patch -mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.patch -# -mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch -# -squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.patch -squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.patch -# -mmpage_owner-defer-enablement-of-static-branch.patch -# -mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.patch -# -fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch -# -# -maintainers-update-naoya-horiguchis-email-address.patch -# -nilfs2-fix-oob-in-nilfs_set_de_type.patch -# -bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy.patch +##mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.patch +### +##userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.patch +### +##mmpage_owner-update-metadata-for-tail-pages.patch +##mmpage_owner-fix-refcount-imbalance.patch +##mmpage_owner-fix-accounting-of-pages-when-migrating.patch +##mmpage_owner-fix-printing-of-stack-records.patch +### +##mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.patch +### +##mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.patch +### +##mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.patch +### +##squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.patch +### +##mmpage_owner-defer-enablement-of-static-branch.patch +### +##mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.patch +### +##fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch +### +### +##maintainers-update-naoya-horiguchis-email-address.patch +### +##nilfs2-fix-oob-in-nilfs_set_de_type.patch +### +##bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy.patch bootconfig-use-memblock_free_late-to-free-xbc-memory-to-buddy-fix.patch # selftests-harness-remove-use-of-line_max.patch @@ -170,7 +165,6 @@ scripts-kernel-doc-drop-_noprof-on-function-prototypes.patch fix-missing-vmalloch-includes.patch fix-missing-vmalloch-includes-fix.patch fix-missing-vmalloch-includes-fix-2.patch -fix-missing-vmalloch-includes-fix-3.patch fix-missing-vmalloch-includes-fix-4.patch fix-missing-vmalloch-includes-fix-5.patch fix-missing-vmalloch-includes-fix-6.patch @@ -630,10 +624,12 @@ buffer-fix-__bread-and-__bread_gfp-kernel-doc.patch buffer-add-kernel-doc-for-brelse-and-__brelse.patch buffer-add-kernel-doc-for-bforget-and-__bforget.patch buffer-improve-bdev_getblk-documentation.patch +#doc-split-bufferrst-out-of-api-summaryrst.patch: https://lkml.kernel.org/r/5b1938bc-e675-4f1c-810b-dd91f6915f1d@infradead.org doc-split-bufferrst-out-of-api-summaryrst.patch # mm-sparse-guard-the-size-of-mem_section-is-power-of-2.patch # +#mm-page_table_check-support-userfault-wr-protect-entries.patch: https://lkml.kernel.org/r/CA+CK2bCSs8om+7tO_Sq2fAUD+gzD_4unUXMtO9oRUB+=4biv-Q@mail.gmail.com mm-page_table_check-support-userfault-wr-protect-entries.patch # # diff --git a/pc/fix-missing-vmalloch-includes-fix-3.pc b/pc/fix-missing-vmalloch-includes-fix-3.pc deleted file mode 100644 index ce610985f..000000000 --- a/pc/fix-missing-vmalloch-includes-fix-3.pc +++ /dev/null @@ -1 +0,0 @@ -arch/loongarch/include/asm/addrspace.h diff --git a/pc/fork-defer-linking-file-vma-until-vma-is-fully-initialized.pc b/pc/fork-defer-linking-file-vma-until-vma-is-fully-initialized.pc deleted file mode 100644 index 8c04222ff..000000000 --- a/pc/fork-defer-linking-file-vma-until-vma-is-fully-initialized.pc +++ /dev/null @@ -1 +0,0 @@ -kernel/fork.c diff --git a/pc/maintainers-update-naoya-horiguchis-email-address.pc b/pc/maintainers-update-naoya-horiguchis-email-address.pc deleted file mode 100644 index edc8c7f9d..000000000 --- a/pc/maintainers-update-naoya-horiguchis-email-address.pc +++ /dev/null @@ -1,2 +0,0 @@ -.mailmap -MAINTAINERS diff --git a/pc/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.pc b/pc/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.pc deleted file mode 100644 index bbb0e8a42..000000000 --- a/pc/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.pc +++ /dev/null @@ -1,3 +0,0 @@ -mm/gup.c -mm/internal.h -mm/madvise.c diff --git a/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.pc b/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.pc deleted file mode 100644 index 709648673..000000000 --- a/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.pc +++ /dev/null @@ -1 +0,0 @@ -mm/memory-failure.c diff --git a/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.pc b/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.pc deleted file mode 100644 index 709648673..000000000 --- a/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.pc +++ /dev/null @@ -1 +0,0 @@ -mm/memory-failure.c diff --git a/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.pc b/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.pc deleted file mode 100644 index 709648673..000000000 --- a/pc/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.pc +++ /dev/null @@ -1 +0,0 @@ -mm/memory-failure.c diff --git a/pc/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.pc b/pc/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.pc deleted file mode 100644 index 99c735fac..000000000 --- a/pc/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.pc +++ /dev/null @@ -1,2 +0,0 @@ -include/linux/shmem_fs.h -mm/shmem.c diff --git a/pc/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.pc b/pc/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.pc deleted file mode 100644 index 6dc98425d..000000000 --- a/pc/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.pc +++ /dev/null @@ -1 +0,0 @@ -mm/hugetlb.c diff --git a/pc/mmpage_owner-defer-enablement-of-static-branch.pc b/pc/mmpage_owner-defer-enablement-of-static-branch.pc deleted file mode 100644 index 89fe6a5de..000000000 --- a/pc/mmpage_owner-defer-enablement-of-static-branch.pc +++ /dev/null @@ -1 +0,0 @@ -mm/page_owner.c diff --git a/pc/mmpage_owner-fix-accounting-of-pages-when-migrating.pc b/pc/mmpage_owner-fix-accounting-of-pages-when-migrating.pc deleted file mode 100644 index 89fe6a5de..000000000 --- a/pc/mmpage_owner-fix-accounting-of-pages-when-migrating.pc +++ /dev/null @@ -1 +0,0 @@ -mm/page_owner.c diff --git a/pc/mmpage_owner-fix-printing-of-stack-records.pc b/pc/mmpage_owner-fix-printing-of-stack-records.pc deleted file mode 100644 index 89fe6a5de..000000000 --- a/pc/mmpage_owner-fix-printing-of-stack-records.pc +++ /dev/null @@ -1 +0,0 @@ -mm/page_owner.c diff --git a/pc/mmpage_owner-fix-refcount-imbalance.pc b/pc/mmpage_owner-fix-refcount-imbalance.pc deleted file mode 100644 index 5a9efe536..000000000 --- a/pc/mmpage_owner-fix-refcount-imbalance.pc +++ /dev/null @@ -1,2 +0,0 @@ -Documentation/mm/page_owner.rst -mm/page_owner.c diff --git a/pc/mmpage_owner-update-metadata-for-tail-pages.pc b/pc/mmpage_owner-update-metadata-for-tail-pages.pc deleted file mode 100644 index 89fe6a5de..000000000 --- a/pc/mmpage_owner-update-metadata-for-tail-pages.pc +++ /dev/null @@ -1 +0,0 @@ -mm/page_owner.c diff --git a/pc/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.pc b/pc/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.pc deleted file mode 100644 index 7f662690b..000000000 --- a/pc/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.pc +++ /dev/null @@ -1 +0,0 @@ -include/linux/swapops.h diff --git a/pc/nilfs2-fix-oob-in-nilfs_set_de_type.pc b/pc/nilfs2-fix-oob-in-nilfs_set_de_type.pc deleted file mode 100644 index 3b1e7e424..000000000 --- a/pc/nilfs2-fix-oob-in-nilfs_set_de_type.pc +++ /dev/null @@ -1 +0,0 @@ -fs/nilfs2/dir.c diff --git a/pc/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.pc b/pc/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.pc deleted file mode 100644 index 6e351e663..000000000 --- a/pc/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.pc +++ /dev/null @@ -1 +0,0 @@ -fs/squashfs/inode.c diff --git a/pc/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.pc b/pc/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.pc deleted file mode 100644 index 6e351e663..000000000 --- a/pc/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.pc +++ /dev/null @@ -1 +0,0 @@ -fs/squashfs/inode.c diff --git a/pc/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.pc b/pc/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.pc deleted file mode 100644 index b35bccbe3..000000000 --- a/pc/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.pc +++ /dev/null @@ -1 +0,0 @@ -mm/huge_memory.c diff --git a/txt/mmpage_owner-fix-accounting-of-pages-when-migrating.txt b/txt/mmpage_owner-fix-accounting-of-pages-when-migrating.txt deleted file mode 100644 index 8835915b5..000000000 --- a/txt/mmpage_owner-fix-accounting-of-pages-when-migrating.txt +++ /dev/null @@ -1,29 +0,0 @@ -From: Oscar Salvador <osalvador@suse.de> -Subject: mm,page_owner: fix accounting of pages when migrating -Date: Thu, 4 Apr 2024 09:07:01 +0200 - -Upon migration, new allocated pages are being given the handle of the old -pages. This is problematic because it means that for the stack which -allocated the old page, we will be substracting the old page + the new one -when that page is freed, creating an accounting imbalance. - -There is an interest in keeping it that way, as otherwise the output will -biased towards migration stacks should those operations occur often, but -that is not really helpful. - -The link from the new page to the old stack is being performed by calling -__update_page_owner_handle() in __folio_copy_owner(). The only thing that -is left is to link the migrate stack to the old page, so the old page will -be subtracted from the migrate stack, avoiding by doing so any possible -imbalance. - -Link: https://lkml.kernel.org/r/20240404070702.2744-4-osalvador@suse.de -Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") -Signed-off-by: Oscar Salvador <osalvador@suse.de> -Reviewed-by: Vlastimil Babka <vbabka@suse.cz> -Cc: Alexander Potapenko <glider@google.com> -Cc: Alexandre Ghiti <alexghiti@rivosinc.com> -Cc: Andrey Konovalov <andreyknvl@gmail.com> -Cc: Marco Elver <elver@google.com> -Cc: Michal Hocko <mhocko@suse.com> -Cc: Palmer Dabbelt <palmer@dabbelt.com> diff --git a/txt/mmpage_owner-fix-refcount-imbalance.txt b/txt/mmpage_owner-fix-refcount-imbalance.txt deleted file mode 100644 index 1dc61a9f4..000000000 --- a/txt/mmpage_owner-fix-refcount-imbalance.txt +++ /dev/null @@ -1,29 +0,0 @@ -From: Oscar Salvador <osalvador@suse.de> -Subject: mm,page_owner: fix refcount imbalance -Date: Thu, 4 Apr 2024 09:07:00 +0200 - -Current code does not contemplate scenarios were an allocation and free -operation on the same pages do not handle it in the same amount at once. -To give an example, page_alloc_exact(), where we will allocate a page of -enough order to stafisfy the size request, but we will free the remainings -right away. - -In the above example, we will increment the stack_record refcount only -once, but we will decrease it the same number of times as number of unused -pages we have to free. This will lead to a warning because of refcount -imbalance. - -Fix this by recording the number of base pages in the refcount field. - -Link: https://lkml.kernel.org/r/20240404070702.2744-3-osalvador@suse.de -Reported-by: syzbot+41bbfdb8d41003d12c0f@syzkaller.appspotmail.com -Closes: https://lore.kernel.org/linux-mm/00000000000090e8ff0613eda0e5@google.com -Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") -Signed-off-by: Oscar Salvador <osalvador@suse.de> -Reviewed-by: Vlastimil Babka <vbabka@suse.cz> -Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> -Cc: Alexander Potapenko <glider@google.com> -Cc: Andrey Konovalov <andreyknvl@gmail.com> -Cc: Marco Elver <elver@google.com> -Cc: Michal Hocko <mhocko@suse.com> -Cc: Palmer Dabbelt <palmer@dabbelt.com> diff --git a/txt/fix-missing-vmalloch-includes-fix-3.txt b/txt/old/fix-missing-vmalloch-includes-fix-3.txt index a5afdc485..a5afdc485 100644 --- a/txt/fix-missing-vmalloch-includes-fix-3.txt +++ b/txt/old/fix-missing-vmalloch-includes-fix-3.txt diff --git a/txt/fork-defer-linking-file-vma-until-vma-is-fully-initialized.txt b/txt/old/fork-defer-linking-file-vma-until-vma-is-fully-initialized.txt index 1c32a277c..1c32a277c 100644 --- a/txt/fork-defer-linking-file-vma-until-vma-is-fully-initialized.txt +++ b/txt/old/fork-defer-linking-file-vma-until-vma-is-fully-initialized.txt diff --git a/txt/maintainers-update-naoya-horiguchis-email-address.txt b/txt/old/maintainers-update-naoya-horiguchis-email-address.txt index 1afee040a..1afee040a 100644 --- a/txt/maintainers-update-naoya-horiguchis-email-address.txt +++ b/txt/old/maintainers-update-naoya-horiguchis-email-address.txt diff --git a/txt/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.txt b/txt/old/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.txt index 2e7b1b7f0..2e7b1b7f0 100644 --- a/txt/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.txt +++ b/txt/old/mm-madvise-make-madv_populate_readwrite-handle-vm_fault_retry-properly.txt diff --git a/txt/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.txt b/txt/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.txt index e5c69b8ad..e5c69b8ad 100644 --- a/txt/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.txt +++ b/txt/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2-fix.txt diff --git a/txt/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.txt b/txt/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.txt index d976f58ee..d976f58ee 100644 --- a/txt/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.txt +++ b/txt/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled-v2.txt diff --git a/txt/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.txt b/txt/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.txt index de10086d9..de10086d9 100644 --- a/txt/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.txt +++ b/txt/old/mm-memory-failure-fix-deadlock-when-hugetlb_optimize_vmemmap-is-enabled.txt diff --git a/txt/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.txt b/txt/old/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.txt index d1a8ce0c7..d1a8ce0c7 100644 --- a/txt/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.txt +++ b/txt/old/mm-shmem-inline-shmem_is_huge-for-disabled-transparent-hugepages.txt diff --git a/txt/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.txt b/txt/old/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.txt index 14cb38140..14cb38140 100644 --- a/txt/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.txt +++ b/txt/old/mm-userfaultfd-allow-hugetlb-change-protection-upon-poison-entry.txt diff --git a/txt/mmpage_owner-defer-enablement-of-static-branch.txt b/txt/old/mmpage_owner-defer-enablement-of-static-branch.txt index b29b1a7cd..b29b1a7cd 100644 --- a/txt/mmpage_owner-defer-enablement-of-static-branch.txt +++ b/txt/old/mmpage_owner-defer-enablement-of-static-branch.txt diff --git a/txt/old/mmpage_owner-fix-accounting-of-pages-when-migrating.txt b/txt/old/mmpage_owner-fix-accounting-of-pages-when-migrating.txt index a6478d7aa..8835915b5 100644 --- a/txt/old/mmpage_owner-fix-accounting-of-pages-when-migrating.txt +++ b/txt/old/mmpage_owner-fix-accounting-of-pages-when-migrating.txt @@ -1,6 +1,6 @@ From: Oscar Salvador <osalvador@suse.de> Subject: mm,page_owner: fix accounting of pages when migrating -Date: Tue, 26 Mar 2024 07:30:36 +0100 +Date: Thu, 4 Apr 2024 09:07:01 +0200 Upon migration, new allocated pages are being given the handle of the old pages. This is problematic because it means that for the stack which @@ -17,12 +17,13 @@ is left is to link the migrate stack to the old page, so the old page will be subtracted from the migrate stack, avoiding by doing so any possible imbalance. -Link: https://lkml.kernel.org/r/20240326063036.6242-4-osalvador@suse.de +Link: https://lkml.kernel.org/r/20240404070702.2744-4-osalvador@suse.de Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") Signed-off-by: Oscar Salvador <osalvador@suse.de> -Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Cc: Alexander Potapenko <glider@google.com> +Cc: Alexandre Ghiti <alexghiti@rivosinc.com> Cc: Andrey Konovalov <andreyknvl@gmail.com> Cc: Marco Elver <elver@google.com> Cc: Michal Hocko <mhocko@suse.com> +Cc: Palmer Dabbelt <palmer@dabbelt.com> diff --git a/txt/mmpage_owner-fix-printing-of-stack-records.txt b/txt/old/mmpage_owner-fix-printing-of-stack-records.txt index a8d6ac927..a8d6ac927 100644 --- a/txt/mmpage_owner-fix-printing-of-stack-records.txt +++ b/txt/old/mmpage_owner-fix-printing-of-stack-records.txt diff --git a/txt/old/mmpage_owner-fix-refcount-imbalance.txt b/txt/old/mmpage_owner-fix-refcount-imbalance.txt index 5f936cd8f..1dc61a9f4 100644 --- a/txt/old/mmpage_owner-fix-refcount-imbalance.txt +++ b/txt/old/mmpage_owner-fix-refcount-imbalance.txt @@ -1,10 +1,9 @@ From: Oscar Salvador <osalvador@suse.de> Subject: mm,page_owner: fix refcount imbalance -Date: Tue, 26 Mar 2024 07:30:35 +0100 +Date: Thu, 4 Apr 2024 09:07:00 +0200 Current code does not contemplate scenarios were an allocation and free -operation on the same pages do not handle it in the same amount at once. - +operation on the same pages do not handle it in the same amount at once. To give an example, page_alloc_exact(), where we will allocate a page of enough order to stafisfy the size request, but we will free the remainings right away. @@ -16,14 +15,15 @@ imbalance. Fix this by recording the number of base pages in the refcount field. -Link: https://lkml.kernel.org/r/20240326063036.6242-3-osalvador@suse.de -Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") -Signed-off-by: Oscar Salvador <osalvador@suse.de> +Link: https://lkml.kernel.org/r/20240404070702.2744-3-osalvador@suse.de Reported-by: syzbot+41bbfdb8d41003d12c0f@syzkaller.appspotmail.com Closes: https://lore.kernel.org/linux-mm/00000000000090e8ff0613eda0e5@google.com +Fixes: 217b2119b9e2 ("mm,page_owner: implement the tracking of the stacks count") +Signed-off-by: Oscar Salvador <osalvador@suse.de> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Konovalov <andreyknvl@gmail.com> Cc: Marco Elver <elver@google.com> Cc: Michal Hocko <mhocko@suse.com> +Cc: Palmer Dabbelt <palmer@dabbelt.com> diff --git a/txt/mmpage_owner-update-metadata-for-tail-pages.txt b/txt/old/mmpage_owner-update-metadata-for-tail-pages.txt index 8430083cd..8430083cd 100644 --- a/txt/mmpage_owner-update-metadata-for-tail-pages.txt +++ b/txt/old/mmpage_owner-update-metadata-for-tail-pages.txt diff --git a/txt/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.txt b/txt/old/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.txt index 9b407ad3b..9b407ad3b 100644 --- a/txt/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.txt +++ b/txt/old/mmswapops-update-check-in-is_pfn_swap_entry-for-hwpoison-entries.txt diff --git a/txt/nilfs2-fix-oob-in-nilfs_set_de_type.txt b/txt/old/nilfs2-fix-oob-in-nilfs_set_de_type.txt index 5580a4f63..5580a4f63 100644 --- a/txt/nilfs2-fix-oob-in-nilfs_set_de_type.txt +++ b/txt/old/nilfs2-fix-oob-in-nilfs_set_de_type.txt diff --git a/txt/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.txt b/txt/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.txt index c80492c5a..c80492c5a 100644 --- a/txt/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.txt +++ b/txt/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero-v2.txt diff --git a/txt/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.txt b/txt/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.txt index 482f96b23..482f96b23 100644 --- a/txt/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.txt +++ b/txt/old/squashfs-check-the-inode-number-is-not-the-invalid-value-of-zero.txt diff --git a/txt/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.txt b/txt/old/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.txt index 1991982d8..1991982d8 100644 --- a/txt/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.txt +++ b/txt/old/userfaultfd-change-src_folio-after-ensuring-its-unpinned-in-uffdio_move.txt |