mm: vmalloc: use trace_alloc_vmap_area event
authorUladzislau Rezki (Sony) <urezki@gmail.com>
Tue, 18 Oct 2022 18:10:50 +0000 (20:10 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 9 Nov 2022 01:37:17 +0000 (17:37 -0800)
This is for debug purpose and is called when an allocation attempt occurs.
This event gives some information about:

- start address of allocated area;
- size that is requested;
- alignment that is required;
- vstart/vend restriction;
- if an allocation fails.

Link: https://lkml.kernel.org/r/20221018181053.434508-5-urezki@gmail.com
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Oleksiy Avramchenko <oleksiy.avramchenko@sony.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/vmalloc.c

index ccaa461998f3c37981df44b89a4ecdcd0c2f4f76..849563d334fba7519bc75ae659e14c1401139743 100644 (file)
@@ -43,6 +43,9 @@
 #include <asm/tlbflush.h>
 #include <asm/shmparam.h>
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/vmalloc.h>
+
 #include "internal.h"
 #include "pgalloc-track.h"
 
@@ -1620,6 +1623,8 @@ retry:
                size, align, vstart, vend);
        spin_unlock(&free_vmap_area_lock);
 
+       trace_alloc_vmap_area(addr, size, align, vstart, vend, addr == vend);
+
        /*
         * If an allocation fails, the "vend" address is
         * returned. Therefore trigger the overflow path.