This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] filename in tapset nfs.proc.open and nfs.proc.release


On 12/17/2014 11:36 AM, Lukas Berk wrote:

> It may be the case where, those looking to use the argstr convenience variable
> simply want to print out all the information being passed, regardless of
> the cost, already.  In that case, finding they need to craft another, very
> similar script to get a piece of related information (without knowing why it
> wasn't passed in the first place) could be frustrating.  I've always looked
> at argstr (rightly or wrongly) as 'just tell me everything being passed',
> knowing I could write a more tailored script later if needed.

In this case, we're not providing "everything being passed". In
nfs.proc.open, the probe provides:

- server_ip: IP address of server
- prot: transfer protocol
- version: NFS version (the function is used for all NFS version)
- filename: file name
- flag: file flag
- mode: file mode

Only filename, flag, and mode end up in argstr.

(Why was the probe written this way? I don't know, the tapset has been
around a long time.)

If our definition of argstr is "everything (of importance) being
*passed*", then we'd want the filename (which is passed), not the full
path (which isn't passed). The kernel rarely passes around full paths
internally, just a file pointer which contains the file name and a
pointer to the dentry (which points us to the parent directory). Also
note that task_dentry_path() can fail for various reasons, while getting
the file name from the file pointer should succeed most (if not all) of
the time.

-- 
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]