In fedora 20, I used to be able to use stap -l 'module("qxl").function("*")' to list functions I can trace in the qxl module. In fedora 21 (i686), this always returns an empty list. If I change it to: stap -l 'module("qxl*").function("*")' then I get what I expect, ie a list with entries like: module("qxl").function("qxl_pci_remove@drivers/gpu/drm/qxl/qxl_drv.c:74") I tested with systemtap-2.6-2.fc21.i686 kernel-3.16.3-302.fc21.i686 This could be a kernel-side issue, but I'm very unfamiliar with systemtap in general, so filing it here.
Confirmed, module("qxl") works with kernel-3.16.3-200.fc20.x86_64 and fails on kernel-3.16.3-302.fc21.x86_64, yet both work with module("qxl*"). The primary difference I see is that fc21's modules are compressed, like "qxl.ko.xz".
This might be elfutils, which didn't handle .ko.xz before: commit 9d29ed2989b6691457bbd602de740c4423ac8781 Author: Mark Wielaard <mjw> Date: Thu Aug 14 22:07:44 2014 +0200 libdwfl: Handle LZMA .ko.xz compressed kernel modules. Linux kernel modules can not just be compressed with gz and bz2, but also with xz. Signed-off-by: Mark Wielaard <mjw> But that commit is in elfutils 0.160, which is in both f20 and f21. Could you double check the elfutils version in use? stap -V 2>&1 | head -1
Elfutils is fine. In the non-wildcard case, we're comparing based on modname_from_path(), which basically takes basename and drops one extension, so "/path/to/qxl.ko.xz" returns "qxl.ko". That doesn't match "qxl", of course. The reason we use elfutils' filename rather than its modname is for PR14454: https://sourceware.org/bugzilla/show_bug.cgi?id=14454 At a minimum, we can improve the extension stripping in modname_from_path(), but I'm looking if anything else should be done...
systemtap-2.6-3.fc21 has been submitted as an update for Fedora 21. https://admin.fedoraproject.org/updates/systemtap-2.6-3.fc21
Thanks a lot for the quick investigation! I've tested the new build and it fixes my issue.
Package systemtap-2.6-3.fc21: * should fix your issue, * was pushed to the Fedora 21 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing systemtap-2.6-3.fc21' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-12346/systemtap-2.6-3.fc21 then log in and leave karma (feedback).
systemtap-2.6-3.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.