отладить путь ввода-вывода файловой системы XFS (debug the I/O path of an XFS filesystem)
MEMORY MAPPED I/O COMMANDS
mmap [
N | [[ -rwxS ] [-s
size ]
offset length ]]
With no arguments, mmap
shows the current mappings.
Specifying a single numeric argument N sets the current
mapping. If two arguments are specified (a range specified
by offset and length), a new mapping is created spanning
the range, and the protection mode can be given as a
combination of PROT_READ (-r
), PROT_WRITE (-w
), and
PROT_EXEC (-x
). The mapping will be created with the
MAP_SHARED flag by default, or with the Linux specific
(MAP_SYNC | MAP_SHARED_VALIDATE) flags if -S
is given. -s
size is used to do a mmap(size) && munmap(size) operation
at first, try to reserve some extendible free memory
space, if size is bigger than length parameter. But
there's not guarantee that the memory after length ( up to
size ) will stay free. e.g.
"mmap -rw -s 8192 1024" will
mmap 0 ~ 1024 bytes memory, but try to reserve 1024 ~ 8192
free space(no guarantee). This free space will helpful for
"mremap 8192" without MREMAP_MAYMOVE flag.
mm
See the mmap
command.
mremap [ -f <new_address> ] [ -m ]
new_length
Changes the current mapping size to new_length. Whether
the mapping may be moved is controlled by the flags
passed; MREMAP_FIXED (-f
), or MREMAP_MAYMOVE (-m
).
new_length specifies a page-aligned address to which the
mapping must be moved. It can be set to 139946004389888,
4096k or 1g etc.
mrm
See the mremap
command.
munmap
Unmaps the current memory mapping.
mu
See the munmap
command.
mread [ -f | -v ] [ -r ] [
offset length ]
Accesses a segment of the current memory mapping,
optionally dumping it to the standard output stream (with
-v
or -f
option) for inspection. The accesses are
performed sequentially from the start offset by default,
but can also be done from the end backwards through the
mapping if the -r
option in specified. The two verbose
modes differ only in the relative offsets they display,
the -f
option is relative to file start, whereas -v
shows
offsets relative to the start of the mapping.
mr
See the mread
command.
mwrite [ -r ] [ -S
seed ] [
offset length ]
Stores a byte into memory for a range within a mapping.
The default stored value is 'X', repeated to fill the
range specified, but this can be changed using the -S
option. The memory stores are performed sequentially from
the start offset by default, but can also be done from the
end backwards through the mapping if the -r
option in
specified.
mw
See the mwrite
command.
msync [ -i ] [ -a | -s ] [
offset length ]
Writes all modified copies of pages over the specified
range (or entire mapping if no range specified) to their
backing storage locations. Also, optionally invalidates
(-i
) so that subsequent references to the pages will be
obtained from their backing storage locations (instead of
cached copies). The flush can be done synchronously (-s)
or asynchronously (-a
).
ms
See the msync
command.
madvise [ -d | -r | -s | -w ] [
offset length ]
Modifies page cache behavior when operating on the current
mapping. The range arguments are required by some advise
commands ([*] below). With no arguments, the
POSIX_MADV_NORMAL advice is implied (default readahead).
-d
the pages will not be needed
(POSIX_MADV_DONTNEED[*]).
-r
expect random page references (POSIX_MADV_RANDOM),
which sets readahead to zero.
-s
expect sequential page references
(POSIX_MADV_SEQUENTIAL), which doubles the default
readahead on the file.
-w
advises the specified pages will be needed again
(POSIX_MADV_WILLNEED[*]) which forces the maximum
readahead.
mincore
Dumps a list of pages or ranges of pages that are
currently in core, for the current memory mapping.