Bug 10703 - compilation error of ext4 tracepoint on 2.6.32
Summary: compilation error of ext4 tracepoint on 2.6.32
Status: RESOLVED FIXED
Alias: None
Product: systemtap
Classification: Unclassified
Component: testsuite (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-29 06:57 UTC by Wenji Huang
Modified: 2009-11-11 04:56 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wenji Huang 2009-09-29 06:57:35 UTC
$ sudo runtest systemtap.base/tracepoints.exp  --tool_opts install
WARNING: Couldn't find the global config file.
WARNING: No tool specified
Test Run By root on Tue Sep 29 10:15:57 2009
Native configuration is x86_64-redhat-linux-gnu

                ===  tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using ./config/unix.exp as tool-and-target-specific interface file.
kernel location: 
kernel version: 2.6.32-rc1
systemtap location: /usr/local/bin/stap
systemtap version: version 1.0/0.141 commit release-1.0-29-g7459222 + changes
gcc location: /usr/bin/gcc
gcc version: gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)

Host: Linux dhcp-beijing-cdc-10-182-121-43.cn.oracle.com 2.6.32-rc1 #1 SMP Mon
Sep 28 05:24:36 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
Snapshot: version 1.0/0.141 commit release-1.0-29-g7459222 + changes
GCC: 4.1.2 [gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)]
Distro: Enterprise Linux Enterprise Linux Server release 5.2 (Carthage)

Running ./systemtap.base/tracepoints.exp ...
FAIL: tracepoints cc1: warnings being treated as errors
In file included from
/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.c:6436:
include/trace/events/ext4.h:263: warning: ‘struct mpage_da_data’ declared inside
parameter list
include/trace/events/ext4.h:263: warning: its scope is only this definition or
declaration, which is probably not what you want
include/trace/events/ext4.h:263: warning: ‘struct mpage_da_data’ declared inside
parameter list
include/trace/events/ext4.h:263: warning: ‘struct mpage_da_data’ declared inside
parameter list
/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.c:9087: warning:
‘struct mpage_da_data’ declared inside parameter list
/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.c: In function
‘register_tracepoint_probe_22’:
/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.c:9200: warning:
passing argument 1 of ‘register_trace_ext4_da_write_pages’ from incompatible
pointer type
/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.c: In function
‘unregister_tracepoint_probe_22’:
/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.c:9203: warning:
passing argument 1 of ‘unregister_trace_ext4_da_write_pages’ from incompatible
pointer type
make[1]: *** [/tmp/stapW1R0gz/stap_b762bf6cb939d6c7cb884fddb0772bed_17767.o] Error 1
make: *** [_module_/tmp/stapW1R0gz] Error 2
Pass 4: compilation failed.  Try again with another '--vp 0001' option.
FAIL: ./systemtap.base/tracepoints.stp
Comment 1 Wenji Huang 2009-09-29 07:01:14 UTC
This is introduced by

ext4: Add new tracepoint: trace_ext4_da_write_pages()
author	Theodore Ts'o <tytso@mit.edu>
	Tue, 1 Sep 2009 03:13:11 +0000 (23:13 -0400)
committer	Theodore Ts'o <tytso@mit.edu>
	Tue, 1 Sep 2009 03:13:11 +0000 (23:13 -0400)
commit	b3a3ca8ca0c3c29abc5b2bfe94bb14f3f4590df9
tree	1006f780d43ec8ff90ed11b1eb0d5ed961c9f613	tree | snapshot
parent	de89de6e0cf4b1eb13f27137cf2aa40d287aabdf	commit | diff
ext4: Add new tracepoint: trace_ext4_da_write_pages()

Add a new tracepoint which shows the pages that will be written using
write_cache_pages() by ext4_da_writepages().

Seems fs/ext4/ext4.h should be included into the generated C file,
but searching path is a problem since ext4.h isn't packaged up as a
part of a distribution kernel's header files.
Comment 2 Frank Ch. Eigler 2009-09-29 12:12:45 UTC
If trace/events/ext4.h forward-declared "struct mpage_da_data", then
stap would be able to use the tracepoint's mpd argument with a @cast().

Comment 3 Josh Stone 2009-09-29 19:21:41 UTC
It turns out that before we were catching this earlier because of the missing
#includes.  In this case, in pass-2 we get the warning about "declared inside
parameter list", but it's allowed to pass anyway.

I've added -Werror to that step now so we can catch the problem sooner and
filter those out.  So once again, ext4 tracepoints will be unavailable until a
decl for mpage_da_data is added.
Comment 4 Wenji Huang 2009-11-11 04:56:12 UTC
Found the patch in mainline.

ext4: Add a stub for mpage_da_data in the trace header
author	Josh Stone <jistone@redhat.com>	
	Wed, 30 Sep 2009 04:51:22 +0000 (00:51 -0400)
committer	Theodore Ts'o <tytso@mit.edu>	
	Wed, 30 Sep 2009 04:51:22 +0000 (00:51 -0400)
commit	0ef122494020521309be855bfdeeb41f34bf8c94

Close the bug.