On Mon, 17 Feb 2025 14:42:44 +0100 Heiko Carstens hca@linux.ibm.com wrote:
+REALBIN=`readlink -f /bin/sh`
echo 'cat /proc/$$/maps' | /bin/sh | \
- grep "r-xp .*/bin/.*sh$" | \
- grep "r-xp .*${REALBIN}$" | \ awk '{printf "p:myevent %s:0x%s\n", $6,$3 }' >> uprobe_events
This test fails on s390, not because of this change, but since the test seems to assume that the entry point of /bin/sh is at offset 0; or at least there is some code that is executed at least once at offset 0; but that is not the case (at least) for s390.
Not sure how this can be addressed. Using "readelf -f" to get the entry point address of the executable and use that for the uprobe would work, but it would also add a dependency to binutils for the ftrace selftests, which doesn't exist yet, as far as I can tell.
Would it maybe an option for architectures to opt-in to use readelf and skip the test (exit_unsupported) if readelf is not available?
I'm OK for adding a dependency on readelf existing on the test system, as it is part of binutils.
Masami and Shuah,
Are you OK with that?
-- Steve