|
From: Alan <al...@me...> - 2003-10-17 15:55:15
|
Hi, I'm trying to use valgrind on a custom image processing program on a laptop with RH 7.2, and NVidia GeForce2Go chipset, and NV's most recent drivers (4496). I get tons of errors from the libGL routines as expected, however setting __GL_FORCE_GENERIC_CPU=1 doesn't seem to help at all! I would test on something more standardized like "glxgears", but unfortunately it isn't in my distribution (perish the thought of upgrading X and all its dependencies from 4.1.0 to current!) and I haven't seen a standalone package to build it from. At the end of this email is the output from a valgrind run (with some extraneous stuff clipped). My questions: 1) If the problem is related to the hardware-based libGL calls from the NV drivers, is there a simple way to turn off hardware acceleration so that valgrind would run without errors? 2) Is this related to special CPU instructions? Why doesn't __GL_FORCE_GENERIC_CPU=1 seem to do anything? 3) Is there a quick/easy way for me to build glxgears to make testing valgrind on GL hardware a bit more uniform (eg, eliminates behavior specific to my image processing program)? Thanks for any insight into this problem and also for the all the effort on valgrind. --Alan BTW, for the records, I don't have the "tls" directory tree. The only files are: [root@ripple root]# locate libGL. /usr/lib/libGL.so /usr/lib/libGL.so.1.0.4496 /usr/lib/libGL.so.1 valgrind output follows: [astein@ripple ~]$ valgrind display 0 0 0 1 ==2551== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux. ==2551== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward. ==2551== Using valgrind-20031012, a program supervision framework for x86-linux.==2551== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward. ==2551== Warning: set address range perms: large range 130834432, a 0, v 0 ==2551== Estimated CPU clock rate is 996 MHz ==2551== For more details, rerun with: -v ==2551== ==2551== Syscall param modify_ldt(ptr)(func=1 or 0x11) contains uninitialised or unaddressable byte(s) ==2551== at 0x404F18D8: (within /usr/lib/libGL.so.1.0.4496) ==2551== Address 0xBFFFF4C0 is on thread 1's stack ==2551== ... ==2551== ==2551== Syscall param ioctl(generic) contains uninitialised or unaddressable byte(s) ==2551== at 0x408AAAC4: __ioctl (in /lib/i686/libc-2.2.4.so) ==2551== by 0x40511649: NvRmAllocRoot (in /usr/lib/libGL.so.1.0.4496) ==2551== by 0x4050BC9E: (within /usr/lib/libGL.so.1.0.4496) ==2551== Address 0xBFFFF120 is on thread 1's stack ==2551== Warning: set address range perms: large range 134217728, a 0, v 0 ==2551== ==2551== Syscall param ioctl(generic) contains uninitialised or unaddressable byte(s) ==2551== at 0x408AAAC4: __ioctl (in /lib/i686/libc-2.2.4.so) ==2551== by 0x405129E7: NvRmConfigGet (in /usr/lib/libGL.so.1.0.4496) ==2551== by 0x4050BDCA: (within /usr/lib/libGL.so.1.0.4496) ==2551== Address 0xBFFFF118 is on thread 1's stack ==2551== ... ==2551== ==2551== Syscall param ioctl(generic) contains uninitialised or unaddressable byte(s) ==2551== at 0x408AAAC4: __ioctl (in /lib/i686/libc-2.2.4.so) ==2551== by 0x405129E7: NvRmConfigGet (in /usr/lib/libGL.so.1.0.4496) ==2551== by 0x40BD5FBE: (within /usr/lib/libGLcore.so.1.0.4496) ==2551== Address 0xBFFFF0CC is on thread 1's stack ==2551== ==2551== Syscall param ioctl(generic) contains uninitialised or unaddressable byte(s) ==2551== at 0x408AAAC4: __ioctl (in /lib/i686/libc-2.2.4.so) ==2551== by 0x405129E7: NvRmConfigGet (in /usr/lib/libGL.so.1.0.4496) ==2551== by 0x40BD600A: (within /usr/lib/libGLcore.so.1.0.4496) ==2551== Address 0xBFFFF0CC is on thread 1's stack ... ==2551== ==2551== Syscall param ioctl(generic) contains uninitialised or unaddressable byte(s) ==2551== at 0x408AAAC4: __ioctl (in /lib/i686/libc-2.2.4.so) ==2551== by 0x405121B7: NvRmFree (in /usr/lib/libGL.so.1.0.4496) ==2551== by 0x40BC4300: __nvsym15143 (in usr/lib/libGLcore.so.1.0.4496) ==2551== Address 0xBFFFF1D0 is on thread 1's stack ==2551== ==2551== ERROR SUMMARY: 3055 errors from 96 contexts (suppressed: 58 from 5) ==2551== malloc/free: in use at exit: 2340679 bytes in 4405 blocks. ==2551== malloc/free: 8945 allocs, 4540 frees, 4917877 bytes allocated. ==2551== For a detailed leak analysis, rerun with: --leak-check=yes ==2551== For counts of detected errors, rerun with: -v [astein@ripple ~]$ |