From d9ee96ba69c0265d80c35c891ab82c9f80b6cf83 Mon Sep 17 00:00:00 2001 From: Andrii Simiklit Date: Wed, 15 Jan 2020 12:34:38 +0200 Subject: Revert "glx: convert glx_config_create_list to one big calloc" This reverts commit 35fc7bdf0e6ad6547e39099e7060a3d89539b56d. Unfortunately mentioned commit introduced a memory leak because `driwindowsMapConfigs` and `createDriMode` functions allocate small memory portions for each element: 21,576 (232 direct, 21,344 indirect) bytes in 1 blocks are definitely lost in loss record 1,411 of 1,414 at 0x483A7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x5D4AA09: createDriMode (dri_common.c:291) by 0x5D4ABF5: driConvertConfigs (dri_common.c:310) by 0x5D58414: dri3_create_screen (dri3_glx.c:945) by 0x5D39829: AllocAndFetchScreenConfigs (glxext.c:815) by 0x5D39C57: __glXInitialize (glxext.c:941) by 0x5D3290A: GetGLXPrivScreenConfig (glxcmds.c:174) by 0x5D34F38: glXQueryExtensionsString (glxcmds.c:1307) by 0x4F83038: glXQueryExtensionsString (in /usr/local/lib/libGL.so.1.7.0) by 0x4F2EA6B: ??? (in /usr/lib/x86_64-linux-gnu/libwaffle-1.so.0.6.0) by 0x4F2A0D7: waffle_display_connect (in /usr/lib/x86_64-linux-gnu/libwaffle-1.so.0.6.0) by 0x498F42A: wfl_checked_display_connect (piglit-util-waffle.h:74) There is one more thing which disallow us to easily fix it are different element sizes for instance: `glx_config_create_list` allocates memory just for `glx_config`, `driwindowsMapConfigs` for `driwindows_config` and `createDriMode` for `__GLXDRIconfigPrivate`. Yes it is possible but size of such fix will be more big and complex than original one. So it make sense only if the malloc overhead really is a big problem there. Acked-by: Eric Engestrom Signed-off-by: Andrii Simiklit Tested-by: Marge Bot Part-of: (cherry picked from commit 311c82e1923f63070b198881d90c1098f4ff7a08) --- .pick_status.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.pick_status.json') diff --git a/.pick_status.json b/.pick_status.json index 241ed9ff4f2..1a945a92853 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1363,7 +1363,7 @@ "description": "Revert \"glx: convert glx_config_create_list to one big calloc\"", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "35fc7bdf0e6ad6547e39099e7060a3d89539b56d" }, -- cgit v1.2.1