This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Shared buffer affected by CONFIG_MODVERSIONS
- From: Wenji Huang <wenji dot huang at oracle dot com>
- To: systemTAP <systemtap at sources dot redhat dot com>
- Date: Tue, 06 Jan 2009 16:22:24 +0800
- Subject: Shared buffer affected by CONFIG_MODVERSIONS
- Reply-to: wenji dot huang at oracle dot com
Hi,
In current stap tree, the shared buffer machinery depends on
CONFIG_MODVERSIONS.
[wjhuang@EL5U2-64bits testsuite]$ cat
/lib/modules/2.6.28/build/.config|grep MODVERSION
CONFIG_MODVERSIONS=y
[wjhuang@EL5U2-64bits testsuite]$ sudo runtest
systemtap.printf/sharedbuf.exp --tool_opts install
...
Running ./systemtap.printf/sharedbuf.exp ...
FAIL: shared buffer guest
Error inserting module
'/tmp/stap0Tv0kZ/stap_3ebc02e755c27ff472c3a3ed2d196152_345.ko': Unknown
symbol in module
Retrying, after attempted removal of module
stap_3ebc02e755c27ff472c3a3ed2d196152_345 (rc -1)
Error inserting module
'/tmp/stap0Tv0kZ/stap_3ebc02e755c27ff472c3a3ed2d196152_345.ko': Unknown
symbol in module
Pass 5: run failed. Try again with another '--vp 00001' option.
FAIL: buffer sharing (0, 0)
=== Summary ===
# of expected passes 1
# of unexpected failures 2
[wjhuang@EL5U2-64bits testsuite]$ dmesg
stap_4cadcc917d7dfed2e32ec12f99abd964_218: systemtap: 0.8/0.131, base:
ffffffffa00d1000, memory: 15833+17847+416+14000 data+text+ctx+net, probes: 1
stap_3ebc02e755c27ff472c3a3ed2d196152_345: no symbol version for
stp_print_flush_test1
stap_3ebc02e755c27ff472c3a3ed2d196152_345: Unknown symbol
stp_print_flush_test1
stap_3ebc02e755c27ff472c3a3ed2d196152_345: no symbol version for
stp_print_flush_test1
stap_3ebc02e755c27ff472c3a3ed2d196152_345: Unknown symbol
stp_print_flush_test1
But the test can pass when CONFIG_MODVERSIONS is not set.
[wjhuang@EL5U2-64bits testsuite]$ cat
/lib/modules/2.6.28/build/.config|grep MODVERSION
# CONFIG_MODVERSIONS is not set
[wjhuang@EL5U2-64bits testsuite]$ sudo runtest
systemtap.printf/sharedbuf.exp --tool_opts install
...
Running ./systemtap.printf/sharedbuf.exp ...
=== Summary ===
# of expected passes 2
# of expected failures 2
Seems the version information of exported test function don't match will
make kernel refuse to load kernel. To keep shared buffer compatible with
different config kernel needs a little update, pass modversion when
building module or modify runtime/print.c to make exported function
switched according to CONFIG_MODVERSIONS.
Regards,
Wenji