[PATCH libdrm 2/2] libdrm: clean up non list code path for vamgr

Chunming Zhou zhoucm1 at amd.com
Fri Feb 9 06:01:57 UTC 2018



On 2018年02月08日 17:13, Chunming Zhou wrote:
>
>
> On 2018年02月08日 17:01, Michel Dänzer wrote:
>> Hi David,
>>
>>
>> this change completely broke radeonsi due to memory management errors
>> (see valgrind output for glxgears below), so I had to revert it.
> ok, I will look into what happens. Sorry for broken.
The patch lost a "goto out" in free_va when applying patch from hybrid 
to opensource.
The attached fixes that, I tested successfully in my local side.
  please review or test, if no problem, I will submit it again.

Thanks,
David Zhou

>
> Regards,
> David Zhou
>>
>>
>> ==4831== Memcheck, a memory error detector
>> ==4831== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
>> ==4831== Using Valgrind-3.13.0 and LibVEX; rerun with -h for 
>> copyright info
>> ==4831== Command: glxgears
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E79B: list_add (util_double_list.h:56)
>> ==4831==    by 0xAE4E79B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:184)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==  Address 0x151eccb8 is 8 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E7B0: list_add (util_double_list.h:57)
>> ==4831==    by 0xAE4E7B0: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:184)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==  Address 0x151eccb8 is 8 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==
>> ==4831== Invalid write of size 8
>> ==4831==    at 0xAE4E7BB: list_add (util_double_list.h:58)
>> ==4831==    by 0xAE4E7BB: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:184)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==  Address 0x151eccb8 is 8 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E730: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:149)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==  Address 0x150164b0 is 16 bytes inside a block of size 32 
>> free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E73D: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:148)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==  Address 0x150164a8 is 8 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831== Invalid write of size 8
>> ==4831==    at 0xAE4E983: list_del (util_double_list.h:80)
>> ==4831==    by 0xAE4E983: amdgpu_vamgr_deinit (amdgpu_vamgr.c:70)
>> ==4831==    by 0xAE4D883: amdgpu_device_free_internal 
>> (amdgpu_device.c:134)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_reference (amdgpu_device.c:164)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_deinitialize 
>> (amdgpu_device.c:307)
>> ==4831==    by 0xA0FFD9A: do_winsys_deinit (amdgpu_winsys.c:84)
>> ==4831==    by 0xA0FFD9A: amdgpu_winsys_destroy (amdgpu_winsys.c:101)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==    by 0x535BD4E: glx_display_free (glxext.c:244)
>> ==4831==    by 0x535BE8D: __glXCloseDisplay (glxext.c:299)
>> ==4831==  Address 0x150164a0 is 0 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E98B: amdgpu_vamgr_deinit (amdgpu_vamgr.c:69)
>> ==4831==    by 0xAE4D883: amdgpu_device_free_internal 
>> (amdgpu_device.c:134)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_reference (amdgpu_device.c:164)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_deinitialize 
>> (amdgpu_device.c:307)
>> ==4831==    by 0xA0FFD9A: do_winsys_deinit (amdgpu_winsys.c:84)
>> ==4831==    by 0xA0FFD9A: amdgpu_winsys_destroy (amdgpu_winsys.c:101)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==    by 0x535BD4E: glx_display_free (glxext.c:244)
>> ==4831==    by 0x535BE8D: __glXCloseDisplay (glxext.c:299)
>> ==4831==  Address 0x150164a8 is 8 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E978: list_del (util_double_list.h:79)
>> ==4831==    by 0xAE4E978: amdgpu_vamgr_deinit (amdgpu_vamgr.c:70)
>> ==4831==    by 0xAE4D883: amdgpu_device_free_internal 
>> (amdgpu_device.c:134)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_reference (amdgpu_device.c:164)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_deinitialize 
>> (amdgpu_device.c:307)
>> ==4831==    by 0xA0FFD9A: do_winsys_deinit (amdgpu_winsys.c:84)
>> ==4831==    by 0xA0FFD9A: amdgpu_winsys_destroy (amdgpu_winsys.c:101)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==    by 0x535BD4E: glx_display_free (glxext.c:244)
>> ==4831==    by 0x535BE8D: __glXCloseDisplay (glxext.c:299)
>> ==4831==  Address 0x150164a0 is 0 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831== Invalid read of size 8
>> ==4831==    at 0xAE4E97F: list_del (util_double_list.h:80)
>> ==4831==    by 0xAE4E97F: amdgpu_vamgr_deinit (amdgpu_vamgr.c:70)
>> ==4831==    by 0xAE4D883: amdgpu_device_free_internal 
>> (amdgpu_device.c:134)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_reference (amdgpu_device.c:164)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_deinitialize 
>> (amdgpu_device.c:307)
>> ==4831==    by 0xA0FFD9A: do_winsys_deinit (amdgpu_winsys.c:84)
>> ==4831==    by 0xA0FFD9A: amdgpu_winsys_destroy (amdgpu_winsys.c:101)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==    by 0x535BD4E: glx_display_free (glxext.c:244)
>> ==4831==    by 0x535BE8D: __glXCloseDisplay (glxext.c:299)
>> ==4831==  Address 0x150164a8 is 8 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831== Invalid free() / delete / delete[] / realloc()
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E98A: amdgpu_vamgr_deinit (amdgpu_vamgr.c:71)
>> ==4831==    by 0xAE4D883: amdgpu_device_free_internal 
>> (amdgpu_device.c:134)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_reference (amdgpu_device.c:164)
>> ==4831==    by 0xAE4DD9B: amdgpu_device_deinitialize 
>> (amdgpu_device.c:307)
>> ==4831==    by 0xA0FFD9A: do_winsys_deinit (amdgpu_winsys.c:84)
>> ==4831==    by 0xA0FFD9A: amdgpu_winsys_destroy (amdgpu_winsys.c:101)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==    by 0x535BCCE: FreeScreenConfigs.isra.3 (glxext.c:221)
>> ==4831==    by 0x535BD4E: glx_display_free (glxext.c:244)
>> ==4831==  Address 0x150164a0 is 0 bytes inside a block of size 32 free'd
>> ==4831==    at 0x4C2DDBB: free (vg_replace_malloc.c:530)
>> ==4831==    by 0xAE4E85B: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:165)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0x9DD5067: pb_cache_release_all_buffers (pb_cache.c:241)
>> ==4831==    by 0x9DD5260: pb_cache_deinit (pb_cache.c:313)
>> ==4831==    by 0xA0FFD82: amdgpu_winsys_destroy (amdgpu_winsys.c:99)
>> ==4831==    by 0xA051D76: si_destroy_screen (si_pipe.c:515)
>> ==4831==    by 0x9D85448: dri_destroy_screen_helper (dri_screen.c:454)
>> ==4831==    by 0x9D85475: dri_destroy_screen (dri_screen.c:464)
>> ==4831==    by 0x9D82076: driDestroyScreen (dri_util.c:231)
>> ==4831==    by 0x5386222: dri3_destroy_screen (dri3_glx.c:584)
>> ==4831==  Block was alloc'd at
>> ==4831==    at 0x4C2EBA5: calloc (vg_replace_malloc.c:711)
>> ==4831==    by 0xAE4E795: amdgpu_vamgr_free_va.part.0 
>> (amdgpu_vamgr.c:180)
>> ==4831==    by 0xAE4EB2C: amdgpu_vamgr_free_va (amdgpu_vamgr.c:141)
>> ==4831==    by 0xAE4EB2C: amdgpu_va_range_free (amdgpu_vamgr.c:246)
>> ==4831==    by 0xA0FA53E: amdgpu_bo_destroy (amdgpu_bo.c:178)
>> ==4831==    by 0xA12EADF: pb_destroy (pb_buffer.h:232)
>> ==4831==    by 0xA12EADF: pb_reference (pb_buffer.h:242)
>> ==4831==    by 0xA12EADF: r600_texture_destroy (r600_texture.c:825)
>> ==4831==    by 0x9D8490E: pipe_resource_reference (u_inlines.h:144)
>> ==4831==    by 0x9D8490E: dri2_destroy_image (dri_helpers.c:317)
>> ==4831==    by 0x538A94D: dri3_free_render_buffer.isra.3 
>> (loader_dri3_helper.c:223)
>> ==4831==    by 0x538B347: loader_dri3_drawable_fini 
>> (loader_dri3_helper.c:238)
>> ==4831==    by 0x53861E4: dri3_destroy_drawable (dri3_glx.c:338)
>> ==4831==    by 0x537F739: driReleaseDrawables (dri_common.c:481)
>> ==4831==    by 0x53866C2: dri3_destroy_context (dri3_glx.c:166)
>> ==4831==    by 0x5358792: glXDestroyContext (glxcmds.c:471)
>> ==4831==
>> ==4831==
>> ==4831== HEAP SUMMARY:
>> ==4831==     in use at exit: 156,580 bytes in 1,724 blocks
>> ==4831==   total heap usage: 66,624 allocs, 64,901 frees, 32,392,118 
>> bytes allocated
>> ==4831==
>> ==4831== LEAK SUMMARY:
>> ==4831==    definitely lost: 96 bytes in 3 blocks
>> ==4831==    indirectly lost: 0 bytes in 0 blocks
>> ==4831==      possibly lost: 0 bytes in 0 blocks
>> ==4831==    still reachable: 156,484 bytes in 1,721 blocks
>> ==4831==         suppressed: 0 bytes in 0 blocks
>> ==4831== Rerun with --leak-check=full to see details of leaked memory
>> ==4831==
>> ==4831== For counts of detected and suppressed errors, rerun with: -v
>> ==4831== ERROR SUMMARY: 19 errors from 10 contexts (suppressed: 0 
>> from 0)
>>
>>
>>
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-amdgpu-clean-up-non-list-code-path-for-vamgr.patch
Type: text/x-patch
Size: 5576 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180209/caaca2a2/attachment-0001.bin>


More information about the amd-gfx mailing list