The patch titled Subject: mm: vmalloc: use trace_free_vmap_area_noflush event has been added to the -mm mm-unstable branch. Its filename is mm-vmalloc-use-trace_free_vmap_area_noflush-event.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-vmalloc-use-trace_free_vmap_area_noflush-event.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: "Uladzislau Rezki (Sony)" <urezki@xxxxxxxxx> Subject: mm: vmalloc: use trace_free_vmap_area_noflush event Date: Tue, 18 Oct 2022 20:10:52 +0200 It is for debug purposes and is called when a vmap area gets freed. This event gives some indication about: - a start address of released area; - a current number of outstanding pages; - a maximum number of allowed outstanding pages. Link: https://lkml.kernel.org/r/20221018181053.434508-7-urezki@xxxxxxxxx Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> Reviewed-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Cc: Nicholas Piggin <npiggin@xxxxxxxxx> Cc: Oleksiy Avramchenko <oleksiy.avramchenko@xxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/vmalloc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) --- a/mm/vmalloc.c~mm-vmalloc-use-trace_free_vmap_area_noflush-event +++ a/mm/vmalloc.c @@ -1821,6 +1821,8 @@ static void drain_vmap_area_work(struct */ static void free_vmap_area_noflush(struct vmap_area *va) { + unsigned long nr_lazy_max = lazy_max_pages(); + unsigned long va_start = va->va_start; unsigned long nr_lazy; spin_lock(&vmap_area_lock); @@ -1838,8 +1840,10 @@ static void free_vmap_area_noflush(struc &purge_vmap_area_root, &purge_vmap_area_list); spin_unlock(&purge_vmap_area_lock); + trace_free_vmap_area_noflush(va_start, nr_lazy, nr_lazy_max); + /* After this point, we may free va at any time */ - if (unlikely(nr_lazy > lazy_max_pages())) + if (unlikely(nr_lazy > nr_lazy_max)) schedule_work(&drain_vmap_work); } _ Patches currently in -mm which might be from urezki@xxxxxxxxx are mm-vmalloc-add-alloc_vmap_area-trace-event.patch mm-vmalloc-add-purge_vmap_area_lazy-trace-event.patch mm-vmalloc-add-free_vmap_area_noflush-trace-event.patch mm-vmalloc-use-trace_alloc_vmap_area-event.patch mm-vmalloc-use-trace_purge_vmap_area_lazy-event.patch mm-vmalloc-use-trace_free_vmap_area_noflush-event.patch vmalloc-add-reviewers-for-vmalloc-code.patch