Hi everyone. I'm trying Valgrind on a simple CUDA program for CPU memory check (It worked for GPU memcheck when using cuda-memcheck):
``` #include <stdlib.h> int main() { void *dp = NULL; cudaMalloc(&dp, 1024); cudaFree(dp); void *p = NULL; p = malloc(1024); free(p); cudaDeviceReset(); return 0; } ``` The program hangs with many `noted but unhandled ioctl with no size/direction hints` warnings. ``` $ nvcc prog.cu $ valgrind ./a.out ==61517== Memcheck, a memory error detector ==61517== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==61517== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info ==61517== Command: ./a.out ==61517== ==61517== Warning: noted but unhandled ioctl 0x30000001 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: noted but unhandled ioctl 0x27 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: noted but unhandled ioctl 0x7ff with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: noted but unhandled ioctl 0x25 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: noted but unhandled ioctl 0x37 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: noted but unhandled ioctl 0x17 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: set address range perms: large range [0x200000000, 0x300200000) (noaccess) ==61517== Warning: set address range perms: large range [0x7798000, 0x27797000) (noaccess) ==61517== Warning: set address range perms: large range [0x10006000000, 0x10106000000) (noaccess) ==61517== Warning: noted but unhandled ioctl 0x19 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: set address range perms: large range [0x10106000000, 0x10206000000) (noaccess) ==61517== Warning: noted but unhandled ioctl 0x21 with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==61517== Warning: noted but unhandled ioctl 0x1b with no size/direction hints. ==61517== This could cause spurious value errors to appear. ==61517== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ``` I'm also follwing this question[0] to generate Valgrind suppressions, the program hangs again with same warnings. How can I use Valgrind with CUDA correctly? Thanks in advance. I'm using Ubuntu 18.04 + CUDA 9.1 + Valgrind 3.13.0. Best regards, Jiading Guo [0]: https://stackoverflow.com/questions/20593450/valgrind-and-cuda-are-reported-leaks-real _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users