Valgrind is critically dependent on getting siginfo with its synchronous (caused by an instruction fault) signals; if it gets, say, a SIGSEGV which doesn't have siginfo, it must terminate ASAP because it really can't make any more progress without knowing what caused the SIGSEGV. The trouble is that if some other completely unrelated program the user is running at the time builds up a large queue of pending signals for some reason (as KDE seems to on SuSE 9.2), it will cause Valgrind to fail for that user, apparently inexplicably. It seems to me that the kernel should always deliver siginfo with synchronous fault signals (SIGSEGV, SIGBUS, SIGFPE, SIGTRAP, SIGILL). They can't ever be blocked (because they're unconditionally fatal if you do block them), and therefore never queued. By definition, the task which causes the signal is running at the time, and so can be immediately delivered a siginfo without having to allocate one (except temporarily). Proposed patch against 2.6.11-rc4 attached. J