This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/13074] Some nfs tapset probes broken under linux 3.1-rc1
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 10 Jan 2013 19:51:24 +0000
- Subject: [Bug tapsets/13074] Some nfs tapset probes broken under linux 3.1-rc1
- Auto-submitted: auto-generated
- References: <bug-13074-6586@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=13074
--- Comment #3 from David Smith <dsmith at redhat dot com> 2013-01-10 19:51:24 UTC ---
Looking at today's rawhide kernel (3.8.0-0.rc2.git3.1.fc19.x86_64), things are
even more odd:
====
# stap -L 'module("nfsv2").function("nfs_proc_lookup").*'
module("nfsv2").function("nfs_proc_lookup@fs/nfs/proc.c:148").call $arg:struct
nfs_diropargs $res:struct nfs_diropok $msg:struct rpc_message
module("nfsv2").function("nfs_proc_lookup@fs/nfs/proc.c:148").return
$return:int $arg:struct nfs_diropargs $res:struct nfs_diropok $msg:struct
rpc_message
====
Here's the source to nfs_proc_lookup. Looking at this, it appears that stap has
confused local variables for parameters:
====
static int
nfs_proc_lookup(struct inode *dir, struct qstr *name,
struct nfs_fh *fhandle, struct nfs_fattr *fattr)
{
struct nfs_diropargs arg = {
.fh = NFS_FH(dir),
.name = name->name,
.len = name->len
};
struct nfs_diropok res = {
.fh = fhandle,
.fattr = fattr
};
struct rpc_message msg = {
.rpc_proc = &nfs_procedures[NFSPROC_LOOKUP],
.rpc_argp = &arg,
.rpc_resp = &res,
};
====
Here's what "eu-readelf -N --debug-dump=info" reports for 'nfs_proc_lookup':
====
[ 31c90] subprogram
name (strp) "nfs_proc_lookup"
decl_file (data1) 1
decl_line (data1) 148
prototyped (flag_present) Yes
type (ref4) [ 18e99]
low_pc (addr) .text+0x0000000000000580
high_pc (addr) .text+0x000000000000063e
frame_base (exprloc)
[ 0] call_frame_cfa
GNU_all_call_sites (flag_present) Yes
sibling (ref4) [ 31dd5]
[ 31cb1] formal_parameter
name (string) "dir"
decl_file (data1) 1
decl_line (data1) 148
type (ref4) [ 1e9f9]
location (sec_offset) location list [ de7]
[ 31cc0] formal_parameter
name (strp) "name"
decl_file (data1) 1
decl_line (data1) 148
type (ref4) [ 1ed6f]
location (sec_offset) location list [ e5c]
[ 31ccf] formal_parameter
name (strp) "fhandle"
decl_file (data1) 1
decl_line (data1) 149
type (ref4) [ 2ed02]
location (sec_offset) location list [ e95]
[ 31cde] formal_parameter
name (strp) "fattr"
decl_file (data1) 1
decl_line (data1) 149
type (ref4) [ 2e617]
location (sec_offset) location list [ f21]
[ 31ced] variable
name (string) "arg"
decl_file (data1) 1
decl_line (data1) 151
type (ref4) [ 2f1a1]
location (exprloc)
[ 0] fbreg -88
[ 31cfc] variable
name (string) "res"
decl_file (data1) 1
decl_line (data1) 156
type (ref4) [ 2f2f5]
location (exprloc)
[ 0] fbreg -104
[ 31d0b] variable
name (string) "msg"
decl_file (data1) 1
decl_line (data1) 160
type (ref4) [ 21ea5]
location (exprloc)
[ 0] fbreg -64
====
Here's the relevant 'eu-readelf --debug-dump=loc' data:
====
[ de7] .text+0x0000000000000555
<nfs_proc_readlink+0x85>...text+0x00000000000005ab <nfs_proc_lookup+0x2b> [
0] reg5
.text+0x00000000000005ab
<nfs_proc_lookup+0x2b>...text+0x00000000000005d6 <nfs_proc_lookup+0x56> [ 0]
reg3
.text+0x00000000000005d6
<nfs_proc_lookup+0x56>...text+0x00000000000005e1 <nfs_proc_lookup+0x61> [ 0]
GNU_entry_value:
[ 0] reg5
[ 3] stack_value
.text+0x00000000000005e1
<nfs_proc_lookup+0x61>...text+0x00000000000005fc <nfs_proc_lookup+0x7c> [ 0]
reg3
.text+0x00000000000005fc
<nfs_proc_lookup+0x7c>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
GNU_entry_value:
[ 0] reg5
[ 3] stack_value
[ e5c] .text+0x0000000000000555
<nfs_proc_readlink+0x85>...text+0x0000000000000582 <nfs_proc_lookup+0x2> [ 0]
reg4
.text+0x0000000000000582
<nfs_proc_lookup+0x2>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
GNU_entry_value:
[ 0] reg4
[ 3] stack_value
[ e95] .text+0x0000000000000555
<nfs_proc_readlink+0x85>...text+0x0000000000000577 [ 0] reg1
.text+0x0000000000000577...text+0x000000000000058e
<nfs_proc_lookup+0xe> [ 0] fbreg -104
.text+0x000000000000058e
<nfs_proc_lookup+0xe>...text+0x00000000000005ab <nfs_proc_lookup+0x2b> [ 0]
breg1 0
.text+0x00000000000005ab
<nfs_proc_lookup+0x2b>...text+0x00000000000005e1 <nfs_proc_lookup+0x61> [ 0]
GNU_entry_value:
[ 0] reg1
[ 3] stack_value
.text+0x00000000000005e1
<nfs_proc_lookup+0x61>...text+0x00000000000005f5 <nfs_proc_lookup+0x75> [ 0]
breg1 0
.text+0x00000000000005f5
<nfs_proc_lookup+0x75>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
GNU_entry_value:
[ 0] reg1
[ 3] stack_value
.text+0x00000000000005e1
<nfs_proc_lookup+0x61>...text+0x00000000000005f5 <nfs_proc_lookup+0x75> [ 0]
breg1 0
.text+0x00000000000005f5
<nfs_proc_lookup+0x75>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
GNU_entry_value:
[ 0] reg1
[ 3] stack_value
[ f21] .text+0x0000000000000555
<nfs_proc_readlink+0x85>...text+0x00000000000005ab <nfs_proc_lookup+0x2b> [
0] reg2
.text+0x00000000000005ab
<nfs_proc_lookup+0x2b>...text+0x00000000000005e1 <nfs_proc_lookup+0x61> [ 0]
GNU_entry_value:
[ 0] reg2
[ 3] stack_value
.text+0x00000000000005e1
<nfs_proc_lookup+0x61>...text+0x00000000000005f5 <nfs_proc_lookup+0x75> [ 0]
reg2
.text+0x00000000000005f5
<nfs_proc_lookup+0x75>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
GNU_entry_value:
[ 0] reg2
[ 3] stack_value
[ f83] .text+0x00000000000005d6
<nfs_proc_lookup+0x56>...text+0x00000000000005d8 <nfs_proc_lookup+0x58> [ 0]
reg0
.text+0x00000000000005d8
<nfs_proc_lookup+0x58>...text+0x00000000000005df <nfs_proc_lookup+0x5f> [ 0]
reg3
.text+0x00000000000005df
<nfs_proc_lookup+0x5f>...text+0x00000000000005e1 <nfs_proc_lookup+0x61> [ 0]
reg0
.text+0x00000000000005fc
<nfs_proc_lookup+0x7c>...text+0x0000000000000607 <nfs_proc_lookup+0x87> [ 0]
reg0
.text+0x0000000000000607
<nfs_proc_lookup+0x87>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
reg3
[ ff2] .text+0x00000000000005b3
<nfs_proc_lookup+0x33>...text+0x00000000000005d6 <nfs_proc_lookup+0x56> [ 0]
reg3
.text+0x00000000000005d6
<nfs_proc_lookup+0x56>...text+0x00000000000005e1 <nfs_proc_lookup+0x61> [ 0]
GNU_entry_value:
[ 0] reg5
[ 3] stack_value
.text+0x00000000000005fc
<nfs_proc_lookup+0x7c>...text+0x000000000000060e <nfs_proc_lookup+0x8e> [ 0]
GNU_entry_value:
[ 0] reg5
[ 3] stack_value
====
Mark, got any thoughts as to what is going on here?
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.