* updated maddy (0.7.1 -> 0.8.1), untested
[t2sde.git] / package / kernel / linux / up-next-remove-lru_add_drain.patch
blob51fe595c9500b7bbb06aa5bdc31a34d469cdf62a
1 From mboxrd@z Thu Jan 1 00:00:00 1970
2 Return-Path: <owner-linux-mm@kvack.org>
3 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
4 aws-us-west-2-korg-lkml-1.web.codeaurora.org
5 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17])
6 by smtp.lore.kernel.org (Postfix) with ESMTP id 193ECE77184
7 for <linux-mm@archiver.kernel.org>; Thu, 19 Dec 2024 20:33:50 +0000 (UTC)
8 Received: by kanga.kvack.org (Postfix)
9 id 2F32B6B007B; Thu, 19 Dec 2024 15:33:50 -0500 (EST)
10 Received: by kanga.kvack.org (Postfix, from userid 40)
11 id 2A1726B0082; Thu, 19 Dec 2024 15:33:50 -0500 (EST)
12 X-Delivered-To: int-list-linux-mm@kvack.org
13 Received: by kanga.kvack.org (Postfix, from userid 63042)
14 id 1928F6B0083; Thu, 19 Dec 2024 15:33:50 -0500 (EST)
15 X-Delivered-To: linux-mm@kvack.org
16 Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17])
17 by kanga.kvack.org (Postfix) with ESMTP id EE4376B007B
18 for <linux-mm@kvack.org>; Thu, 19 Dec 2024 15:33:49 -0500 (EST)
19 Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1])
20 by unirelay06.hostedemail.com (Postfix) with ESMTP id 6B494AE202
21 for <linux-mm@kvack.org>; Thu, 19 Dec 2024 20:33:49 +0000 (UTC)
22 X-FDA: 82912858770.26.CB136A0
23 Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147])
24 by imf05.hostedemail.com (Postfix) with ESMTP id F18B610000C
25 for <linux-mm@kvack.org>; Thu, 19 Dec 2024 20:32:43 +0000 (UTC)
26 Authentication-Results: imf05.hostedemail.com;
27 dkim=none;
28 spf=pass (imf05.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com;
29 dmarc=none
30 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com;
31 s=arc-20220608; t=1734640405;
32 h=from:from:sender:sender:reply-to:subject:subject:date:date:
33 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
34 content-type:content-type:
35 content-transfer-encoding:content-transfer-encoding:in-reply-to:
36 references; bh=0Ccq0U+3IOI/6eUxIxyV7Tfz5Kok9xBMqUuSAaMouNM=;
37 b=cUr+VthX13DHsxJrlm8zlEuG7HU8UVXztQEt/GjPX9r/nmgX7BUm9w4QHXRLQWq/OSCULy
38 e7xHAoQjIBQujLlig5PgkUkMeXVih/xE/QwWAolYRkisAGYRF0jG+UXVax1AcjGlHH7wrG
39 dtrB9vNwvDZkqxyzz1Fp+iVPqOTQPwI=
40 ARC-Authentication-Results: i=1;
41 imf05.hostedemail.com;
42 dkim=none;
43 spf=pass (imf05.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com;
44 dmarc=none
45 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734640405; a=rsa-sha256;
46 cv=none;
47 b=7GCLnUaIzOphp9jZphNrYYSJdhiYACtuFanUiOSgIquPyrB8zpZpFuGzfQZFWDpgcsUA6K
48 tsaCUxnSOLRzlEuSn1Hl3EG8EyFHJdmRiBx6lIo05oFWiIS83rrI5dpyDI5Vu4cI8rkwVr
49 I8wxmECw6wPbbecxBYhMQP76Xd9ajro=
50 Received: from [2601:18c:9101:a8b6:82e7:cf5d:dfd9:50ef] (helo=fangorn)
51 by shelob.surriel.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
52 (Exim 4.97.1)
53 (envelope-from <riel@shelob.surriel.com>)
54 id 1tONCY-000000002Ni-0at9;
55 Thu, 19 Dec 2024 15:32:54 -0500
56 Date: Thu, 19 Dec 2024 15:32:53 -0500
57 From: Rik van Riel <riel@surriel.com>
58 To: Shakeel Butt <shakeel.butt@linux.dev>
59 Cc: David Hildenbrand <david@redhat.com>, Andrew Morton
60 <akpm@linux-foundation.org>, Chris Li <chrisl@kernel.org>, Ryan Roberts
61 <ryan.roberts@arm.com>, "Matthew Wilcox (Oracle)" <willy@infradead.org>,
62 linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org
63 Subject: [PATCH] mm: remove unnecessary calls to lru_add_drain
64 Message-ID: <20241219153253.3da9e8aa@fangorn>
65 X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-redhat-linux-gnu)
66 MIME-Version: 1.0
67 Content-Type: text/plain; charset=US-ASCII
68 Content-Transfer-Encoding: 7bit
69 X-Rspamd-Server: rspam05
70 X-Stat-Signature: r799eok86s1fuxscnksmbwond59pifab
71 X-Rspamd-Queue-Id: F18B610000C
72 X-Rspam-User:
73 X-HE-Tag: 1734640363-876383
74 X-HE-Meta: U2FsdGVkX1/pADtjc00qzOzoY7uE/EsdFhTWVs1XiyukcgUGlMu7vATMtAJ+54djQdbFVW60qK9gyqwKW6GqnUgUwALFtwOcFteaUEyUpTDw/bqrxKnzcXCTAGXP0gl35+7NaYer1CzzLy8PPBRBT7NFQuieryBDvg/FiGiaLvYDnzExigO6nfMroj0QFrQSy3VKlV7WbIxzTl5IiPGBLURKu8x5iLF379tNbjYiGBQpX9fE+b+W4B3nHywIDi4JNxbJtWY3PqSjT6dBmedWGBTu/jPk8Es3GVLgCi1tleYZzJpkcxCqpJ50Fz/vYYIZ4ZPFhlpbueQcmue/IuOz6Grd59HtLVnlqOMBwTUckaIUABXfk0PRxtifgMeVAeQOAJa4kA8d53/Q5MQl3QXy1KWNTaOAZhlNeioLPdmOzJvUvV1YBEIQkeOASI112vEFo3kMI3ZsdhnzLBD9HXDs4Rj6SLEqfh9hagdbhyvH1tpfDvqrxVAlOVQykTyJq3W7y+pNrY2sPchrlAznJflMw/erE0yjnTIivcJ8iq6FyyaE7nvCsKhRV+t3fp93uSc5v2ypQHW/rdlMDZUCJ4d0ancQMDJabvB78IgTi2r1DZm2YyTwYWoem8+xsMBkqc+XzZYmwyumYz+niLsKraTLI7hVJZjslZ3wvmVn8r7PMS9kyBi6aTto2fJ/IDtOb2G6R4j7ihoQVO7UYeSWSInunfZXIZ0uePyljYsdmuXLmITIYnNAP4ZfrTzbK04LclvLyxogtGnzua2aENDtbLfe5mI9EBRzzOtwwPVro1TUF0r2n/aBDN+zdSpQqdCiKlabzdwpUzvW3Fkxj+OXwkiH1SX4fYIyEPAwJJcv2JkIwfL+sCq4IHHqCZ9DjnO1vgW+aPgHwFd8TUIsTwgBq8ESPopMTp/bMfDY9bNjgaDpZwIotcu1K+ajHoHu1JzAiuYtcbZOF4+F9SeNHCT2DRd
75 4VDb1Caj
76 U/lhyJog/VY12eZsu6A4DNqaQh2ldyOu8ooNRuCYJI2mMdIY5BvHsISv1xdeUG0Vr7eif4wgSy/LeuU1652jP6WnVZ35O7c6s0nqTXlgfk8LSNvvuoJobyTR6muS94MpI7/mkQtvmoqBK71BHJuTgoMbgNKUSt37p1AIziqrgfkKP/LVZbjWorN+TOaK1oOjNuygSQ/b6+Li6I9Gl5mWV3tit+/R3C0ypgH+Dn90PnyFdxoPyFLt5iVGrHBAAdWjmGWBfmS7HCqEqLiy5WU3xSnCf+t+FKzWX89kPrOOtCs2PaI/EH4DMVpgUQM/PGskQP3ck0vmWUtgyYu/Ma98mbi6uH0GN1/98vHfJLgWRNgwUecuWE77aqlsCl0W7MlCEGgkETWY83tV0Q6aboxCtCD930zo36zU+YHei
77 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4
78 Sender: owner-linux-mm@kvack.org
79 Precedence: bulk
80 X-Loop: owner-majordomo@kvack.org
81 List-ID: <linux-mm.kvack.org>
82 List-Subscribe: <mailto:majordomo@kvack.org>
83 List-Unsubscribe: <mailto:majordomo@kvack.org>
85 There seem to be several categories of calls to lru_add_drain
86 and lru_add_drain_all.
88 The first are code paths that recently allocated, swapped in,
89 or otherwise processed a batch of pages, and want them all on
90 the LRU. These drain pages that were recently allocated,
91 probably on the local CPU.
93 A second category are code paths that are actively trying to
94 reclaim, migrate, or offline memory. These often use lru_add_drain_all,
95 to drain the caches on all CPUs.
97 However, there also seem to be some other callers where we
98 aren't really doing either. They are calling lru_add_drain(),
99 despite operating on pages that may have been allocated
100 long ago, and quite possibly on different CPUs.
102 Those calls are not likely to be effective at anything but
103 creating lock contention on the LRU locks.
105 Remove the lru_add_drain calls in the latter category.
107 Signed-off-by: Rik van Riel <riel@surriel.com>
108 Suggested-by: David Hildenbrand <david@redhat.com>
110 mm/memory.c | 1 -
111 mm/mmap.c | 2 --
112 mm/swap_state.c | 1 -
113 mm/vma.c | 2 --
114 4 files changed, 6 deletions(-)
116 diff --git a/mm/memory.c b/mm/memory.c
117 index 75c2dfd04f72..95ce298dc254 100644
118 --- a/mm/memory.c
119 +++ b/mm/memory.c
120 @@ -1935,7 +1935,6 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address,
121 struct mmu_notifier_range range;
122 struct mmu_gather tlb;
124 - lru_add_drain();
125 mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma->vm_mm,
126 address, end);
127 hugetlb_zap_begin(vma, &range.start, &range.end);
128 diff --git a/mm/mmap.c b/mm/mmap.c
129 index d32b7e701058..ef57488f1020 100644
130 --- a/mm/mmap.c
131 +++ b/mm/mmap.c
132 @@ -1660,7 +1660,6 @@ void exit_mmap(struct mm_struct *mm)
133 goto destroy;
136 - lru_add_drain();
137 flush_cache_mm(mm);
138 tlb_gather_mmu_fullmm(&tlb, mm);
139 /* update_hiwater_rss(mm) here? but nobody should be looking */
140 @@ -2103,7 +2102,6 @@ int relocate_vma_down(struct vm_area_struct *vma, unsigned long shift)
141 vma, new_start, length, false, true))
142 return -ENOMEM;
144 - lru_add_drain();
145 tlb_gather_mmu(&tlb, mm);
146 next = vma_next(&vmi);
147 if (new_end > old_start) {
148 diff --git a/mm/swap_state.c b/mm/swap_state.c
149 index e0c0321b8ff7..ca42b2be64d9 100644
150 --- a/mm/swap_state.c
151 +++ b/mm/swap_state.c
152 @@ -317,7 +317,6 @@ void free_pages_and_swap_cache(struct encoded_page **pages, int nr)
153 struct folio_batch folios;
154 unsigned int refs[PAGEVEC_SIZE];
156 - lru_add_drain();
157 folio_batch_init(&folios);
158 for (int i = 0; i < nr; i++) {
159 struct folio *folio = page_folio(encoded_page_ptr(pages[i]));
160 diff --git a/mm/vma.c b/mm/vma.c
161 index 8e31b7e25aeb..d84e5ef6d15b 100644
162 --- a/mm/vma.c
163 +++ b/mm/vma.c
164 @@ -398,7 +398,6 @@ void unmap_region(struct ma_state *mas, struct vm_area_struct *vma,
165 struct mm_struct *mm = vma->vm_mm;
166 struct mmu_gather tlb;
168 - lru_add_drain();
169 tlb_gather_mmu(&tlb, mm);
170 update_hiwater_rss(mm);
171 unmap_vmas(&tlb, mas, vma, vma->vm_start, vma->vm_end, vma->vm_end,
172 @@ -1130,7 +1129,6 @@ static inline void vms_clear_ptes(struct vma_munmap_struct *vms,
173 * were isolated before we downgraded mmap_lock.
175 mas_set(mas_detach, 1);
176 - lru_add_drain();
177 tlb_gather_mmu(&tlb, vms->vma->vm_mm);
178 update_hiwater_rss(vms->vma->vm_mm);
179 unmap_vmas(&tlb, mas_detach, vms->vma, vms->start, vms->end,
181 2.47.0