Description of problem: kernel-devel includes the tracepoint definitions for ext4 in "include/trace/events/ext4.h", but that file tries to include several relative files that aren't included in kernel-devel, "../../../fs/ext4/ext4.h" and "../../../fs/ext4/mballoc.h". Thus, the ext4 tracepoints can't be used by systemtap. Version-Release number of selected component (if applicable): kernel-2.6.31-0.67.rc2.git9.fc12.x86_64 kernel-devel-2.6.31-0.67.rc2.git9.fc12.x86_64 How reproducible: always Steps to Reproduce: 1. stap -l 'kernel.trace("*")' -vvvv Actual results: [...] In file included from /tmp/stapBpLq47/tracequery/tracequery.c:15: include/trace/events/ext4.h:8:35: error: ../../../fs/ext4/ext4.h: No such file or directory include/trace/events/ext4.h:9:38: error: ../../../fs/ext4/mballoc.h: No such file or directory In file included from /tmp/stapBpLq47/tracequery/tracequery.c:15: include/trace/events/ext4.h:410: warning: ‘struct ext4_prealloc_space’ declared inside parameter list include/trace/events/ext4.h:410: warning: its scope is only this definition or declaration, which is probably not what you want include/trace/events/ext4.h:410: warning: ‘struct ext4_allocation_context’ declared inside parameter list include/trace/events/ext4.h:438: warning: ‘struct ext4_prealloc_space’ declared inside parameter list include/trace/events/ext4.h:438: warning: ‘struct ext4_allocation_context’ declared inside parameter list include/trace/events/ext4.h:466: warning: ‘struct ext4_prealloc_space’ declared inside parameter list include/trace/events/ext4.h:466: warning: ‘struct ext4_allocation_context’ declared inside parameter list include/trace/events/ext4.h:493: warning: ‘struct ext4_prealloc_space’ declared inside parameter list include/trace/events/ext4.h:493: warning: ‘struct ext4_allocation_context’ declared inside parameter list include/trace/events/ext4.h:558: warning: ‘struct ext4_allocation_request’ declared inside parameter list include/trace/events/ext4.h:600: warning: ‘struct ext4_allocation_request’ declared inside parameter list Expected results: stap should list all of the available tracepoints, include those in ext4.
stap now works around the problem -- it will skip the broken ext4 header so that the other tracepoints are still usable. See: http://sourceware.org/bugzilla/show_bug.cgi?id=10424 It would still be nice to have usable ext4 tracepoints though. I think either trace/events/ext4.h needs to remove its ../../.. includes, or else the kernel-devel packages need to also grab those ext4-internal headers.
Kernel commit 3661d286 (post 2.6.31) removes the relative includes, and I've confirmed that this enables SystemTap to use the ext4 tracepoints. Please consider including that simple patch in rawhide.
This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle. Changing version to '12'. More information and reason for this action is here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Josh, I apologize for not seeing this bug earlier. Everything should be copacetic in F12, F13, and rawhide now, yes? If so we can close this CURRENTRELEASE I guess.
You're right, updated F12 is fine, as well as F13 and rawhide. Thanks!