This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Latest systemtap fails when used with latest Linux kernel


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]