| From: Yu Zhao <yuzhao@google.com> |
| Subject: mm: multi-gen LRU: remove NULL checks on NODE_DATA() |
| Date: Tue, 15 Nov 2022 18:38:08 -0700 |
| |
| NODE_DATA() is preallocated for all possible nodes after commit |
| 09f49dca570a ("mm: handle uninitialized numa nodes gracefully"). Checking |
| its return value against NULL is now unnecessary. |
| |
| Link: https://lkml.kernel.org/r/20221116013808.3995280-2-yuzhao@google.com |
| Signed-off-by: Yu Zhao <yuzhao@google.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/vmscan.c | 13 ++----------- |
| 1 file changed, 2 insertions(+), 11 deletions(-) |
| |
| --- a/mm/vmscan.c~mm-multi-gen-lru-remove-null-checks-on-node_data |
| +++ a/mm/vmscan.c |
| @@ -3166,7 +3166,7 @@ static struct lruvec *get_lruvec(struct |
| if (memcg) { |
| struct lruvec *lruvec = &memcg->nodeinfo[nid]->lruvec; |
| |
| - /* for hotadd_new_pgdat() */ |
| + /* see the comment in mem_cgroup_lruvec() */ |
| if (!lruvec->pgdat) |
| lruvec->pgdat = pgdat; |
| |
| @@ -3175,7 +3175,7 @@ static struct lruvec *get_lruvec(struct |
| #endif |
| VM_WARN_ON_ONCE(!mem_cgroup_disabled()); |
| |
| - return pgdat ? &pgdat->__lruvec : NULL; |
| + return &pgdat->__lruvec; |
| } |
| |
| static int get_swappiness(struct lruvec *lruvec, struct scan_control *sc) |
| @@ -3239,9 +3239,6 @@ void lru_gen_add_mm(struct mm_struct *mm |
| for_each_node_state(nid, N_MEMORY) { |
| struct lruvec *lruvec = get_lruvec(memcg, nid); |
| |
| - if (!lruvec) |
| - continue; |
| - |
| /* the first addition since the last iteration */ |
| if (lruvec->mm_state.tail == &mm_list->fifo) |
| lruvec->mm_state.tail = &mm->lru_gen.list; |
| @@ -3271,9 +3268,6 @@ void lru_gen_del_mm(struct mm_struct *mm |
| for_each_node(nid) { |
| struct lruvec *lruvec = get_lruvec(memcg, nid); |
| |
| - if (!lruvec) |
| - continue; |
| - |
| /* where the last iteration ended (exclusive) */ |
| if (lruvec->mm_state.tail == &mm->lru_gen.list) |
| lruvec->mm_state.tail = lruvec->mm_state.tail->next; |
| @@ -5348,9 +5342,6 @@ static void lru_gen_change_state(bool en |
| for_each_node(nid) { |
| struct lruvec *lruvec = get_lruvec(memcg, nid); |
| |
| - if (!lruvec) |
| - continue; |
| - |
| spin_lock_irq(&lruvec->lru_lock); |
| |
| VM_WARN_ON_ONCE(!seq_is_valid(lruvec)); |
| _ |