Skip Headers
Oracle Hierarchical Storage Manager and QFS Software Command Reference
Section 5: Standards, Environments, and Macros
Release 6.1.1
E70305-03

NAME

sam_dtrace - Oracle HSM DTrace probes

AVAILABILITY

SUNWqfs SUNWsamfs

DESCRIPTION

The Oracle HSM filesystem supports dynamic tracing with DTrace probes. More information on the usage of DTrace can be found at https:∕∕wikis.oracle.com∕display∕DTrace∕Documentation.

The following is a description of the currently implemented DTrace probes with their arguments. A quick list of Oracle HSM DTrace probes can be found online by typing:

dtrace -l -m sdt:samfs

"sdt:samfs::sam-open-ret"

The sam-open-ret probe triggers at the end of a file open. The arguments returned are:

arg0 - Equipment number  32 & Inode number
arg1 - ip-di.status.bits
arg2 - Open count (after open)
arg3 - errno (after open)

"sdt:samfs::sam-close-ret"

The sam-close-ret probe triggers at the end of a file close. The arguments returned are:

arg0 - Equipment number  32 & Inode number
arg1 - ip-di.status.bits
arg2 - Open count (after close)
arg3 - last_close_flag  32 & errno

"sdt:samfs::sam-read-ent"

The sam-read-ent probe triggers at the start of a file read. The arguments returned are:

arg0 - Equipment number  32 & Inode number
arg1 - uiop-uio_loffset (Offset in file at start of read)
arg2 - uiop-uio_resid (Amount to read)

"sdt:samfs::sam-read-ret"

The sam-read-ret probe triggers at the end of a file read. More information is returned here. You may want to trigger only the return call. The arguments returned are:

arg0 - Equipment number  32 & Inode number
arg1 - uiop-uio_loffset (Offset in file at end of read)
arg2 - Number of bytes read.
arg3 - Directio flag  32 & errno

"sdt:samfs::sam-write-ent"

The sam-write-ent probe triggers at the start of a file write. The arguments returned are:

arg0 - Equipment number  32 & Inode number
arg1 - uiop-uio_loffset (Offset in file at start of write)
arg2 - uiop-uio_resid (Amount to write)

"sdt:samfs::sam-write-ret"

The sam-write-ret probe triggers at the end of a file write. More information is returned here. You may want to trigger only the return call. The arguments returned are:

arg0 - Equipment number  32 & Inode number
arg1 - uiop-uio_loffset (Offset in file at end of write)
arg2 - Number of bytes written.
arg3 - Directio flag  32 & errno

"sdt:samfs::sam-syscall-ent"

The sam-syscall-ent probe triggers at the entry of an Oracle HSM syscall. The arguments returned are:

arg0 - syscall command (see include∕sam∕syscall.h)
arg1 - pointer to syscall argument struct (use copyout to read it)
arg2 - size of syscall argument

"sdt:samfs::sam-syscall-ret"

The sam-syscall-ent probe triggers at the end of an Oracle HSM syscall. The arguments returned are:

arg0 - syscall command (see include∕sam∕syscall.h)
arg1 - pointer to returned argument (may be NULL, use copyout to read it)
arg2 - errno (after syscall)

"sdt:samfs::sam-msgread-client"

The sam-msgread-client probe triggers when the shared client receives a message from the metadata server. The arguments returned are:

arg0 - hdr.operation  32 & hdr.command
arg1 - hdr.hostid  32 & client ordinal
arg2 - hdr.fsid (file system id from message)
arg3 - hdr.error (errno)

"sdt:samfs::sam-msgread-server"

The sam-msgread-client probe triggers when the shared metadata server receives a message from the shared client. The arguments returned are:

arg0 - hdr.operation  32 & hdr.command
arg1 - hdr.hostid  32 & client ordinal
arg2 - hdr.fsid (file system id from message)
arg3 - hdr.error (errno)

"sdt:samfs::sam-lookup-name"

The sam-lookup-name probe triggers when the metadata server needs to look up a file name. The arguments returned are:

arg0 - File name component string (use stringof(arg0))
arg1 - Nonzero if case insensitive lookup
arg2 - Internal flags field.

"sdt:samfs::sam-find-component"

The sam-find-component probe triggers when the metadata server searches a file name component in a directory. The arguments returned are:

arg0 - File name component string (use stringof(arg0))
arg1 - Nonzero if case insensitive lookup
arg2 - File name hash

EXAMPLES

Some examples of usage of the Oracle HSM DTrace probes can be found in ∕opt∕SUNWsamfs∕examples∕dtrace. These examples are useful in their own right, but also serve as example scripts which can be modified for other purposes. The scripts are:

fs_mon eqid

This script will monitor a specific file system and print out once per second the top 5 bytes∕second files being accessed. It will continue until interrupted. The file system is specified by the numeric equipment id of the file system from the mcf file (see man mcf for more details). The output of fs_mon looks like:


lake-mn### ∕opt∕SUNWsamfs∕examples∕dtrace∕fs_mon 10
        inode           bytes∕sec
             1030         22020096
             1029         20971520
        inode           bytes∕sec
             1029         28311552
             1030         27874304

ino_mon eqid inode

This script will monitor a specific file in a specific file system and print out once per second data on read∕write speed. It will also gather and quantize I∕O size data for that file and report a summary of that when the script ends (via ^C interrupt). The file is specified via equipment number (from mcf file) and inode number. Inode number can be found from "ls -i" output. Output from ino_mon looks like:

lake-mn### ∕opt∕SUNWsamfs∕examples∕dtrace∕ino_mon 10 1029
Inode 1029 opened by pid 15155, tid 1
Inode 1029,  51261 KB∕sec read,      0 KB∕sec written
Inode 1029, 110238 KB∕sec read,      0 KB∕sec written
Inode 1029, 110640 KB∕sec read,      0 KB∕sec written
Inode 1029, 115298 KB∕sec read,      0 KB∕sec written
Inode 1029, 114805 KB∕sec read,      0 KB∕sec written
Inode 1029 closed by pid 15155, tid 1, last_close 1
Inode 1029,  39851 KB∕sec read,      0 KB∕sec written
^C
I∕O size breakdown for eq 10, inode 1029

           value  ------------- Distribution ------------- count    
              -1 |                                         0        
               0 |                                         1        
               1 |                                         0        
               2 |                                         0        
               4 |                                         0        
               8 |                                         0        
              16 |                                         0        
              32 |                                         0        
              64 |                                         0        
             128 |                                         0        
             256 |                                         0        
             512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1720320  
            1024 |                                         0