With this simple dtrace script it seems that I am not getting data from args[2] of the io provider when a file system has forcedirectio as a mount option. Remove this option and the mount point or the fi_pathname will show up. Any idea on why args[2] doesn''t get populated with directio? Thanx -Paul #!/usr/sbin/dtrace -qs io:::start { @dio[args[2]->fi_mount] = count(); } tick-1sec { printa(@dio); clear(@dio); } -- This message posted from opensolaris.org
Paul Mininni wrote:> With this simple dtrace script it seems that I am not getting data from args[2] of the io provider when a file system has forcedirectio as a mount option. Remove this option and the mount point or the fi_pathname will show up. Any idea on why args[2] doesn''t get populated with directio? >The problem is that the b_file member of the buf structure passed to bdev_strategy() [which is where the io:::start probe is located] is not populated with the vnode pointer [the vnode has the filename (v_path)] when the directio routines [ufs_directio_read/ufs_directio_write] are used for IO. Since the vnode is not available the filename and the mount point cannot be determined the fi_mount is set to ''none''. If you wish you can file a bug else I can file it. Pramod> Thanx > -Paul > > #!/usr/sbin/dtrace -qs > > io:::start > { > @dio[args[2]->fi_mount] = count(); > } > > tick-1sec > { > printa(@dio); > clear(@dio); > } > -- > This message posted from opensolaris.org > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org >
Thanx. I will get the bug filed for this. -- This message posted from opensolaris.org