From: SeongJae Park <sj@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: SeongJae Park <sj@kernel.org>,
"Liam R. Howlett" <howlett@gmail.com>,
David Hildenbrand <david@redhat.com>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
Shakeel Butt <shakeel.butt@linux.dev>,
Vlastimil Babka <vbabka@suse.cz>,
kernel-team@meta.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [PATCH 9/9] mm/madvise: remove !tlb support from madvise_{dontneed,free}_single_vma()
Date: Mon, 10 Mar 2025 10:23:18 -0700 [thread overview]
Message-ID: <20250310172318.653630-10-sj@kernel.org> (raw)
In-Reply-To: <20250310172318.653630-1-sj@kernel.org>
madvise_dontneed_single_vma() and madvise_free_single_vma() support both
batched tlb flushes and unbatched tlb flushes use cases depending on
received tlb parameter's value. The supports were for safe and fine
transition of the usages from the unbatched flushes to the batched ones.
Now the transition is done, and therefore there is no real unbatched tlb
flushes use case. Remove the code for supporting the no more being used
cases.
Signed-off-by: SeongJae Park <sj@kernel.org>
---
mm/madvise.c | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/mm/madvise.c b/mm/madvise.c
index d5f4ce3041a4..25af0a24c00b 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -795,18 +795,11 @@ static const struct mm_walk_ops madvise_free_walk_ops = {
};
static int madvise_free_single_vma(
- struct mmu_gather *caller_tlb, struct vm_area_struct *vma,
+ struct mmu_gather *tlb, struct vm_area_struct *vma,
unsigned long start_addr, unsigned long end_addr)
{
struct mm_struct *mm = vma->vm_mm;
struct mmu_notifier_range range;
- struct mmu_gather self_tlb;
- struct mmu_gather *tlb;
-
- if (caller_tlb)
- tlb = caller_tlb;
- else
- tlb = &self_tlb;
/* MADV_FREE works for only anon vma at the moment */
if (!vma_is_anonymous(vma))
@@ -822,8 +815,6 @@ static int madvise_free_single_vma(
range.start, range.end);
lru_add_drain();
- if (!caller_tlb)
- tlb_gather_mmu(tlb, mm);
update_hiwater_rss(mm);
mmu_notifier_invalidate_range_start(&range);
@@ -832,9 +823,6 @@ static int madvise_free_single_vma(
&madvise_free_walk_ops, tlb);
tlb_end_vma(tlb, vma);
mmu_notifier_invalidate_range_end(&range);
- if (!caller_tlb)
- tlb_finish_mmu(tlb);
-
return 0;
}
@@ -866,10 +854,7 @@ static long madvise_dontneed_single_vma(struct mmu_gather *tlb,
.even_cows = true,
};
- if (!tlb)
- zap_page_range_single(vma, start, end - start, &details);
- else
- unmap_vma_single(tlb, vma, start, end - start, &details);
+ unmap_vma_single(tlb, vma, start, end - start, &details);
return 0;
}
--
2.39.5
next prev parent reply other threads:[~2025-03-10 17:23 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 17:23 [PATCH 0/9] mm/madvise: batch tlb flushes for MADV_DONTNEED and MADV_FREE SeongJae Park
2025-03-10 17:23 ` [PATCH 1/9] mm/madvise: use is_memory_failure() from madvise_do_behavior() SeongJae Park
2025-03-11 11:27 ` Lorenzo Stoakes
2025-03-10 17:23 ` [PATCH 2/9] mm/madvise: split out populate behavior check logic SeongJae Park
2025-03-11 11:29 ` Lorenzo Stoakes
2025-03-10 17:23 ` [PATCH 3/9] mm/madvise: deduplicate madvise_do_behavior() skip case handlings SeongJae Park
2025-03-11 12:02 ` Lorenzo Stoakes
2025-03-11 20:54 ` SeongJae Park
2025-03-10 17:23 ` [PATCH 4/9] mm/madvise: remove len parameter of madvise_do_behavior() SeongJae Park
2025-03-11 12:05 ` Lorenzo Stoakes
2025-03-10 17:23 ` [PATCH 5/9] mm/madvise: define and use madvise_behavior struct for madvise_do_behavior() SeongJae Park
2025-03-11 12:17 ` Lorenzo Stoakes
2025-03-11 20:56 ` SeongJae Park
2025-03-12 5:47 ` Lorenzo Stoakes
2025-03-12 17:23 ` SeongJae Park
2025-03-10 17:23 ` [PATCH 6/9] mm/memory: split non-tlb flushing part from zap_page_range_single() SeongJae Park
2025-03-11 12:45 ` Lorenzo Stoakes
2025-03-11 20:58 ` SeongJae Park
2025-03-31 20:24 ` SeongJae Park
2025-04-01 1:45 ` Liam R. Howlett
2025-04-01 2:48 ` SeongJae Park
2025-04-01 14:03 ` Liam R. Howlett
2025-04-01 21:25 ` SeongJae Park
2025-03-10 17:23 ` [PATCH 7/9] mm/madvise: let madvise_{dontneed,free}_single_vma() caller batches tlb flushes SeongJae Park
2025-03-11 13:07 ` Lorenzo Stoakes
2025-03-11 21:00 ` SeongJae Park
2025-03-10 17:23 ` [PATCH 8/9] mm/madvise: batch tlb flushes for [process_]madvise(MADV_{DONTNEED[_LOCKED],FREE}) SeongJae Park
2025-03-11 13:59 ` Lorenzo Stoakes
2025-03-11 21:01 ` SeongJae Park
2025-04-01 21:17 ` SeongJae Park
2025-03-10 17:23 ` SeongJae Park [this message]
2025-03-11 14:01 ` [PATCH 9/9] mm/madvise: remove !tlb support from madvise_{dontneed,free}_single_vma() Lorenzo Stoakes
2025-03-11 21:02 ` SeongJae Park
2025-03-12 13:46 ` Lorenzo Stoakes
2025-04-01 21:22 ` SeongJae Park
2025-03-10 22:39 ` [PATCH 0/9] mm/madvise: batch tlb flushes for MADV_DONTNEED and MADV_FREE Andrew Morton
2025-03-10 23:15 ` Shakeel Butt
2025-03-10 23:36 ` Roman Gushchin
2025-03-11 11:17 ` Lorenzo Stoakes
2025-03-10 23:27 ` SeongJae Park
2025-03-11 12:49 ` Lorenzo Stoakes
2025-03-11 21:03 ` SeongJae Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250310172318.653630-10-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=howlett@gmail.com \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=shakeel.butt@linux.dev \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox