This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5729: Still reachable memory leak with OpenCL examples on BeagleBone AI

Part Number: AM5729

Hi all,

Like the title says, I have a BeagleBone AI running the latest (as of writing) [Debian Buster image](https://beagleboard.org/latest-images). It seems there is a memory handling issue when I try to run the openCL examples found under `/usr/share/ti/examples/opencl`. See the attached valgrind output.

Is this a known issue, or is this something I need to take up with the BeagleBone folks?

Thanks,

Matt

opencl_fftexample_valgrind.txt
debian ~/opencl/examples_buster/dsplib_fft $ sudo valgrind ./dsplib_fft
==1292== Memcheck, a memory error detector
==1292== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==1292== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==1292== Command: ./dsplib_fft
==1292==
==1292== Warning: noted but unhandled ioctl 0xfe08 with no size/direction hints.
==1292==    This could cause spurious value errors to appear.
==1292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4FC0776: CMEM_init (in /usr/lib/libticmem.so.1.0.0)
==1292==
==1292== Warning: noted but unhandled ioctl 0xfe0b with no size/direction hints.
==1292==    This could cause spurious value errors to appear.
==1292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==1292== Warning: noted but unhandled ioctl 0xfe09 with no size/direction hints.
==1292==    This could cause spurious value errors to appear.
==1292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x49345FC: cmem_init (shmem_init_policy_cmem.cpp:93)
==1292==    by 0x49345FC: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (shmem_init_policy_cmem.cpp:45)
==1292==    by 0x493F2AB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (shared_memory_provider.cpp:28)
==1292==    by 0x4930041: tiocl::SharedMemoryProviderFactory::CreateSharedMemoryProvider(unsigned char) (shmem_provider_factory.cpp:50)
==1292==    by 0x490DE0F: Coal::Platform::Platform() (platform.cpp:102)
==1292==    by 0x48FE2A7: Create (Singleton.h:233)
==1292==    by 0x48FE2A7: Loki::SingletonHolder<Coal::Platform, Loki::CreateUsingNew, Loki::NoDestroy, Loki::ClassLevelLockable, Loki::Mutex>::MakeInstance() (Singleton.h:821)
==1292==    by 0x490213D: Instance (Singleton.h:791)
==1292==    by 0x490213D: getDspDevice (api_memory.cpp:480)
==1292==    by 0x49022BD: clMalloc (api_memory.cpp:502)
==1292==    by 0x49022BD: __malloc_ddr (api_memory.cpp:521)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934620: cmem_init (shmem_init_policy_cmem.cpp:134)
==1292==    by 0x4934620: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (shmem_init_policy_cmem.cpp:45)
==1292==    by 0x493F2AB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (shared_memory_provider.cpp:28)
==1292==    by 0x4930041: tiocl::SharedMemoryProviderFactory::CreateSharedMemoryProvider(unsigned char) (shmem_provider_factory.cpp:50)
==1292==    by 0x490DE0F: Coal::Platform::Platform() (platform.cpp:102)
==1292==    by 0x48FE2A7: Create (Singleton.h:233)
==1292==    by 0x48FE2A7: Loki::SingletonHolder<Coal::Platform, Loki::CreateUsingNew, Loki::NoDestroy, Loki::ClassLevelLockable, Loki::Mutex>::MakeInstance() (Singleton.h:821)
==1292==    by 0x490213D: Instance (Singleton.h:791)
==1292==    by 0x490213D: getDspDevice (api_memory.cpp:480)
==1292==    by 0x49022BD: clMalloc (api_memory.cpp:502)
==1292==    by 0x49022BD: __malloc_ddr (api_memory.cpp:521)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x493462C: cmem_init (shmem_init_policy_cmem.cpp:146)
==1292==    by 0x493462C: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (shmem_init_policy_cmem.cpp:45)
==1292==    by 0x493F2AB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (shared_memory_provider.cpp:28)
==1292==    by 0x4930041: tiocl::SharedMemoryProviderFactory::CreateSharedMemoryProvider(unsigned char) (shmem_provider_factory.cpp:50)
==1292==    by 0x490DE0F: Coal::Platform::Platform() (platform.cpp:102)
==1292==    by 0x48FE2A7: Create (Singleton.h:233)
==1292==    by 0x48FE2A7: Loki::SingletonHolder<Coal::Platform, Loki::CreateUsingNew, Loki::NoDestroy, Loki::ClassLevelLockable, Loki::Mutex>::MakeInstance() (Singleton.h:821)
==1292==    by 0x490213D: Instance (Singleton.h:791)
==1292==    by 0x490213D: getDspDevice (api_memory.cpp:480)
==1292==    by 0x49022BD: clMalloc (api_memory.cpp:502)
==1292==    by 0x49022BD: __malloc_ddr (api_memory.cpp:521)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4DBEEF4: mmap64 (mmap64.c:44)
==1292==    by 0x4FC0053: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
==1292==
==1292== Syscall param mmap2(length) contains uninitialised byte(s)
==1292==    at 0x4D3E746: __libc_do_syscall (libc-do-syscall.S:47)
==1292==    by 0x4DBEF05: mmap64 (mmap64.c:49)
==1292==    by 0x4FC0053: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
==1292==
==1292== Syscall param mmap2(offset) contains uninitialised byte(s)
==1292==    at 0x4D3E746: __libc_do_syscall (libc-do-syscall.S:47)
==1292==    by 0x4DBEF05: mmap64 (mmap64.c:49)
==1292==    by 0x4FC0053: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
==1292==
==1292== Warning: set address range perms: large range [0x5417000, 0x1b417000) (defined)
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x493E802: utility::HeapManager<unsigned long long, unsigned long long, utility::MultiProcess<unsigned long long, unsigned long long> >::configure(unsigned long long, unsigned long long, unsigned long long) (heap_manager.h:367)
==1292==    by 0x493F33F: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (shared_memory_provider.cpp:47)
==1292==    by 0x4930041: tiocl::SharedMemoryProviderFactory::CreateSharedMemoryProvider(unsigned char) (shmem_provider_factory.cpp:50)
==1292==    by 0x490DE0F: Coal::Platform::Platform() (platform.cpp:102)
==1292==    by 0x48FE2A7: Create (Singleton.h:233)
==1292==    by 0x48FE2A7: Loki::SingletonHolder<Coal::Platform, Loki::CreateUsingNew, Loki::NoDestroy, Loki::ClassLevelLockable, Loki::Mutex>::MakeInstance() (Singleton.h:821)
==1292==    by 0x490213D: Instance (Singleton.h:791)
==1292==    by 0x490213D: getDspDevice (api_memory.cpp:480)
==1292==    by 0x49022BD: clMalloc (api_memory.cpp:502)
==1292==    by 0x49022BD: __malloc_ddr (api_memory.cpp:521)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x493E802: utility::HeapManager<unsigned long long, unsigned long long, utility::MultiProcess<unsigned long long, unsigned long long> >::configure(unsigned long long, unsigned long long, unsigned long long) (heap_manager.h:367)
==1292==    by 0x493F2EB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (shared_memory_provider.cpp:38)
==1292==    by 0x4930041: tiocl::SharedMemoryProviderFactory::CreateSharedMemoryProvider(unsigned char) (shmem_provider_factory.cpp:50)
==1292==    by 0x490DE0F: Coal::Platform::Platform() (platform.cpp:102)
==1292==    by 0x48FE2A7: Create (Singleton.h:233)
==1292==    by 0x48FE2A7: Loki::SingletonHolder<Coal::Platform, Loki::CreateUsingNew, Loki::NoDestroy, Loki::ClassLevelLockable, Loki::Mutex>::MakeInstance() (Singleton.h:821)
==1292==    by 0x490213D: Instance (Singleton.h:791)
==1292==    by 0x490213D: getDspDevice (api_memory.cpp:480)
==1292==    by 0x49022BD: clMalloc (api_memory.cpp:502)
==1292==    by 0x49022BD: __malloc_ddr (api_memory.cpp:521)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Syscall param write(buf) points to uninitialised byte(s)
==1292==    at 0x4D3E746: __libc_do_syscall (libc-do-syscall.S:47)
==1292==    by 0x4DB55B1: write (write.c:26)
==1292==    by 0x4D76B65: _IO_file_write@@GLIBC_2.4 (fileops.c:1188)
==1292==    by 0x4D761AB: new_do_write (fileops.c:456)
==1292==    by 0x4D776A9: _IO_new_do_write (fileops.c:433)
==1292==    by 0x4D776A9: _IO_do_write@@GLIBC_2.4 (fileops.c:430)
==1292==    by 0x4D760D7: _IO_file_sync@@GLIBC_2.4 (fileops.c:806)
==1292==    by 0x4D6E47D: fflush (iofflush.c:40)
==1292==    by 0x4F95E29: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
==1292==  Address 0x53e7534 is 4 bytes inside a block of size 4,096 alloc'd
==1292==    at 0x483F5C8: malloc (vg_replace_malloc.c:299)
==1292==    by 0x4D6DFFD: _IO_file_doallocate (filedoalloc.c:101)
==1292==    by 0x4D78267: _IO_doallocbuf (genops.c:347)
==1292==    by 0x4D779DD: _IO_file_overflow@@GLIBC_2.4 (fileops.c:752)
==1292==    by 0x4D76FCF: _IO_new_file_xsputn (fileops.c:1251)
==1292==    by 0x4D76FCF: _IO_file_xsputn@@GLIBC_2.4 (fileops.c:1204)
==1292==    by 0x4D6F01D: fwrite (iofwrite.c:39)
==1292==    by 0x4F95E0B: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
==1292==
==1292== Syscall param write(buf) points to uninitialised byte(s)
==1292==    at 0x4D3E746: __libc_do_syscall (libc-do-syscall.S:47)
==1292==    by 0x4DB55D7: __libc_write (write.c:26)
==1292==    by 0x4DB55D7: write (write.c:24)
==1292==    by 0x4D76B65: _IO_file_write@@GLIBC_2.4 (fileops.c:1188)
==1292==    by 0x4D761AB: new_do_write (fileops.c:456)
==1292==    by 0x4D776A9: _IO_new_do_write (fileops.c:433)
==1292==    by 0x4D776A9: _IO_do_write@@GLIBC_2.4 (fileops.c:430)
==1292==    by 0x4D760D7: _IO_file_sync@@GLIBC_2.4 (fileops.c:806)
==1292==    by 0x4D6E47D: fflush (iofflush.c:40)
==1292==    by 0x4F95E29: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
==1292==  Address 0x53e753a is 10 bytes inside a block of size 4,096 alloc'd
==1292==    at 0x483F5C8: malloc (vg_replace_malloc.c:299)
==1292==    by 0x4D6DFFD: _IO_file_doallocate (filedoalloc.c:101)
==1292==    by 0x4D78267: _IO_doallocbuf (genops.c:347)
==1292==    by 0x4D779DD: _IO_file_overflow@@GLIBC_2.4 (fileops.c:752)
==1292==    by 0x4D76FCF: _IO_new_file_xsputn (fileops.c:1251)
==1292==    by 0x4D76FCF: _IO_file_xsputn@@GLIBC_2.4 (fileops.c:1204)
==1292==    by 0x4D6F01D: fwrite (iofwrite.c:39)
==1292==    by 0x4F95E0B: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
==1292==
==1292== Syscall param socketcall.send(msg) points to uninitialised byte(s)
==1292==    at 0x4D3E746: __libc_do_syscall (libc-do-syscall.S:47)
==1292==    by 0x4DC24BF: __libc_send (send.c:26)
==1292==    by 0x4DC24BF: send (send.c:23)
==1292==    by 0x4FAA36D: TransportRpmsg_put (in /usr/lib/libtitransportrpmsg.so.1.0.0)
==1292==  Address 0x53eb8c8 is 8 bytes inside a block of size 312 alloc'd
==1292==    at 0x483F5C8: malloc (vg_replace_malloc.c:299)
==1292==    by 0x4F7DECD: MessageQ_alloc (in /usr/lib/libtiipc.so.1.0.0)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934941: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:49)
==1292==    by 0x4936F5D: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (shared_memory_provider.cpp:225)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934B8E: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (memory_provider_cmem.cpp:175)
==1292==    by 0x4934BE3: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (memory_provider_cmem.cpp:53)
==1292==    by 0x4934953: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:50)
==1292==    by 0x4936F5D: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (shared_memory_provider.cpp:225)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934BC4: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (memory_provider_cmem.cpp:175)
==1292==    by 0x4934BE3: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (memory_provider_cmem.cpp:53)
==1292==    by 0x4934953: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:50)
==1292==    by 0x4936F5D: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (shared_memory_provider.cpp:225)
==1292==    by 0x10929F: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934941: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:49)
==1292==    by 0x4936F5D: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (shared_memory_provider.cpp:225)
==1292==    by 0x1092B5: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934941: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:49)
==1292==    by 0x4936F5D: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (shared_memory_provider.cpp:225)
==1292==    by 0x1092C5: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
Offloading FFT (SP,Complex) of 64 channels, each with 4K elements...

==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934887: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (shmem_rw_policy_cmem.cpp:20)
==1292==    by 0x4923837: DLIF_write (dload.cpp:227)
==1292==    by 0x4A98FC7: write_segments (dload.c:2163)
==1292==    by 0x4A98FC7: process_dynamic_module_relocations (dload.c:2337)
==1292==    by 0x4A98FC7: relocate_dependency_graph_modules (dload.c:2626)
==1292==    by 0x4A98FC7: DLOAD_load (dload.c:2880)
==1292==    by 0x49235AF: tiocl::DLOAD::LoadProgram(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (dload.cpp:72)
==1292==    by 0x491BA93: Coal::DSPProgram::load() (program.cpp:113)
==1292==    by 0x491C0B9: Coal::DSPDevice::initEventDeviceData(Coal::Event*) (device.cpp:214)
==1292==    by 0x49033BD: Coal::CommandQueue::queueEvent(Coal::Event*) (commandqueue.cpp:245)
==1292==    by 0x49018D3: queueEvent (api_enqueue.cpp:71)
==1292==    by 0x49018D3: clEnqueueNDRangeKernel (api_enqueue.cpp:815)
==1292==    by 0x10AC9D: cl::CommandQueue::enqueueNDRangeKernel(cl::Kernel const&, cl::NDRange const&, cl::NDRange const&, cl::NDRange const&, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934B8E: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (memory_provider_cmem.cpp:175)
==1292==    by 0x4934BE3: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (memory_provider_cmem.cpp:53)
==1292==    by 0x4934899: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (shmem_rw_policy_cmem.cpp:21)
==1292==    by 0x4923837: DLIF_write (dload.cpp:227)
==1292==    by 0x4A98FC7: write_segments (dload.c:2163)
==1292==    by 0x4A98FC7: process_dynamic_module_relocations (dload.c:2337)
==1292==    by 0x4A98FC7: relocate_dependency_graph_modules (dload.c:2626)
==1292==    by 0x4A98FC7: DLOAD_load (dload.c:2880)
==1292==    by 0x49235AF: tiocl::DLOAD::LoadProgram(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (dload.cpp:72)
==1292==    by 0x491BA93: Coal::DSPProgram::load() (program.cpp:113)
==1292==    by 0x491C0B9: Coal::DSPDevice::initEventDeviceData(Coal::Event*) (device.cpp:214)
==1292==    by 0x49033BD: Coal::CommandQueue::queueEvent(Coal::Event*) (commandqueue.cpp:245)
==1292==    by 0x49018D3: queueEvent (api_enqueue.cpp:71)
==1292==    by 0x49018D3: clEnqueueNDRangeKernel (api_enqueue.cpp:815)
==1292==    by 0x10AC9D: cl::CommandQueue::enqueueNDRangeKernel(cl::Kernel const&, cl::NDRange const&, cl::NDRange const&, cl::NDRange const&, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934BC4: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (memory_provider_cmem.cpp:175)
==1292==    by 0x4934BE3: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (memory_provider_cmem.cpp:53)
==1292==    by 0x4934899: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (shmem_rw_policy_cmem.cpp:21)
==1292==    by 0x4923837: DLIF_write (dload.cpp:227)
==1292==    by 0x4A98FC7: write_segments (dload.c:2163)
==1292==    by 0x4A98FC7: process_dynamic_module_relocations (dload.c:2337)
==1292==    by 0x4A98FC7: relocate_dependency_graph_modules (dload.c:2626)
==1292==    by 0x4A98FC7: DLOAD_load (dload.c:2880)
==1292==    by 0x49235AF: tiocl::DLOAD::LoadProgram(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (dload.cpp:72)
==1292==    by 0x491BA93: Coal::DSPProgram::load() (program.cpp:113)
==1292==    by 0x491C0B9: Coal::DSPDevice::initEventDeviceData(Coal::Event*) (device.cpp:214)
==1292==    by 0x49033BD: Coal::CommandQueue::queueEvent(Coal::Event*) (commandqueue.cpp:245)
==1292==    by 0x49018D3: queueEvent (api_enqueue.cpp:71)
==1292==    by 0x49018D3: clEnqueueNDRangeKernel (api_enqueue.cpp:815)
==1292==    by 0x10AC9D: cl::CommandQueue::enqueueNDRangeKernel(cl::Kernel const&, cl::NDRange const&, cl::NDRange const&, cl::NDRange const&, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Warning: noted but unhandled ioctl 0x1fe07 with no size/direction hints.
==1292==    This could cause spurious value errors to appear.
==1292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
loading program: 1229910 usecs
==1292== Thread 3:
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4935017: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheWb(unsigned long long, void*, unsigned int) (shared_memory_provider.cpp:299)
==1292==    by 0x491F68B: Coal::DSPKernelEvent::flush_special_use_host_ptr_buffers() (kernel.cpp:1115)
==1292==    by 0x49203EB: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:830)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4935033: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheWbInv(unsigned long long, void*, unsigned int) (shared_memory_provider.cpp:307)
==1292==    by 0x491F68B: Coal::DSPKernelEvent::flush_special_use_host_ptr_buffers() (kernel.cpp:1115)
==1292==    by 0x49203EB: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:830)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Warning: noted but unhandled ioctl 0x3fe07 with no size/direction hints.
==1292==    This could cause spurious value errors to appear.
==1292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==1292== Thread 4:
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934FFB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheInv(unsigned long long, void*, unsigned int) (shared_memory_provider.cpp:291)
==1292==    by 0x491FB75: Coal::DSPKernelEvent::free_tmp_bufs() (kernel.cpp:1311)
==1292==    by 0x4921A67: bool HandleEventCompletion<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:107)
==1292==    by 0x4921FD1: WorkerEventCompletion<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:643)
==1292==    by 0x4921FD1: dsp_worker_event_completion(void*) (worker.cpp:39)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Warning: noted but unhandled ioctl 0x2fe07 with no size/direction hints.
==1292==    This could cause spurious value errors to appear.
==1292==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
fft: 208881 usecs
==1292== Thread 3:
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934941: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:49)
==1292==    by 0x491F73B: Coal::DSPKernelEvent::setup_stack_based_arguments() (kernel.cpp:1220)
==1292==    by 0x492041F: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:844)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B42: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B42: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B42: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934941: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:49)
==1292==    by 0x491F73B: Coal::DSPKernelEvent::setup_stack_based_arguments() (kernel.cpp:1220)
==1292==    by 0x492041F: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:844)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934B8E: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (memory_provider_cmem.cpp:175)
==1292==    by 0x4934BE3: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (memory_provider_cmem.cpp:53)
==1292==    by 0x4934953: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:50)
==1292==    by 0x491F73B: Coal::DSPKernelEvent::setup_stack_based_arguments() (kernel.cpp:1220)
==1292==    by 0x492041F: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:844)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934BC4: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (memory_provider_cmem.cpp:175)
==1292==    by 0x4934BE3: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (memory_provider_cmem.cpp:53)
==1292==    by 0x4934953: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (shmem_rw_policy_cmem.cpp:50)
==1292==    by 0x491F73B: Coal::DSPKernelEvent::setup_stack_based_arguments() (kernel.cpp:1220)
==1292==    by 0x492041F: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:844)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934991: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (shmem_rw_policy_cmem.cpp:61)
==1292==    by 0x491F77D: Coal::DSPKernelEvent::setup_stack_based_arguments() (kernel.cpp:1231)
==1292==    by 0x492041F: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:844)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B42: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B42: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B42: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934991: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (shmem_rw_policy_cmem.cpp:61)
==1292==    by 0x491F77D: Coal::DSPKernelEvent::setup_stack_based_arguments() (kernel.cpp:1231)
==1292==    by 0x492041F: Coal::DSPKernelEvent::run(Coal::Event::Type) (kernel.cpp:844)
==1292==    by 0x4920F69: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (worker.h:600)
==1292==    by 0x49217F5: WorkerEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent> (worker.h:668)
==1292==    by 0x49217F5: dsp_worker_event_dispatch(void*) (worker.cpp:34)
==1292==    by 0x4E26BBD: start_thread (pthread_create.c:486)
==1292==    by 0x4DC162B: ??? (clone.S:73)
==1292==
fft_db: 341133 usecs
==1292== Thread 1:
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934991: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (shmem_rw_policy_cmem.cpp:61)
==1292==    by 0x4934F9B: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clFree(void*) (shared_memory_provider.cpp:256)
==1292==    by 0x1098DF: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934991: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (shmem_rw_policy_cmem.cpp:61)
==1292==    by 0x4934F9B: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clFree(void*) (shared_memory_provider.cpp:256)
==1292==    by 0x1098E5: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4923B0A: IsAddressInRange (memory_range.h:30)
==1292==    by 0x4923B0A: IsAddressInRange (memory_provider_interface.h:64)
==1292==    by 0x4923B0A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (memory_provider_factory.cpp:62)
==1292==    by 0x4934991: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (shmem_rw_policy_cmem.cpp:61)
==1292==    by 0x4934F9B: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clFree(void*) (shared_memory_provider.cpp:256)
==1292==    by 0x1098EB: main (in /home/debian/opencl/examples_buster/dsplib_fft/dsplib_fft)
==1292==
Success!
==1292== Conditional jump or move depends on uninitialised value(s)
==1292==    at 0x4934B3E: tiocl::CMEMMapPolicyPersistent::~CMEMMapPolicyPersistent() (memory_provider_cmem.cpp:146)
==1292==    by 0x4934B69: ~CMEM (memory_provider_cmem.h:47)
==1292==    by 0x4934B69: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::~CMEM() (memory_provider_cmem.h:47)
==1292==    by 0x4923B71: tiocl::MemoryProviderFactory::DestroyMemoryProviders() (memory_provider_factory.cpp:84)
==1292==    by 0x493E697: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::~SharedMemoryProvider() (shared_memory_provider.cpp:75)
==1292==    by 0x493E713: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::~SharedMemoryProvider() (shared_memory_provider.cpp:79)
==1292==    by 0x4930205: tiocl::SharedMemoryProviderFactory::DestroySharedMemoryProviders() (shmem_provider_factory.cpp:63)
==1292==    by 0x490DC67: Coal::Platform::~Platform() (platform.cpp:133)
==1292==    by 0x48FB4BB: __delete_theplatform() (platform.cpp:80)
==1292==    by 0x400B83B: _dl_fini (dl-fini.c:138)
==1292==    by 0x4D4DA97: __run_exit_handlers (exit.c:108)
==1292==    by 0x4D4DB59: exit (exit.c:139)
==1292==    by 0x4D3E527: (below main) (libc-start.c:342)
==1292==
==1292== Syscall param munmap(length) contains uninitialised byte(s)
==1292==    at 0x4DBEF48: munmap (syscall-template.S:78)
==1292==    by 0x4FC008B: CMEM_unmap (in /usr/lib/libticmem.so.1.0.0)
==1292==
==1292== Warning: set address range perms: large range [0x5417000, 0x1b417000) (noaccess)
==1292==
==1292== HEAP SUMMARY:
==1292==     in use at exit: 796 bytes in 11 blocks
==1292==   total heap usage: 12,225 allocs, 12,214 frees, 3,757,228 bytes allocated
==1292==
==1292== LEAK SUMMARY:
==1292==    definitely lost: 0 bytes in 0 blocks
==1292==    indirectly lost: 0 bytes in 0 blocks
==1292==      possibly lost: 0 bytes in 0 blocks
==1292==    still reachable: 796 bytes in 11 blocks
==1292==         suppressed: 0 bytes in 0 blocks
==1292== Reachable blocks (those to which a pointer was found) are not shown.
==1292== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1292==
==1292== For counts of detected and suppressed errors, rerun with: -v
==1292== Use --track-origins=yes to see where uninitialised values come from
==1292== ERROR SUMMARY: 116 errors from 34 contexts (suppressed: 0 from 0)

  • Hi,

    Debian is not supported by TI. Please contact the Debian community on www.beagleboard.org 

  • Hi Biser,

    My apologies - thanks for the suggestion.

    I've been advised to try using the TI Processor SDK image (v06.02) on an SD card, but I'm still getting memory leaks running the same example. See attached.

    Thanks,

    Matt

    EDIT: I should mention that I have not been successful in using v06.03 on an SD card.

    opencl_fftexample_valgrind_tipsdk.txt
    root@am57xx-evm:/usr/share/ti/examples/opencl/dsplib_fft# valgrind ./dsplib_fft
    ==3698== Memcheck, a memory error detector
    ==3698== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==3698== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
    ==3698== Command: ./dsplib_fft
    ==3698==
    ==3698== Warning: noted but unhandled ioctl 0xfe08 with no size/direction hints.
    ==3698==    This could cause spurious value errors to appear.
    ==3698==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4FAF57A: CMEM_init (in /usr/lib/libticmem.so.1.0.0)
    ==3698==
    ==3698== Warning: noted but unhandled ioctl 0xfe0b with no size/direction hints.
    ==3698==    This could cause spurious value errors to appear.
    ==3698==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==3698== Warning: noted but unhandled ioctl 0xfe09 with no size/direction hints.
    ==3698==    This could cause spurious value errors to appear.
    ==3698==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4938FC6: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4941F57: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4938FE6: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4941F57: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4938FF2: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4941F57: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4DC3394: mmap64 (mmap64.c:44)
    ==3698==    by 0x4FAEF8B: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
    ==3698==
    ==3698== Syscall param mmap2(length) contains uninitialised byte(s)
    ==3698==    at 0x4DC33B0: mmap64 (mmap64.c:49)
    ==3698==    by 0x4FAEF8B: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
    ==3698==
    ==3698== Syscall param mmap2(offset) contains uninitialised byte(s)
    ==3698==    at 0x4DC33B0: mmap64 (mmap64.c:49)
    ==3698==    by 0x4FAEF8B: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
    ==3698==
    ==3698== Warning: set address range perms: large range [0x5401000, 0x1b401000) (defined)
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4941618: ??? (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Syscall param write(buf) points to uninitialised byte(s)
    ==3698==    at 0x4DB622C: write (write.c:26)
    ==3698==    by 0x4D5CBF7: _IO_file_write@@GLIBC_2.4 (fileops.c:1188)
    ==3698==    by 0x4D5BE27: new_do_write (fileops.c:456)
    ==3698==    by 0x4D5DD0B: _IO_new_do_write (fileops.c:433)
    ==3698==    by 0x4D5DD0B: _IO_do_write@@GLIBC_2.4 (fileops.c:430)
    ==3698==    by 0x4D5BCEF: _IO_file_sync@@GLIBC_2.4 (fileops.c:806)
    ==3698==    by 0x4D4FEF7: fflush (iofflush.c:40)
    ==3698==    by 0x4F84D8D: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==3698==  Address 0x53d16c4 is 4 bytes inside a block of size 4,096 alloc'd
    ==3698==    at 0x4847988: malloc (vg_replace_malloc.c:299)
    ==3698==    by 0x4D4F847: _IO_file_doallocate (filedoalloc.c:101)
    ==3698==    by 0x4D5EF0F: _IO_doallocbuf (genops.c:347)
    ==3698==    by 0x4D5E207: _IO_file_overflow@@GLIBC_2.4 (fileops.c:752)
    ==3698==    by 0x4D5D26B: _IO_new_file_xsputn (fileops.c:1251)
    ==3698==    by 0x4D5D26B: _IO_file_xsputn@@GLIBC_2.4 (fileops.c:1204)
    ==3698==    by 0x4D511DB: fwrite (iofwrite.c:39)
    ==3698==    by 0x4F84D6F: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==3698==
    ==3698== Syscall param write(buf) points to uninitialised byte(s)
    ==3698==    at 0x4DB6268: __libc_write (write.c:26)
    ==3698==    by 0x4DB6268: write (write.c:24)
    ==3698==    by 0x4D5CBF7: _IO_file_write@@GLIBC_2.4 (fileops.c:1188)
    ==3698==    by 0x4D5BE27: new_do_write (fileops.c:456)
    ==3698==    by 0x4D5DD0B: _IO_new_do_write (fileops.c:433)
    ==3698==    by 0x4D5DD0B: _IO_do_write@@GLIBC_2.4 (fileops.c:430)
    ==3698==    by 0x4D5BCEF: _IO_file_sync@@GLIBC_2.4 (fileops.c:806)
    ==3698==    by 0x4D4FEF7: fflush (iofflush.c:40)
    ==3698==    by 0x4F84D8D: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==3698==  Address 0x53d16ca is 10 bytes inside a block of size 4,096 alloc'd
    ==3698==    at 0x4847988: malloc (vg_replace_malloc.c:299)
    ==3698==    by 0x4D4F847: _IO_file_doallocate (filedoalloc.c:101)
    ==3698==    by 0x4D5EF0F: _IO_doallocbuf (genops.c:347)
    ==3698==    by 0x4D5E207: _IO_file_overflow@@GLIBC_2.4 (fileops.c:752)
    ==3698==    by 0x4D5D26B: _IO_new_file_xsputn (fileops.c:1251)
    ==3698==    by 0x4D5D26B: _IO_file_xsputn@@GLIBC_2.4 (fileops.c:1204)
    ==3698==    by 0x4D511DB: fwrite (iofwrite.c:39)
    ==3698==    by 0x4F84D6F: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==3698==
    ==3698== Syscall param socketcall.send(msg) points to uninitialised byte(s)
    ==3698==    at 0x4DC7C0C: __libc_send (send.c:26)
    ==3698==    by 0x4DC7C0C: send (send.c:23)
    ==3698==    by 0x4F99283: TransportRpmsg_put (in /usr/lib/libtitransportrpmsg.so.1.0.0)
    ==3698==  Address 0x53d5a60 is 8 bytes inside a block of size 312 alloc'd
    ==3698==    at 0x4847988: malloc (vg_replace_malloc.c:299)
    ==3698==    by 0x4F6CE45: MessageQ_alloc (in /usr/lib/libtiipc.so.1.0.0)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392D5: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493B1C3: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4939520: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493B1C3: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4939552: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493B1C3: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    Offloading FFT (SP,Complex) of 64 channels, each with 4K elements...
    
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493921B: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4928AE1: DLIF_write (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4A7B7EF: DLOAD_load (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4939520: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493922D: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4928AE1: DLIF_write (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4A7B7EF: DLOAD_load (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4939552: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493922D: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4928AE1: DLIF_write (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4A7B7EF: DLOAD_load (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Warning: noted but unhandled ioctl 0x1fe07 with no size/direction hints.
    ==3698==    This could cause spurious value errors to appear.
    ==3698==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    loading program: 424837 usecs
    ==3698== Thread 3:
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493999F: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheWb(unsigned long long, void*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924C0D: Coal::DSPKernelEvent::flush_special_use_host_ptr_buffers() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4925907: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49399BB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheWbInv(unsigned long long, void*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924C0D: Coal::DSPKernelEvent::flush_special_use_host_ptr_buffers() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4925907: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Warning: noted but unhandled ioctl 0x3fe07 with no size/direction hints.
    ==3698==    This could cause spurious value errors to appear.
    ==3698==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==3698== Thread 4:
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4939983: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheInv(unsigned long long, void*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49250BF: Coal::DSPKernelEvent::free_tmp_bufs() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926F17: bool HandleEventCompletion<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Warning: noted but unhandled ioctl 0x2fe07 with no size/direction hints.
    ==3698==    This could cause spurious value errors to appear.
    ==3698==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    fft: 81599 usecs
    ==3698== Thread 3:
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392D5: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D64: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392D5: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4939520: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4939552: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4939325: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924CF5: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D64: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4939325: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4924CF5: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==3698==    by 0x4DC6917: ??? (clone.S:73)
    ==3698==
    fft_db: 115390 usecs
    ==3698== Thread 1:
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4939325: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==    by 0x4939923: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clFree(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    Success!
    ==3698== Conditional jump or move depends on uninitialised value(s)
    ==3698==    at 0x49394D2: tiocl::CMEMMapPolicyPersistent::~CMEMMapPolicyPersistent() (in /usr/lib/libOpenCL.so.1.2.00)
    ==3698==
    ==3698== Syscall param munmap(length) contains uninitialised byte(s)
    ==3698==    at 0x4DC340C: munmap (syscall-template.S:78)
    ==3698==    by 0x4FAEFC3: CMEM_unmap (in /usr/lib/libticmem.so.1.0.0)
    ==3698==
    ==3698== Warning: set address range perms: large range [0x5401000, 0x1b401000) (noaccess)
    ==3698==
    ==3698== HEAP SUMMARY:
    ==3698==     in use at exit: 962,211 bytes in 12 blocks
    ==3698==   total heap usage: 12,154 allocs, 12,142 frees, 3,757,913 bytes allocated
    ==3698==
    ==3698== LEAK SUMMARY:
    ==3698==    definitely lost: 0 bytes in 0 blocks
    ==3698==    indirectly lost: 0 bytes in 0 blocks
    ==3698==      possibly lost: 961,415 bytes in 1 blocks
    ==3698==    still reachable: 796 bytes in 11 blocks
    ==3698==         suppressed: 0 bytes in 0 blocks
    ==3698== Rerun with --leak-check=full to see details of leaked memory
    ==3698==
    ==3698== For counts of detected and suppressed errors, rerun with: -v
    ==3698== Use --track-origins=yes to see where uninitialised values come from
    ==3698== ERROR SUMMARY: 116 errors from 29 contexts (suppressed: 0 from 0)
    

  • I was finally able to load the v6.03 SDK onto an SD card and try again, and I get the same memory leak as in v6.02. Attached.

    opencl_fftexample_valgrind_tipsdk_0603.txt
    root@am57xx-evm:/usr/share/ti/examples/opencl/dsplib_fft# valgrind ./dsplib_fft
    ==1299== Memcheck, a memory error detector
    ==1299== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==1299== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
    ==1299== Command: ./dsplib_fft
    ==1299==
    ==1299== Warning: noted but unhandled ioctl 0xfe08 with no size/direction hints.
    ==1299==    This could cause spurious value errors to appear.
    ==1299==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4FAF57A: CMEM_init (in /usr/lib/libticmem.so.1.0.0)
    ==1299==
    ==1299== Warning: noted but unhandled ioctl 0xfe0b with no size/direction hints.
    ==1299==    This could cause spurious value errors to appear.
    ==1299==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==1299== Warning: noted but unhandled ioctl 0xfe09 with no size/direction hints.
    ==1299==    This could cause spurious value errors to appear.
    ==1299==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4938FC6: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4941F57: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4938FE6: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4941F57: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4938FF2: tiocl::InitializationPolicyCMEM::DiscoverMemoryRanges(std::vector<tiocl::MemoryRange, std::allocator<tiocl::MemoryRange> >&) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4941F57: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::SharedMemoryProvider(unsigned char) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4DC3394: mmap64 (mmap64.c:44)
    ==1299==    by 0x4FAEF8B: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
    ==1299==
    ==1299== Syscall param mmap2(length) contains uninitialised byte(s)
    ==1299==    at 0x4DC33B0: mmap64 (mmap64.c:49)
    ==1299==    by 0x4FAEF8B: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
    ==1299==
    ==1299== Syscall param mmap2(offset) contains uninitialised byte(s)
    ==1299==    at 0x4DC33B0: mmap64 (mmap64.c:49)
    ==1299==    by 0x4FAEF8B: CMEM_map (in /usr/lib/libticmem.so.1.0.0)
    ==1299==
    ==1299== Warning: set address range perms: large range [0x5401000, 0x1b401000) (defined)
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4941618: ??? (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Syscall param write(buf) points to uninitialised byte(s)
    ==1299==    at 0x4DB622C: write (write.c:26)
    ==1299==    by 0x4D5CBF7: _IO_file_write@@GLIBC_2.4 (fileops.c:1188)
    ==1299==    by 0x4D5BE27: new_do_write (fileops.c:456)
    ==1299==    by 0x4D5DD0B: _IO_new_do_write (fileops.c:433)
    ==1299==    by 0x4D5DD0B: _IO_do_write@@GLIBC_2.4 (fileops.c:430)
    ==1299==    by 0x4D5BCEF: _IO_file_sync@@GLIBC_2.4 (fileops.c:806)
    ==1299==    by 0x4D4FEF7: fflush (iofflush.c:40)
    ==1299==    by 0x4F84D8D: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==1299==  Address 0x53d16c4 is 4 bytes inside a block of size 4,096 alloc'd
    ==1299==    at 0x4847988: malloc (vg_replace_malloc.c:299)
    ==1299==    by 0x4D4F847: _IO_file_doallocate (filedoalloc.c:101)
    ==1299==    by 0x4D5EF0F: _IO_doallocbuf (genops.c:347)
    ==1299==    by 0x4D5E207: _IO_file_overflow@@GLIBC_2.4 (fileops.c:752)
    ==1299==    by 0x4D5D26B: _IO_new_file_xsputn (fileops.c:1251)
    ==1299==    by 0x4D5D26B: _IO_file_xsputn@@GLIBC_2.4 (fileops.c:1204)
    ==1299==    by 0x4D511DB: fwrite (iofwrite.c:39)
    ==1299==    by 0x4F84D6F: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==1299==
    ==1299== Syscall param write(buf) points to uninitialised byte(s)
    ==1299==    at 0x4DB6268: __libc_write (write.c:26)
    ==1299==    by 0x4DB6268: write (write.c:24)
    ==1299==    by 0x4D5CBF7: _IO_file_write@@GLIBC_2.4 (fileops.c:1188)
    ==1299==    by 0x4D5BE27: new_do_write (fileops.c:456)
    ==1299==    by 0x4D5DD0B: _IO_new_do_write (fileops.c:433)
    ==1299==    by 0x4D5DD0B: _IO_do_write@@GLIBC_2.4 (fileops.c:430)
    ==1299==    by 0x4D5BCEF: _IO_file_sync@@GLIBC_2.4 (fileops.c:806)
    ==1299==    by 0x4D4FEF7: fflush (iofflush.c:40)
    ==1299==    by 0x4F84D8D: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==1299==  Address 0x53d16ca is 10 bytes inside a block of size 4,096 alloc'd
    ==1299==    at 0x4847988: malloc (vg_replace_malloc.c:299)
    ==1299==    by 0x4D4F847: _IO_file_doallocate (filedoalloc.c:101)
    ==1299==    by 0x4D5EF0F: _IO_doallocbuf (genops.c:347)
    ==1299==    by 0x4D5E207: _IO_file_overflow@@GLIBC_2.4 (fileops.c:752)
    ==1299==    by 0x4D5D26B: _IO_new_file_xsputn (fileops.c:1251)
    ==1299==    by 0x4D5D26B: _IO_file_xsputn@@GLIBC_2.4 (fileops.c:1204)
    ==1299==    by 0x4D511DB: fwrite (iofwrite.c:39)
    ==1299==    by 0x4F84D6F: LAD_putCommand (in /usr/lib/libtiipcutils.so.1.0.0)
    ==1299==
    ==1299== Syscall param socketcall.send(msg) points to uninitialised byte(s)
    ==1299==    at 0x4DC7C0C: __libc_send (send.c:26)
    ==1299==    by 0x4DC7C0C: send (send.c:23)
    ==1299==    by 0x4F99283: TransportRpmsg_put (in /usr/lib/libtitransportrpmsg.so.1.0.0)
    ==1299==  Address 0x53d5a60 is 8 bytes inside a block of size 312 alloc'd
    ==1299==    at 0x4847988: malloc (vg_replace_malloc.c:299)
    ==1299==    by 0x4F6CE45: MessageQ_alloc (in /usr/lib/libtiipc.so.1.0.0)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392D5: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493B1C3: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4939520: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493B1C3: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4939552: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493B1C3: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clMalloc(unsigned int, tiocl::MemoryRange::Location) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    Offloading FFT (SP,Complex) of 64 channels, each with 4K elements...
    
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493921B: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4928AE1: DLIF_write (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4A7B7EF: DLOAD_load (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4939520: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493922D: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4928AE1: DLIF_write (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4A7B7EF: DLOAD_load (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4939552: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493922D: ReadWritePolicyCMEM::Write(unsigned long long, unsigned char*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4928AE1: DLIF_write (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4A7B7EF: DLOAD_load (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Warning: noted but unhandled ioctl 0x1fe07 with no size/direction hints.
    ==1299==    This could cause spurious value errors to appear.
    ==1299==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    loading program: 391266 usecs
    ==1299== Thread 3:
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493999F: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheWb(unsigned long long, void*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924C0D: Coal::DSPKernelEvent::flush_special_use_host_ptr_buffers() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4925907: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49399BB: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheWbInv(unsigned long long, void*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924C0D: Coal::DSPKernelEvent::flush_special_use_host_ptr_buffers() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4925907: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Warning: noted but unhandled ioctl 0x3fe07 with no size/direction hints.
    ==1299==    This could cause spurious value errors to appear.
    ==1299==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    ==1299== Thread 4:
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4939983: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::CacheInv(unsigned long long, void*, unsigned int) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49250BF: Coal::DSPKernelEvent::free_tmp_bufs() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926F17: bool HandleEventCompletion<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Warning: noted but unhandled ioctl 0x2fe07 with no size/direction hints.
    ==1299==    This could cause spurious value errors to appear.
    ==1299==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
    fft: 82665 usecs
    ==1299== Thread 3:
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392D5: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D64: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392D5: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4939520: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4939552: tiocl::CMEMMapPolicyPersistent::Map(unsigned long long, unsigned int) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x493956F: tiocl::CMEM<tiocl::CMEMMapPolicyPersistent>::MapToHostAddressSpace(unsigned long long, unsigned int, bool) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x49392E7: ReadWritePolicyCMEM::Map(unsigned long long, unsigned int, bool, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924CC1: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4939325: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924CF5: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D64: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4939325: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4924CF5: Coal::DSPKernelEvent::setup_stack_based_arguments() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492593B: Coal::DSPKernelEvent::run(Coal::Event::Type) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x492627D: bool HandleEventDispatch<Coal::DSPDevice, Coal::DSPKernelEvent>(Coal::DSPDevice*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4926CC1: dsp_worker_event_dispatch(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4E3E38F: start_thread (pthread_create.c:486)
    ==1299==    by 0x4DC6917: ??? (clone.S:73)
    ==1299==
    fft_db: 115496 usecs
    ==1299== Thread 1:
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x4928D2A: tiocl::MemoryProviderFactory::GetMemoryProvider(unsigned long long) const (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4939325: ReadWritePolicyCMEM::Unmap(void*, unsigned long long, unsigned int, bool) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==    by 0x4939923: tiocl::SharedMemoryProvider<tiocl::InitializationPolicyCMEM, ReadWritePolicyCMEM, HeapsMultiProcessPolicy>::clFree(void*) (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    Success!
    ==1299== Conditional jump or move depends on uninitialised value(s)
    ==1299==    at 0x49394D2: tiocl::CMEMMapPolicyPersistent::~CMEMMapPolicyPersistent() (in /usr/lib/libOpenCL.so.1.2.00)
    ==1299==
    ==1299== Syscall param munmap(length) contains uninitialised byte(s)
    ==1299==    at 0x4DC340C: munmap (syscall-template.S:78)
    ==1299==    by 0x4FAEFC3: CMEM_unmap (in /usr/lib/libticmem.so.1.0.0)
    ==1299==
    ==1299== Warning: set address range perms: large range [0x5401000, 0x1b401000) (noaccess)
    ==1299==
    ==1299== HEAP SUMMARY:
    ==1299==     in use at exit: 962,211 bytes in 12 blocks
    ==1299==   total heap usage: 12,155 allocs, 12,143 frees, 3,757,931 bytes allocated
    ==1299==
    ==1299== LEAK SUMMARY:
    ==1299==    definitely lost: 0 bytes in 0 blocks
    ==1299==    indirectly lost: 0 bytes in 0 blocks
    ==1299==      possibly lost: 961,415 bytes in 1 blocks
    ==1299==    still reachable: 796 bytes in 11 blocks
    ==1299==         suppressed: 0 bytes in 0 blocks
    ==1299== Rerun with --leak-check=full to see details of leaked memory
    ==1299==
    ==1299== For counts of detected and suppressed errors, rerun with: -v
    ==1299== Use --track-origins=yes to see where uninitialised values come from
    ==1299== ERROR SUMMARY: 116 errors from 29 contexts (suppressed: 0 from 0)
    

  • Matt,

    We took a look into your valgrind report:

    ==1299== possibly lost: 961,415 bytes in 1 blocks
    This is from libelf. We did call elf_end() and it did return 0, which means the resources should have been released by libelf. Valgrind did report "possibily." Even if it is not released, the corresponding function is called only once and the memory is one-time allocation per process.

    ==1299== still reachable: 796 bytes in 11 blocks
    These are from various underlying libraries that OpenCL host runtime depends on. For example, inter-processor communication library. These memories are only allocated once per process and they will be deallocated when process terminates. In other words, it doesn’t matter if you run your kernel 100 times or 100 million times, these memory allocations will not change.

    The summary is there should be no concerns here. A "concerning" memory leak would be that the runtime is allocating more and more new memory for the same use, while not releasing old memory as program runs longer and longer. This is not the case for the warnings that are flagged.

    Best regards,

    Dave