Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm/cma: add 'available count' and 'total count' to trace_cma_alloc_start

This makes cma info more intuitive during debugging.

Show up in the trace as:

279.814717: cma_alloc_start: name=reserved request_count=4 available_count=8096 total_count=8192 align=0
309.790580: cma_alloc_start: name=reserved request_count=4 available_count=8092 total_count=8192 align=0
317.046609: cma_alloc_start: name=reserved request_count=4 available_count=8088 total_count=8192 align=0

Link: https://lkml.kernel.org/r/8a79284879c529f467478552825154b018076e95.1755729178.git.gaoxiang17@xiaomi.com
Signed-off-by: gaoxiang17 <gaoxiang17@xiaomi.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

gaoxiang17 and committed by
Andrew Morton
0cd01c4a 5d5d75ff

+14 -7
+13 -6
include/trace/events/cma.h
··· 38 38 39 39 TRACE_EVENT(cma_alloc_start, 40 40 41 - TP_PROTO(const char *name, unsigned long count, unsigned int align), 41 + TP_PROTO(const char *name, unsigned long request_count, unsigned long available_count, 42 + unsigned long total_count, unsigned int align), 42 43 43 - TP_ARGS(name, count, align), 44 + TP_ARGS(name, request_count, available_count, total_count, align), 44 45 45 46 TP_STRUCT__entry( 46 47 __string(name, name) 47 - __field(unsigned long, count) 48 + __field(unsigned long, request_count) 49 + __field(unsigned long, available_count) 50 + __field(unsigned long, total_count) 48 51 __field(unsigned int, align) 49 52 ), 50 53 51 54 TP_fast_assign( 52 55 __assign_str(name); 53 - __entry->count = count; 56 + __entry->request_count = request_count; 57 + __entry->available_count = available_count; 58 + __entry->total_count = total_count; 54 59 __entry->align = align; 55 60 ), 56 61 57 - TP_printk("name=%s count=%lu align=%u", 62 + TP_printk("name=%s request_count=%lu available_count=%lu total_count=%lu align=%u", 58 63 __get_str(name), 59 - __entry->count, 64 + __entry->request_count, 65 + __entry->available_count, 66 + __entry->total_count, 60 67 __entry->align) 61 68 ); 62 69
+1 -1
mm/cma.c
··· 864 864 if (!count) 865 865 return page; 866 866 867 - trace_cma_alloc_start(name, count, align); 867 + trace_cma_alloc_start(name, count, cma->available_count, cma->count, align); 868 868 869 869 for (r = 0; r < cma->nranges; r++) { 870 870 page = NULL;