MPSS.SO.1(1) User Commands MPSS.SO.1(1)
NAME
mpss.so.1 - shared object for setting preferred page size
SYNOPSIS
mpss.so.1DESCRIPTION
The
mpss.so.1 shared object provides a means by which the preferred
stack and/or heap page size can be selectively configured for
launched processes and their descendants. To enable
mpss.so.1, the
following string needs to be present in the environment (see
ld.so.1(1)) along with one or more
MPSS (Multiple Page Size Support)
environment variables:
LD_PRELOAD=$LD_PRELOAD:mpss.so.1ENVIRONMENT VARIABLES
Once preloaded, the
mpss.so.1 shared object reads the following
environment variables to determine any preferred page size
requirements and any processes these may be specific to.
MPSSHEAP=
size MPSSSTACK=
size MPSSHEAP and
MPSSSTACK specify the
preferred page sizes for the heap and
stack, respectively. The specified page
size(s) are applied to all created
processes.
size must be a supported page size (see
pagesize(1)) or
0, in which case the
system will select an appropriate page
size (see
memcntl(2)).
size can be qualified with
K,
M,
G, or
T to specify Kilobytes, Megabytes,
Gigabytes, or Terabytes respectively.
MPSSCFGFILE=
config-file config-file is a text file which contains
one or more
mpss configuration entries of
the form:
exec-name exec-args:
heap-size:
stack-size exec-name specifies the name of an
application or executable. The
corresponding preferred page size(s) are
set for newly created processes (see
getexecname(3C)) that match the first
exec-name found in the file.
exec-name can be a full pathname, a base
name or a pattern string. See
File Name Generation in
sh(1) for a discussion of
pattern matching.
exec-args is an optionally specified
pattern string to match against arguments.
Preferred page size(s) are set only if
exec-args is not specified or occurs
within the arguments to
exec-name.
If
heap-size and/or
stack-size are not
specified, the corresponding preferred
page size(s) will not be set.
MPSSCFGFILE takes precedence over
MPSSHEAP and
MPSSSTACK. When
MPSSCFGFILE is not
set, preferred page size settings are
taken from file
/etc/mpss.conf if it
exists.
MPSSERRFILE=
pathname By default, error messages are logged via
syslog(3C) using level
LOG_ERR and
facility
LOG_USER. If
MPSSERRFILE contains
a valid
pathname (such as
/dev/stderr),
error messages will be logged there
instead.
EXAMPLES
Example 1: Configuring preferred page sizes using MPSSCFGFILE
The following Bourne shell commands (see
sh(1)) configure the
preferred page sizes to a select set of applications with exec names
that begin with
foo, using the
MPSSCFGFILE environment variable. The
MPSS configuration file,
mpsscfg, is assumed to have been previously
created via a text editor like
vi(1). The
cat(1) command is only
dumping out the contents.
example$
LD_PRELOAD=$LD_PRELOAD:mpss.so.1 example$
MPSSCFGFILE=mpsscfg example$
export LD_PRELOAD MPSSCFGFILE example$
cat $MPSSCFGFILE foo*:512K:64K
Once the application has been started,
pmap (see
proc(1)) can be used
to view the actual page sizes configured:
example$
foobar & example$
pmap -s `pgrep foobar` If the desired page size is not configured (shown in the
pmap output), it may be due to errors in the
MPSS configuration file or
environment variables. Check the error log (by default:
/var/adm/messages) for errors.
If no errors can be found, resource or alignment constraints may be
responsible. See the NOTES section.
Example 2: Configuring preferred page sizes using MPSSHEAP and
MPSSSTACK
The following Bourne shell commands configure
512K heap and
64K stack
preferred page sizes for all applications using the
MPSSHEAP and
MPSSSTACK environment variables.
example$
LD_PRELOAD=$LD_PRELOAD:mpss.so.1 example$
MPSSHEAP=512K example$
MPSSSTACK=64K example$
export LD_PRELOAD MPSSHEAP MPSSSTACK Example 3: Precedence rules (continuation from Example 2)
The preferred page size configuration in
MPSSCFGFILE overrides
MPSSHEAP and
MPSSTACK. Appending the following commands to those in
Example 2: would mean that all applications will be configured with
512K heap and
64K stack preferred page sizes with the exception of
those applications, the
ls command, and all applications beginning
with
ora that have
ora1 as an argument, in the configuration file.
example$
MPSSCFGFILE=mpsscfg2 example$
export MPSSCFGFILE example$
cat $MPSSCFGFILE ls::
ora* ora1:4m:4m
FILES
/usr/lib/ld/map.bssalign A template link-editor
mapfile for
aligning bss (see NOTES).
/etc/mpss.conf Configuration file
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+
SEE ALSO
cat(1),
ld(1),
ld.so.1(1),
pagesize(1),
ppgsz(1),
proc(1),
sh(1),
vi(1),
exec(2),
fork(2),
memcntl(2),
getexecname(3C),
getpagesize(3C),
syslog(3C),
proc(5),
attributes(7)NOTES
The heap and stack preferred page sizes are inherited. A child
process has the same preferred page sizes as its parent. On
exec(2),
the preferred page sizes are set back to the default system page size
unless a preferred page size has been configured via the
mpss shared
object.
ppgsz(1), a proc tool, can also be used to set the preferred stack
and/or heap page sizes. It cannot selectively configure the page size
for descendents based on name matches.
See also NOTES under
ppgsz(1).
February 20, 2002 MPSS.SO.1(1)