Bug 11421

Summary: probe point mismatch while resolving probe point vfs.read
Product: systemtap Reporter: Tethys <tethys>
Component: tapsetsAssignee: Unassigned <systemtap>
Status: RESOLVED INVALID    
Severity: normal CC: dsmith
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Project(s) to access: ssh public key:

Description Tethys 2010-03-23 13:03:02 UTC
In section 2.1.3
(http://sourceware.org/systemtap/SystemTap_Beginners_Guide/using-systemtap.html#testing),
it says to try:

stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'

This doesn't work, giving the error:

root@quimby:~/stp# stap -v -e 'probe vfs.read {printf("read\n"); exit()}'
Pass 1: parsed user script and 38 library script(s) in 120usr/0sys/129real ms.
semantic error: probe point mismatch at position 1 (alternatives:
__set_page_dirty_buffers add_to_page_cache block_sync_page buffer_migrate_page
do_mpage_readpage do_sync_read do_sync_write remove_from_page_cache) while
resolving probe point vfs.read
Pass 2: analyzed script: 0 probe(s), 0 function(s), 0 embed(s), 0 global(s) in
0usr/0sys/2real ms.
Pass 2: analysis failed.  Try again with more '-v' (verbose) options.
Comment 1 Frank Ch. Eigler 2010-03-23 14:09:21 UTC
Can you check whether you have your kernel debuginfo installed?
The stap-report script may generate useful data for us too.
Comment 2 David Smith 2010-03-23 14:16:17 UTC
(In reply to comment #0)
> In section 2.1.3
>
(http://sourceware.org/systemtap/SystemTap_Beginners_Guide/using-systemtap.html#testing),
> it says to try:
> 
> stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'
> 
> This doesn't work...

Can you try the following?  'vfs.read' maps to 'kernel.function("vfs_read")'

# stap -v -e 'probe kernel.function("vfs_read") {printf("read performed\n");
exit()}'

Also, as Frank mentioned, the output of 'stap-report' will be helpful.
Comment 3 Tethys 2010-03-23 14:59:31 UTC
Looking into it in a bit more depth, I can probe vfs.read on my Fedora
box at home, but it fails on the Ubuntu box I have to use at work.
Probing on the kernel vfs_read() directly works. The Ubuntu vfs.stp
is significantly shorter than the Fedora one, and in particular, lacks
the probes for vfs.{read,write}

So the simple question is, can I just copy over the updated vfs tapset?
The work server is Ubuntu 8.04 and comes with a relatively archaic
systemtap-0.0.20071201-1. Is there anything in the newer tapsets that
would fail to work with a systemtap that old?

(Incidentally, stap-report isn't present either)
Comment 4 Frank Ch. Eigler 2010-03-23 20:15:07 UTC
(In reply to comment #3)
> So the simple question is, can I just copy over the updated vfs tapset?
> The work server is Ubuntu 8.04 and comes with a relatively archaic
> systemtap-0.0.20071201-1. Is there anything in the newer tapsets that
> would fail to work with a systemtap that old?

The new tapset file might but more likely won't work with >2-year-old
stap.  Please try building a new version.
Comment 5 David Smith 2013-06-17 20:52:36 UTC
Since this bug has been "waiting" for over three years, and current versions of systemtap work correctly here, I'm closing this one.