[RFC PATCH 39/57] mm/collapse: name the file collapse's tracepoints after collapse
From: Kiryl Shutsemau
Date: Sun Aug 16 2026 - 18:57:29 EST
From: "Kiryl Shutsemau (Meta)" <kas@xxxxxxxxxx>
The two file events are named for khugepaged, from when khugepaged was the
only thing that collapsed and the code lived in its file. Neither is true
now: MADV_COLLAPSE reaches them through the same entry point, and they are
emitted from collapse.c beside the events that do use the collapse name.
Rename mm_khugepaged_scan_file to mm_collapse_scan_file, and
mm_khugepaged_collapse_file to mm_collapse_file. Every event a collapse
emits is then under one prefix: the anonymous and file scans, the
per-candidate verdicts, the fault-in, the round, and the file collapse
itself.
mm_khugepaged_scan keeps its name. That one is the daemon reporting a
scan pass of its own, from khugepaged.c, and it is not something a
collapse emits.
Renaming a tracepoint breaks anything watching the old name. In tree that
is raw_tp_null_args[], which tells the BPF verifier that the folio
argument of both may be NULL. Without a matching entry the verifier would
let a program dereference it unchecked.
Assisted-by: Claude-Code:claude-opus-5
Signed-off-by: Kiryl Shutsemau (Meta) <kas@xxxxxxxxxx>
---
include/trace/events/huge_memory.h | 4 ++--
kernel/bpf/btf.c | 4 ++--
mm/collapse.c | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/trace/events/huge_memory.h b/include/trace/events/huge_memory.h
index d7c0195ace92..5d0891e03bb0 100644
--- a/include/trace/events/huge_memory.h
+++ b/include/trace/events/huge_memory.h
@@ -308,7 +308,7 @@ TRACE_EVENT(mm_collapse_huge_page_swapin,
__entry->order)
);
-TRACE_EVENT(mm_khugepaged_scan_file,
+TRACE_EVENT(mm_collapse_scan_file,
TP_PROTO(struct mm_struct *mm, struct folio *folio, struct file *file,
int present, int swap, int result),
@@ -342,7 +342,7 @@ TRACE_EVENT(mm_khugepaged_scan_file,
__print_symbolic(__entry->result, SCAN_STATUS))
);
-TRACE_EVENT(mm_khugepaged_collapse_file,
+TRACE_EVENT(mm_collapse_file,
TP_PROTO(struct mm_struct *mm, struct folio *new_folio, pgoff_t index,
unsigned long addr, bool is_shmem, struct file *file,
int nr, int result),
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index c4673a54c4ba..58f78274d989 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -6705,8 +6705,8 @@ static const struct bpf_raw_tp_null_args raw_tp_null_args[] = {
/* huge_memory */
{ "mm_khugepaged_scan_pmd", 0x10 },
{ "mm_collapse_huge_page_isolate", 0x1 },
- { "mm_khugepaged_scan_file", 0x10 },
- { "mm_khugepaged_collapse_file", 0x10 },
+ { "mm_collapse_scan_file", 0x10 },
+ { "mm_collapse_file", 0x10 },
/* kmem */
{ "mm_page_alloc", 0x1 },
{ "mm_page_pcpu_drain", 0x1 },
diff --git a/mm/collapse.c b/mm/collapse.c
index d0d28e8dfcea..6c17c83a4e21 100644
--- a/mm/collapse.c
+++ b/mm/collapse.c
@@ -3519,7 +3519,7 @@ static enum scan_result collapse_file(struct mm_struct *mm, unsigned long addr,
folio_put(new_folio);
out:
VM_BUG_ON(!list_empty(&pagelist));
- trace_mm_khugepaged_collapse_file(mm, new_folio, index, addr, is_shmem, file, HPAGE_PMD_NR, result);
+ trace_mm_collapse_file(mm, new_folio, index, addr, is_shmem, file, HPAGE_PMD_NR, result);
return result;
}
@@ -3625,7 +3625,7 @@ static enum scan_result collapse_pagecache_pmd(struct mm_struct *mm,
}
}
- trace_mm_khugepaged_scan_file(mm, folio, file, present, swap, result);
+ trace_mm_collapse_scan_file(mm, folio, file, present, swap, result);
return result;
}
--
2.54.0