forked from Openwrt/openwrt
e3559fb445
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.54 Removed upstreamed: generic/backport-6.1/020-v6.3-02-UPSTREAM-mm-multi-gen-LRU-rename-lrugen-lists-to-lru.patch[1] ipq806x/patches-6.1/140-v6.5-hwspinlock-qcom-add-missing-regmap-config-for-SFPB-M.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.54&id=a73d04c460521e45f257d28d73df096e41ece324 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.54&id=e93bc372dbc0bde133c854c03502a95617041972 Build system: x86/64 Build-tested: x86/64/AMD Cezanne Run-tested: x86/64/AMD Cezanne Signed-off-by: John Audia <therealgraysky@proton.me>
41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
From bec433f29537652ed054148edfd7e2183ddcf7c3 Mon Sep 17 00:00:00 2001
|
|
From: "T.J. Alumbaugh" <talumbau@google.com>
|
|
Date: Wed, 18 Jan 2023 00:18:25 +0000
|
|
Subject: [PATCH 16/19] UPSTREAM: mm: multi-gen LRU: improve
|
|
lru_gen_exit_memcg()
|
|
|
|
Add warnings and poison ->next.
|
|
|
|
Link: https://lkml.kernel.org/r/20230118001827.1040870-6-talumbau@google.com
|
|
Change-Id: I53de9e04c1ae941e122b33cd45d2bbb5f34aae0c
|
|
Signed-off-by: T.J. Alumbaugh <talumbau@google.com>
|
|
Cc: Yu Zhao <yuzhao@google.com>
|
|
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|
(cherry picked from commit 37cc99979d04cca677c0ad5c0acd1149ec165d1b)
|
|
Bug: 274865848
|
|
Signed-off-by: T.J. Mercier <tjmercier@google.com>
|
|
---
|
|
mm/vmscan.c | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
--- a/mm/vmscan.c
|
|
+++ b/mm/vmscan.c
|
|
@@ -6172,12 +6172,17 @@ void lru_gen_exit_memcg(struct mem_cgrou
|
|
int i;
|
|
int nid;
|
|
|
|
+ VM_WARN_ON_ONCE(!list_empty(&memcg->mm_list.fifo));
|
|
+
|
|
for_each_node(nid) {
|
|
struct lruvec *lruvec = get_lruvec(memcg, nid);
|
|
|
|
+ VM_WARN_ON_ONCE(lruvec->mm_state.nr_walkers);
|
|
VM_WARN_ON_ONCE(memchr_inv(lruvec->lrugen.nr_pages, 0,
|
|
sizeof(lruvec->lrugen.nr_pages)));
|
|
|
|
+ lruvec->lrugen.list.next = LIST_POISON1;
|
|
+
|
|
for (i = 0; i < NR_BLOOM_FILTERS; i++) {
|
|
bitmap_free(lruvec->mm_state.filters[i]);
|
|
lruvec->mm_state.filters[i] = NULL;
|