drm_analog_tv_mode: memory Leaks in DRM Kunit Tests
Philipp Stanner
phasta at mailbox.org
Fri Mar 7 14:04:09 UTC 2025
Hallo,
so, I was just debugging stuff on drm-misc-next and ran the DRM kunit
tests and found a zoo of memleaks, which you find at the end of this
mail.
How to reproduce:
1. Check out drm-misc-next @ c82734fbdc50 (HEAD -> drm-misc-next)
drm/panthor: Update CS_STATUS_ defines to correct valuesmake
defconfig (on AMD64)make menuconfig -> DRM -> <*> KUnit tests for
DRM
(means build hard-wired, not as a module)make modules_install &&
make installbuild initramfsadd boot loader entryBoot that kernel2
times: echo "scan"> /sys/kernel/debug/kmemleak cat
/sys/kernel/debug/kmemleak
Tell me if you need more input or stuff.
P.
Complete output from kmemleak:
cat /sys/kernel/debug/kmemleak unreferenced object 0xffff888104903b00
(size 128): comm "kunit_try_catch", pid 429, jiffies 4294669878 hex
dump (first 32 bytes): bc 34 00 00 d0 02 e0 02 20 03 5a 03 00 00 e0 01
.4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00 00 00 00 00 00 00
................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff8881089e8000 (size 128): comm "kunit_try_catch", pid 431, jiffies
4294669879 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02 20 03 5a
03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00 00 00 00
00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff8881047e8200 (size 128): comm "kunit_try_catch", pid 433, jiffies
4294669879 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02 20 03 5a
03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00 00 00 00
00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810397c000 (size 128): comm "kunit_try_catch", pid 435, jiffies
4294669880 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02 1c 03 60
03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00 00 00 00
00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff8881045fa000 (size 128): comm "kunit_try_catch", pid 437, jiffies
4294669880 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02 20 03 5a
03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00 00 00 00
00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810a536500 (size 128): comm "kunit_try_catch", pid 439, jiffies
4294669881 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02 1c 03 60
03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00 00 00 00
00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810a536600 (size 128): comm "kunit_try_catch", pid 441, jiffies
4294669881 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02 1c 03 60
03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00 00 00 00
00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810a536700 (size 128): comm "kunit_try_catch", pid 443, jiffies
4294669881 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02 20 03 5a
03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00 00 00 00
00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810a536800 (size 128): comm "kunit_try_catch", pid 445, jiffies
4294669881 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02 1c 03 60
03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00 00 00 00
00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_cmdline_tv_options+0xcb/0xbe0 kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810d30d340 (size 16): comm "kunit_try_catch", pid 1265, jiffies
4294670713 hex dump (first 16 bytes): 00 00 00 00 00 00 00 00 0b 00 00
00 0b 00 00 00 ................ backtrace (crc 8a6b9b57):
__kmalloc_cache_noprof+0x2cd/0x360 drm_prime_pages_to_sg+0x48/0x100
drm_gem_shmem_test_get_pages_sgt+0x208/0x910
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e8a0a00 (size 128): comm "kunit_try_catch", pid 1355,
jiffies 4294670857 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_mono_576i+0xca/0x7c0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810ed1b700 (size 128): comm "kunit_try_catch", pid 1357,
jiffies 4294670859 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_ntsc_480i+0xc7/0x7c0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810d0c4a00 (size 128): comm "kunit_try_catch", pid 1359,
jiffies 4294670861 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_ntsc_480i_inlined+0xcd/0x370
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810d0c4b00 (size 128): comm "kunit_try_catch", pid 1359,
jiffies 4294670861 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_ntsc_480i_inlined+0x175/0x370
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e73bc00 (size 128): comm "kunit_try_catch", pid 1361,
jiffies 4294670864 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_pal_576i+0xca/0x7c0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810ea02700 (size 128): comm "kunit_try_catch", pid 1363,
jiffies 4294670865 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_pal_576i_inlined+0xd0/0x380
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810ea02800 (size 128): comm "kunit_try_catch", pid 1363,
jiffies 4294670865 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_modes_analog_tv_pal_576i_inlined+0x17b/0x380
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810d4ed900 (size 128): comm "kunit_try_catch", pid 1391,
jiffies 4294670884 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x5b9/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e74cc00 (size 128): comm "kunit_try_catch", pid 1393,
jiffies 4294670890 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x5b9/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e8adb00 (size 128): comm "kunit_try_catch", pid 1395,
jiffies 4294670892 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x5b9/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e8adc00 (size 128): comm "kunit_try_catch", pid 1395,
jiffies 4294670892 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x808/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810ed2a800 (size 128): comm "kunit_try_catch", pid 1397,
jiffies 4294670895 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x5b9/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810ed2a900 (size 128): comm "kunit_try_catch", pid 1397,
jiffies 4294670895 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x808/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e823900 (size 128): comm "kunit_try_catch", pid 1399,
jiffies 4294670897 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x5b9/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e823a00 (size 128): comm "kunit_try_catch", pid 1399,
jiffies 4294670897 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x808/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e570500 (size 128): comm "kunit_try_catch", pid 1401,
jiffies 4294670899 hex dump (first 32 bytes): bc 34 00 00 d0 02 e0 02
20 03 5a 03 00 00 e0 01 .4...... .Z..... e6 01 ec 01 0d 02 00 00 1a 00
00 00 00 00 00 00 ................ backtrace (crc 4b90f964):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x5b9/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30 unreferenced object
0xffff88810e570600 (size 128): comm "kunit_try_catch", pid 1401,
jiffies 4294670899 hex dump (first 32 bytes): bc 34 00 00 d0 02 dc 02
1c 03 60 03 00 00 40 02 .4........`... at . 45 02 4b 02 71 02 00 00 1a 00
00 00 00 00 00 00 E.K.q........... backtrace (crc c90da5a8):
__kmalloc_cache_noprof+0x2cd/0x360 drm_analog_tv_mode+0x76/0x23d0
drm_test_connector_helper_tv_get_modes_check+0x808/0x10e0
kunit_try_run_case+0x1ae/0x490
kunit_generic_run_threadfn_adapter+0x7b/0xe0 kthread+0x30f/0x620
ret_from_fork+0x2f/0x70 ret_from_fork_asm+0x1a/0x30
More information about the dri-devel
mailing list