From: Mark W. <ma...@kl...> - 2025-03-31 09:30:08
|
Hi, On Fri, Mar 28, 2025 at 07:02:28PM +0100, Mark Wielaard wrote: > On Fri, 2025-03-21 at 14:01 +0100, Florian Weimer wrote: > > Without this change, the system call wrapper function is not visible > > on the stack at the time of the system call, which causes problems > > for interception tools such as valgrind. > > > > Enhances commit 89b53077d2a58f00e7debdfe58afabe953dac60d ("nptl: Fix > > Race conditions in pthread cancellation [BZ#12683]"). > > > > Tested on i686-linux-gnu, powerpc64le-linux-gnu, x86_64-linux-gnu. > > (We're still discussing if valgrind needs this, but if it does, here's a > > patch.) > > I implemented the valgrind part of skipping the syscall_cancel frames > here: https://bugs.kde.org/show_bug.cgi?id=502126#c2 > And there is a valgrind package build for fedora rawhide: > https://koji.fedoraproject.org/koji/buildinfo?buildID=2687393 > > For ppc64le, s390x and x86_64 that patch seems enough. > > For i686 and aarch64 there does seem to be an issue with missing the > glibc calling function because of a tail call. > > Also on i686 there is another extra frame on top __libc_do_syscall. I extended the patch to cover some extra sycall wrapper function symbols on i386 and armhf and pushed it to valgrind trunk and VALGRIND_3_24_BRANCH. There are builds for fedora rawhide and f42. This does seem to show that only on arm64 the tail calls obscure observing the full call stack. Cheers, Mark |