User Commands pmadvise(1)
NAME
pmadvise - applies advice about memory to a process
SYNOPSIS
pmadvise -o option[,option] [-F] [-l] [-v] pid...
DESCRIPTION
pmadvise applies advice about how memory is used in the
specified process using madvise(3C).
pmadvise allows users to apply advice to a specific sub-
range at a specific instant in time. pmadvise differs from
madv.so.1(1) in that madv.so.1(1) applies the advice
throughout execution of the target program to all segments
of a specified type.
OPTIONS
The following options are supported:
-F Force by grabbing the target process even if another
process has control.
You should exercise caution when using the -F option.
See proc(1).
-l Show unresolved dynamic linker map names.
-o Specify advice to apply in the following form:
private=advice
shared=advice
heap=advice
stack=advice
address[:length]=advice
where the advice can be one of the following:
normal
random
sequential
willneed
dontneed
free
accesslwp
accessmany
accessdefault
SunOS 5.11 Last change: 25 Sep 2008 1
User Commands pmadvise(1)
An address and length can be given to specify a
subrange to apply the advice.The address should be
hexadecimal and the length should be in bytes by
default.
If length is not specified and the starting address
refers to the start of a segment, the advice is
applied to that segment. length can be qualified by K,
M, G, T, P, or E to specify kilobytes, megabytes,
gigabytes, terabytes, or exabytes respectively as the
unit of measure.
-v Print verbose output. Display output as pmap(1) does,
showing what advice is being applied where. This can
be useful when the advice is being applied to a named
region (for example, private, shared, and so forth) to
get feedback on exactly where the advice is being
applied.
pmadvise tries to process all legal options. If an illegal
address range is specified, an error message is printed and
the offending option is skipped. pmadvise quits without pro-
cessing any options and prints a usage message when there is
a syntax error.
If conflicting advice is given on a region, the order of
precedence is from most specific advice to least, that is,
most general. In other words, advice specified for a parti-
culiar address range takes precedence over advice for heap
and stack which in turn takes precedence over advice for
private and shared memory.
Moreover, the advice in each of the following groups are
mutually exclusive from the other advice within the same
group:
MADVNORMAL, MADVRANDOM, MADVSEQUENTIAL
MADVWILNED, MADVDONTNED, MADVFRE
MADVACESDEFAULT, MADVACESLWP, MADVACESMANY
OPERANDS
The following operands are supported:
pid Process ID.
SunOS 5.11 Last change: 25 Sep 2008 2
User Commands pmadvise(1)
EXAMPLES
Example 1 Applying Advice to a Segment at Specified Address
The following example applies advice to a segment at a
specified address:
% pmap $$
100666: tcsh
00010000 312K r-x-- /usr/bin/tcsh
0006C000 48K rwx-- /usr/bin/tcsh
00078000 536K rwx-- [ heap ]
F100000 856K r-x-- /lib/libc.so.1
F1E6000 32K rwx-- /lib/libc.so.1
F1E000 8K rwx-- /lib/libc.so.1
F230000 168K r-x-- /lib/libcurses.so.1
F26A000 32K rwx-- /lib/libcurses.so.1
F272000 8K rwx-- /lib/libcurses.so.1
F280000 576K r-x-- /lib/libnsl.so.1
F310000 40K rwx-- /lib/libnsl.so.1
F31A000 24K rwx-- /lib/libnsl.so.1
F364000 8K rwxs- [ anon ]
F370000 48K r-x-- /lib/libsocket.so.1
F38C000 8K rwx-- /lib/libsocket.so.1
F3A0000 8K r-x-- /platform/sun4u-us3/lib/libcpsr.so.1
F3B0000 176K r-x-- /lib/ld.so.1
F3EC000 8K rwx-- /lib/ld.so.1
F3E000 8K rwx-- /lib/ld.so.1
FBE6000 104K rw--- [ stack ]
%
% pmadvise -o 78000=accesslwp $$
%
Example 2 Using the -v Option
The following example displays verbose output from pmadvise:
% pmadvise -o heap=accesslwp,stack=accessdefault -v $$
1720: -sh
00010000 88K r-x-- /sbin/sh
00036000 8K rwx-- /sbin/sh
00038000 16K rwx-- [ heap ] <= accesslwp
F250000 24K r-x-- /lib/libgen.so.1
F266000 8K rwx-- /lib/libgen.so.1
F272000 8K rwxs- [ anon ]
SunOS 5.11 Last change: 25 Sep 2008 3
User Commands pmadvise(1)
F280000 840K r-x-- /lib/libc.so.1
F362000 32K rwx-- /lib/libc.so.1
F36A000 16K rwx-- /lib/libc.so.1
F380000 8K r-x-- /platform/sun4u-us3/lib/libcpsr.so.1
F390000 64K rwx-- [ anon ]
F3B0000 168K r-x-- /lib/ld.so.1
F3EA000 8K rwx-- /lib/ld.so.1
F3EC000 8K rwx-- /lib/ld.so.1
FBFE000 8K rw--- [ stack ] <= accessdefault
EXIT STATUS
The following exit values are returned:
0 Successful completion.
non-zero An error occurred.
FILES
/proc/* Process files
/usr/prob/lib/* proc tools support files
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWesu
Interface Stability See below.
The command syntax is Evolving. The output formats are
Unstable.
SEE ALSO
madv.so.1(1), pmap(1), proc(1), madvise(3C), attributes(5)
SunOS 5.11 Last change: 25 Sep 2008 4
|