From 6c81eeca823b1fb350e1696bd3b3e4281a0faa42 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Tue, 4 Apr 2023 08:37:21 -0700 Subject: [PATCH 1/3] dump cma debugfs into dumpstate_board.txt CMA debugfs provides how many CMA pages were allocated. It's useful to detect CMA memory leak. E.g) --- /sys/kernel/debug/cma/cma-faceauth_tp Bug: 276901078 Test: dumpstate_board.txt on adb bugreport includes the info Change-Id: Ic050c78ff6455a2960be239732ab6214c3789106 Signed-off-by: Minchan Kim --- soc/dump_memory.sh | 8 ++++++++ soc/sepolicy/soc/dump_memory.te | 2 ++ soc/sepolicy/soc/file.te | 2 +- soc/sepolicy/soc/genfs_contexts | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/soc/dump_memory.sh b/soc/dump_memory.sh index 5f4bde7..873cdc9 100644 --- a/soc/dump_memory.sh +++ b/soc/dump_memory.sh @@ -20,3 +20,11 @@ cat "/d/dma_buf/bufinfo" echo "------ Page Pinner - longterm pin ------" cat "/sys/kernel/debug/page_pinner/buffer" +echo "------ CMA info ------" +for d in $(ls -d /sys/kernel/debug/cma/*) +do + echo --- $d + echo --- count; cat $d/count; + echo --- used; cat $d/used; + echo --- bitmap; cat $d/bitmap; +done diff --git a/soc/sepolicy/soc/dump_memory.te b/soc/sepolicy/soc/dump_memory.te index 47f9f07..4a6411e 100644 --- a/soc/sepolicy/soc/dump_memory.te +++ b/soc/sepolicy/soc/dump_memory.te @@ -4,5 +4,7 @@ userdebug_or_eng(` allow dump_memory vendor_dmabuf_debugfs:file r_file_perms; allow dump_memory vendor_page_pinner_debugfs:dir r_dir_perms; allow dump_memory vendor_page_pinner_debugfs:file r_file_perms; + allow dump_memory vendor_cma_debugfs:dir r_dir_perms; + allow dump_memory vendor_cma_debugfs:file r_file_perms; ') diff --git a/soc/sepolicy/soc/file.te b/soc/sepolicy/soc/file.te index 553825a..63b579d 100644 --- a/soc/sepolicy/soc/file.te +++ b/soc/sepolicy/soc/file.te @@ -1,3 +1,3 @@ type vendor_dmabuf_debugfs, fs_type, debugfs_type; type vendor_page_pinner_debugfs, fs_type, debugfs_type; - +type vendor_cma_debugfs, fs_type, debugfs_type; diff --git a/soc/sepolicy/soc/genfs_contexts b/soc/sepolicy/soc/genfs_contexts index 454ab6a..e718bd1 100644 --- a/soc/sepolicy/soc/genfs_contexts +++ b/soc/sepolicy/soc/genfs_contexts @@ -7,4 +7,4 @@ genfscon sysfs /devices/system/chip-id/raw_str u:object_r:sysfs_chip_id: genfscon debugfs /dma_buf/bufinfo u:object_r:vendor_dmabuf_debugfs:s0 genfscon debugfs /page_pinner u:object_r:vendor_page_pinner_debugfs:s0 - +genfscon debugfs /cma u:object_r:vendor_cma_debugfs:s0 From 2a651114fe9975f1883728dc2cd1359080145c6e Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Tue, 4 Apr 2023 08:45:04 -0700 Subject: [PATCH 2/3] dump pixel trace into dumpstate_board.txt Dump cma allocation/deallocation traces into dumpstate_board.txt. E.g.) android.hardwar-3427 [004] .... 15.196059: cma_alloc_start: name=faceauth_tpu count=256 align=8 android.hardwar-3427 [004] .... 15.196189: cma_alloc_info: name=faceauth_tpu pfn=0x9f4200 count=256 align=8 nr_migrated=0 nr_reclaimed=0 nr_mapped=0 err_iso=0 err_mig=0 err_test=0 binder:578_1-592 [003] .... 15.209400: cma_alloc_start: name=farawimg count=704 align=4 binder:578_1-592 [003] .... 15.210344: cma_alloc_info: name=farawimg pfn=0x9e83c0 count=704 align=4 nr_migrated=0 nr_reclaimed=0 nr_mapped=0 err_iso=0 err_mig=0 err_test=0 binder:1114_4-3420 [001] .... 15.259132: cma_release: name=faceauth_tpu pfn=9f4000 page=000000002e4bd17f count=16 binder:1114_4-3420 [001] .... 15.259143: cma_release: name=faceauth_tpu pfn=9f4010 page=000000008e379085 count=16 binder:1114_4-3420 [001] .... 15.259148: cma_release: name=faceauth_tpu pfn=9f4020 page=00000000161dc38b count=16 binder:1114_4-3420 [001] .... 15.259152: cma_release: name=faceauth_tpu pfn=9f4030 page=000000001d3eb567 count=16 binder:1114_4-3420 [001] .... 15.259157: cma_release: name=faceauth_tpu pfn=9f4040 page=00000000f7f6dc70 count=16 Bug: 276901078 Test: dumpstate_board.txt on adb bugreport includes the info Change-Id: If64c066eca59d6bba75e0494cd22108d619ad6f8 Signed-off-by: Minchan Kim --- soc/dump_memory.sh | 3 +++ soc/sepolicy/soc/dump_memory.te | 2 ++ 2 files changed, 5 insertions(+) diff --git a/soc/dump_memory.sh b/soc/dump_memory.sh index 873cdc9..49f7c84 100644 --- a/soc/dump_memory.sh +++ b/soc/dump_memory.sh @@ -28,3 +28,6 @@ do echo --- used; cat $d/used; echo --- bitmap; cat $d/bitmap; done + +echo "------ Pixel Trace ------" +cat "/sys/kernel/tracing/instances/pixel/trace" diff --git a/soc/sepolicy/soc/dump_memory.te b/soc/sepolicy/soc/dump_memory.te index 4a6411e..b3a962e 100644 --- a/soc/sepolicy/soc/dump_memory.te +++ b/soc/sepolicy/soc/dump_memory.te @@ -6,5 +6,7 @@ userdebug_or_eng(` allow dump_memory vendor_page_pinner_debugfs:file r_file_perms; allow dump_memory vendor_cma_debugfs:dir r_dir_perms; allow dump_memory vendor_cma_debugfs:file r_file_perms; + allow dump_memory debugfs_tracing_instances:dir search; + allow dump_memory debugfs_tracing_instances:file r_file_perms; ') From caf0f59fab455923f403c16830d98640c2ff05a7 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Thu, 6 Apr 2023 11:00:09 -0700 Subject: [PATCH 3/3] dump vendor cma stat Bug: 276901078 Test: dumpstate_board.txt on adb bugreport includes the info Change-Id: Iaef36594a8ef48b0c85039f348618f021f93e8c2 Signed-off-by: Minchan Kim --- soc/dump_memory.sh | 13 +++++++++++++ soc/sepolicy/soc/dump_memory.te | 2 ++ 2 files changed, 15 insertions(+) diff --git a/soc/dump_memory.sh b/soc/dump_memory.sh index 49f7c84..6135dea 100644 --- a/soc/dump_memory.sh +++ b/soc/dump_memory.sh @@ -29,5 +29,18 @@ do echo --- bitmap; cat $d/bitmap; done +echo "------ Pixel CMA stat ------" +for d in $(ls -d /sys/kernel/pixel_stat/mm/cma/*); do + if [ -f $d ]; then + echo --- $d + cat $d + else + for f in $(ls $d); do + echo --- $d/$f + cat $d/$f + done + fi +done + echo "------ Pixel Trace ------" cat "/sys/kernel/tracing/instances/pixel/trace" diff --git a/soc/sepolicy/soc/dump_memory.te b/soc/sepolicy/soc/dump_memory.te index b3a962e..7502f3a 100644 --- a/soc/sepolicy/soc/dump_memory.te +++ b/soc/sepolicy/soc/dump_memory.te @@ -8,5 +8,7 @@ userdebug_or_eng(` allow dump_memory vendor_cma_debugfs:file r_file_perms; allow dump_memory debugfs_tracing_instances:dir search; allow dump_memory debugfs_tracing_instances:file r_file_perms; + allow dump_memory sysfs_pixel_stat:dir r_dir_perms; + allow dump_memory sysfs_pixel_stat:file r_file_perms; ')