From 6532784c7853261bc8554997863d7f51d657c5a1 Mon Sep 17 00:00:00 2001 From: Peifeng Li Date: Mon, 1 Aug 2022 11:02:51 +0800 Subject: [PATCH] ANDROID: vendor_hooks: add hooks for remove_vm_area. Provide a vendor hook to remove additional fields when remove_vm_area for slab/vmalloc memory leak debugging. Bug: 240869642 Signed-off-by: Peifeng Li Change-Id: Iafecd7c6e75cdc2df0e77ae105283590d8852f74 --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/mm.h | 3 +++ mm/vmalloc.c | 1 + 3 files changed, 5 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 345e6dc1b7b3..8c0bbcde78ae 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -338,6 +338,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_attach_sd); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sdhci_get_cd); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_gpio_cd_irqt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_vmalloc_stack); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_remove_vmalloc_stack); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_stack_hash); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_save_track_hash); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_vmpressure); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 742862fc5134..6d25e458edb3 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -233,6 +233,9 @@ DECLARE_HOOK(android_vh_free_pages, DECLARE_HOOK(android_vh_set_shmem_page_flag, TP_PROTO(struct page *page), TP_ARGS(page)); +DECLARE_HOOK(android_vh_remove_vmalloc_stack, + TP_PROTO(struct vm_struct *vm), + TP_ARGS(vm)); /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_MM_H */ diff --git a/mm/vmalloc.c b/mm/vmalloc.c index d5615977e7f3..817a472ee30f 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2170,6 +2170,7 @@ struct vm_struct *remove_vm_area(const void *addr) if (va && va->vm) { struct vm_struct *vm = va->vm; + trace_android_vh_remove_vmalloc_stack(vm); va->vm = NULL; spin_unlock(&vmap_area_lock);