This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Latest systemtap fails when used with latest Linux kernel
- From: David Smith <dsmith at redhat dot com>
- To: "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: "Theodore Ts'o" <tytso at mit dot edu>, systemtap at sources dot redhat dot com
- Date: Tue, 06 Jan 2009 14:30:24 -0600
- Subject: Re: Latest systemtap fails when used with latest Linux kernel
- References: <E1LK6di-00037H-Hl@closure.thunk.org> <y0m8wpojn3k.fsf@ton.toronto.redhat.com>
Frank Ch. Eigler wrote:
> "Theodore Ts'o" <tytso@mit.edu> writes:
>
>> Using the latest Systemtap (commit be21f2db) compiling a 2.6.28-git7
>> kernel, I get this failure....
>> [...]
>
> Initial results (using an O=DIR x86_64 build) indicate that the kbuild
> machinery was broken with respect to the include2/ symlink directory
> in the build tree. It was not updated when commit
> bb8985586b7a906e116db835c64773b7a7d51663 moved a bunch of files from
> include/asm/x86/ to arch/include/asm/.
I tested this on the latest rawhide kernel,
2.6.29-0.12.rc0.git7.fc11.x86_64. I'm seeing 2 classes of problems:
1) autoconf problems - the autoconf tests are failing to find headers
included like "#include <linux/namei.h>". (Here the problem *might* be
that the module sources are compiled with '-Iinclude' specified, but the
autoconf tests don't get compiled that way for some reason.)
To work around this one, you can specify the needed autoconfs on the
stap command line, like this:
# stap -DSTAPCONF_X86_UNIREGS -DSTAPCONF_INODE_PRIVATE
-DSTAPCONF_NAMEIDATA_CLEANUP -v -e 'probe begin { printf("hello\n") }'
(obviously this isn't even a short term solution, but it does kill lots
of compile errors)
2) with the -DSTAPCONF* added as above, then a real kernel change causes
us problems:
In file included from /usr/local/share/systemtap/runtime/print.c:17,
from /usr/local/share/systemtap/runtime/runtime.h:84,
from /tmp/stapnALnka/stap_30776.c:41:
/usr/local/share/systemtap/runtime/transport/transport.c: In function
‘_stp_transport_init’:
/usr/local/share/systemtap/runtime/transport/transport.c:214: error:
‘struct task_struct’ has no member named ‘uid’
/usr/local/share/systemtap/runtime/transport/transport.c:215: error:
‘struct task_struct’ has no member named ‘gid’
Handling this might entail adding another autoconf test looking for the
'cred' struct in task_struct (as mentioned by bug #9699).
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)