This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/13815] New: On RHEL5 (2.6.18-308.el5), the dentry.stp tapset is broken
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Tue, 06 Mar 2012 22:05:28 +0000
- Subject: [Bug tapsets/13815] New: On RHEL5 (2.6.18-308.el5), the dentry.stp tapset is broken
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=13815
Bug #: 13815
Summary: On RHEL5 (2.6.18-308.el5), the dentry.stp tapset is
broken
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: tapsets
AssignedTo: systemtap@sourceware.org
ReportedBy: dsmith@redhat.com
Classification: Unclassified
On RHEL5 (2.6.18-274.17.1.el5 x86_64) the dentry tapset works correctly and the
buildok/dentry-embedded.stp test passes.
On RHEL5 (2.6.18-308.el5 x86_64), the buildok/dentry-embedded.stp test fails:
===========
# stap -vp4 ../src/testsuite/buildok/dentry-embedded.stp
Pass 1: parsed user script and 81 library script(s) using
145620virt/22748res/2916shr kb, in 270usr/30sys/299real ms.
semantic error: type definition 'path' not found: identifier '@cast' at
/usr/local/share/systemtap/tapset/dentry.stp:134:31
source: if (dentry == @cast(root, "path")->dentry &&
^
Pass 2: analyzed script: 1 probe(s), 27 function(s), 2 embed(s), 0 global(s)
using 249740virt/67032res/4504shr kb, in 900usr/350sys/1255real ms.
Pass 2: analysis failed. Try again with another '--vp 01' option.
===========
The source in question looks like this:
if (dentry == @cast(root, "path")->dentry &&
vfsmnt == @cast(root, "path")->mnt)
break;
Unfortunately, just adding "kernel" to the @cast() statements doesn't fix the
problem.
Also unfortunately, the definition of 'struct path' has moved from
<linux/nfs_fs.h> in RHEL5 era kernels to <linux/path.h> in current kernels.
We may have to add in a kernel version check to fix this one unless something
more clever is found. Adding a kernel version check would look something like
this (with the correct kernel version filled in):
%( kernel_v >= "2.6.XXXX" %?
if (dentry == @cast(root, "path")->dentry &&
vfsmnt == @cast(root, "path")->mnt)
break;
%:
if (dentry == @cast(root, "path", "kernel<linux/nfs_fs.h>)->dentry &&
vfsmnt == @cast(root, "path", "kernel<linux/nfs_fs.h>)->mnt)
break;
%)
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.