HP-UX Reference (11i v2 04/09) - 7 Device (Special) Files, 9 General Information, Index (vol 10)

v
vxfsio(7) vxfsio(7)
size_t vi_align_offset; /* adj for alignment calculations */
dev_t vi_block_device; /* bdev number for this cdev */
An application that tries to do efficient direct I/O or discovered direct I/O should issue read requests
that are equal to the product of vi_read_nstream
multiplied by vi_read_preferred_io
.
Generally any multiple or factor of
vi_read_nstream
multiplied by vi_read_preferred_io
should be a good size for performance. For writing, the same rule of thumb applies to the
vi_write_preferred_io
and vi_write_nstream
parameters.
If an application is doing sequential I/O to large files, it should try to issue request larger than the
discovered direct I/O size for the file system. This causes the I/O requests to be performed as
discovered direct I/O requests (which are unbuffered like direct I/O but do not require synchronous
inode updates when extending the file). If the file is larger than fits in the cache, then using
unbuffered I/O avoids throwing a lot of useful data out of the cache and it avoids a lot of CPU over-
head. See the vxtunefs (1M) manual page for more information on discovered direct I/O.
VX_GETCACHE
Get caching advisories in effect for the file. The argument
arg should be a pointer to an int.
The
VX_GETCACHE ioctl returns a zero if the caching advisories are successfully obtained and the
advisories are returned in arg. If the operation fails, the return value is -1 and the external vari-
able errno is a general DIAGNOSTIC.
VX_GETEXT
Get extent information. Return the extent information associated with fildes. The argument
arg points to a structure of type vx_ext as defined in sys/fs/vx_ioctl.h
. Only persistent
extent attributes are visible.
The
VX_GETEXT ioctl returns a zero if the extent information is successfully obtained. If the opera-
tion fails, the return value is -1 and the external variable errno is a general DIAGNOSTIC.
VX_GETFSOPT
Get file system options. The argument arg should be a pointer to an int. This command may be
used by any user who can open the root inode on the file system. The options returned in
arg are:
VX_FSO_BLKCLEAR
Indicates that all newly allocated blocks are guaranteed to contain all zeros. (See the
blkclear mount option of mount_vxfs (1M)).
VX_FSO_CACHE_CLOSESYNC
Indicates that any non-logged changes to the inode or data is flushed to disk when the file
is closed. (See the mincache=closesync
mount option of mount_vxfs (1M)).
VX_FSO_CACHE_DIRECT
Indicates that any non-synchronous I/O is handled as if the
VX_DIRECT cache advisory
had been set on the file. Also, any non-logged changes to the inode or data is flushed to
disk when the file is closed. (See the
mincache=direct
mount option of
mount_vxfs (1M)).
VX_FSO_CACHE_DSYNC
Indicates that any writes that do not have either O_SYNC or the VX_DIRECT advisory
set is handled as if the VX_DSYNC advisory had been set on the file. Also, any non-
logged changes to the inode or data is flushed to disk when the file is closed. (See the
mincache=dsync mount option of mount_vxfs (1M)).
VX_FSO_CACHE_TMPCACHE
Indicates that delayed extending writes have been disabled. Non-logged changes to the
inode or data is not flushed to disk when the file is closed. (See the
mincache=tmpcache mount option of mount_vxfs (1M)).
VX_FSO_CACHE_UNBUFFERED
Indicates that any non-synchronous I/O is handled as if the VX_UNBUFFERED cache
advisory had been set on the file. Also, any non-logged changes to the inode or data is
flushed to disk when the file is closed. (See the mincache=unbuffered mount option
of mount_vxfs (1M)).
Section 7212 Hewlett-Packard Company 2 HP-UX 11i Version 2: September 2004