# Pass this file to Valgrind with "--suppressions=tools/valgrind.supp" # Intentional thread / memory leak in DM and nanbench. { nanobench_and_dm_keepalive_thread_leak Memcheck:Leak match-leak-kinds: possible,definite ... fun:start_keepalive ... fun:main ... } # Third party lib, driver issues. { ati_driver_bug_1 Memcheck:Param ioctl(generic) fun:ioctl ... obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_2 Memcheck:Cond obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_3 Memcheck:Addr8 ... obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_4 Memcheck:Addr4 ... obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_5 Memcheck:Addr2 ... obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_6 Memcheck:Addr1 ... obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_7 Memcheck:Leak fun:malloc obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { driver_bug_8 Memcheck:Overlap fun:strcpy obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_9 Memcheck:Leak fun:calloc obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so } { ati_driver_bug_10 Memcheck:Leak fun:malloc obj:/usr/lib/fglrx/fglrx-libGL.so.1.2 } { nv_driver_bug_1 Memcheck:Param write(buf) ... obj:*/libnvidia-glcore.so* } { nv_driver_bug_2 Memcheck:Cond ... obj:*/libnvidia-glcore.so* } { nv_driver_bug_3 Memcheck:Leak fun:calloc obj:/usr/lib*/libGL.so* } { nv_driver_bug_4 Memcheck:Param sendmsg(msg.msg_iov[0]) fun:sendmsg obj:*/libGLX_nvidia.so* } { nv_driver_bug_5 Memcheck:Leak fun:malloc ... obj:*/libGLX_nvidia.so* } { nv_driver_bug_6 Memcheck:Leak fun:calloc ... obj:*/libGLX_nvidia.so* } { nv_driver_bug_7 Memcheck:Leak fun:realloc ... obj:*/libGLX_nvidia.so* } { #Fixed by FontConfig 2.9.0 #http://cgit.freedesktop.org/fontconfig/commit/?id=1c475d5c8cb265ac939d6b9e097666e300162511 font_config_bug_1 Memcheck:Addr4 fun:FcConfigFileExists } { #https://bugs.freedesktop.org/show_bug.cgi?id=8215 #https://bugs.freedesktop.org/show_bug.cgi?id=8428 #FcPattern uses 'intptr_t elts_offset' instead of 'FcPatternEltPtr elts', #which confuses valgrind. font_config_bug_2 Memcheck:Leak fun:*alloc ... fun:Fc*Add* } { #Same root cause as font_config_bug_2. #The 'leak' here is a copy of rule values, as opposed to new values. font_config_bug_3 Memcheck:Leak fun:*alloc ... fun:FcConfigValues fun:FcConfigSubstituteWithPat fun:FcFontRenderPrepare } { #Same root cause as font_config_bug_2. #The 'leak' is copies of font or pattern values into returned pattern values. font_config_bug_4 Memcheck:Leak fun:*alloc ... fun:FcValue* fun:FcFontRenderPrepare } { font_config_bug_5 Memcheck:Leak fun:malloc obj:*/libfontconfig.so.1.8.0 fun:FcConfigSubstituteWithPat } { font_config_bug_6 Memcheck:Leak fun:*alloc ... obj:*/libfontconfig.so.1.8.0 fun:FcFont* } { zlib_bug_1 Memcheck:Cond fun:inflateReset2 fun:inflateInit2_ fun:png_create_read_struct_2 fun:png_create_read_struct } { zlib_bug_2 Memcheck:Cond fun:inflateReset2 fun:inflateInit2_ fun:_ZN12_GLOBAL__N_17doFlateEbP8SkStreamP9SkWStream fun:_ZN7SkFlate7InflateEP8SkStreamP9SkWStream } # Why is it OK to suppress this? { SkRTConfRegistry_bug_1 Memcheck:Leak fun:_Znwm fun:_ZN16SkRTConfRegistry12registerConfEP12SkRTConfBase } # The gpu_issue_* suppressions suppress issues that cannot be reproduced locally. These appear to be # due to valgrind not knowing about memory mapped by the ATI driver via glMapBuffer. { gpu_issue_1 Memcheck:Addr2 fun:_ZNK5GrGpu18getQuadIndexBufferEv } { gpu_issue_2 Memcheck:Addr2 fun:_ZN24GrAAHairLinePathRenderer6CreateEP9GrContext } { gpu_issue_3 Memcheck:Addr2 fun:_ZN16GrAARectRenderer21aaFillRectIndexBufferEP5GrGpu } { gpu_issue_4 Memcheck:Addr8 fun:_ZN24GrAAHairLinePathRenderer14createLineGeomERK6SkPathP12GrDrawTargetRK8SkTArrayI7SkPointLb1EEiPNS3_19AutoReleaseGeometryEP6SkRect } { gpu_issue_5 Memcheck:Addr8 fun:_ZN21GrDefaultPathRenderer10createGeomERK6SkPathRK11SkStrokeRecfP12GrDrawTargetP15GrPrimitiveTypePiSA_PNS6_19AutoReleaseGeometryE } { gpu_issue_6 Memcheck:Addr8 fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_7 Memcheck:Addr4 fun:_ZNK7SkPoint24distanceToLineBetweenSqdERKS_S1_PNS_4SideE fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_8 Memcheck:Addr4 fun:_ZN24GrAAHairLinePathRenderer14createLineGeomERK6SkPathP12GrDrawTargetRK8SkTArrayI7SkPointLb1EEiPNS3_19AutoReleaseGeometryEP6SkRect } { gpu_issue_9 Memcheck:Addr2 fun:_ZN21GrDefaultPathRenderer10createGeomERK6SkPathRK11SkStrokeRecfP12GrDrawTargetP15GrPrimitiveTypePiSA_PNS6_19AutoReleaseGeometryE } { gpu_issue_10 Memcheck:Addr4 fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_11 Memcheck:Addr2 fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_12 Memcheck:Addr8 fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_13 Memcheck:Addr4 fun:_ZNK7SkPoint24distanceToLineBetweenSqdERKS_S1_PNS_4SideE fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_14 Memcheck:Addr4 fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb } { gpu_issue_15 Memcheck:Addr2 fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb } { libjpeg_turbo_bug4550_1 Memcheck:Cond fun:_Z26S32A_Opaque_BlitRow32_SSE4PjPKjij fun:_ZN14Sprite_D32_S328blitRectEiiii } { libjpeg_turbo_bug4550_2 Memcheck:Cond fun:_ZL15S32A_D565_BlendPtPKjijii fun:_ZN26Sprite_D16_S32_BlitRowProc8blitRectEiiii } { libjpeg_turbo_bug4550_3 Memcheck:Cond fun:_ZN12_GLOBAL__N_120ConvolveHorizontallyILb0EEEvPKhRK21SkConvolutionFilter1DPh fun:_Z14BGRAConvolve2DPKhibRK21SkConvolutionFilter1DS3_iPhRK18SkConvolutionProcsb } #Something odd is happening in SkRasterPipeline when called by GrConvertPixels and GrClearImage. #It seems bogus after investigation. MSAN/ASAN have no complaints. It's complaining about #conditional jump or use of var that is "uninitialized" but it definitely is. { grconvertpixels_rasterpipeline Memcheck:Cond ... fun:_ZNK16SkRasterPipeline3runEmmmm fun:_Z15GrConvertPixelsRK11GrImageInfoPvmS1_PKvmb ... } { grconvertpixels_rasterpipeline Memcheck:Value8 ... fun:_ZNK16SkRasterPipeline3runEmmmm fun:_Z15GrConvertPixelsRK11GrImageInfoPvmS1_PKvmb ... } { grclearimage_rasterpipeline Memcheck:Cond ... fun:_ZNK16SkRasterPipeline3runEmmmm fun:_Z12GrClearImageRK11GrImageInfoPvm8SkRGBA4fIL11SkAlphaType3EE ... } { grclearimage_rasterpipeline Memcheck:Value8 ... fun:_ZNK16SkRasterPipeline3runEmmmm fun:_Z12GrClearImageRK11GrImageInfoPvm8SkRGBA4fIL11SkAlphaType3EE ... } { make_get_error_with_random_oom1 Memcheck:Leak match-leak-kinds: definite ... fun:_Z30make_get_error_with_random_oom12GrGLFunctionIFjvEE ... } { make_get_error_with_random_oom2 Memcheck:Leak match-leak-kinds: definite ... fun:make_get_error_with_random_oom ... }