Unix‎ > ‎Solaris‎ > ‎Solaris man pages‎ > ‎1‎ > ‎

madv.so.1


NAME
     madv.so.1 - madv library

SYNOPSIS
     /usr/lib/madv.so.1

DESCRIPTION
     The madv.so.1 shared object provides a means by which the VM
     advice  can be selectively configured for a launched process
     (or processes) and its descendants. To enable madv.so.1, the
     following string needs to be present in the environment (see
     ld.so.1(1)) along with one or more  MADV  environment  vari-
     ables:

     LD_PRELOAD=$LD_PRELOAD:madv.so.1

ENVIRONMENT VARIABLES
     If  the  madv.so.1  shared  object  is  specified   in   the
     LD_PRELOAD  list,  the  following  environment variables are
     read by the madv shared object to determine to which created
     process(es) to apply the specified advice.

     MADV=advice

         MADV specifies the VM advice to use for all heap, shared
         memory,   and   mmap  regions  in  the  process  address
         space. This advice is applied to all created processes.

         Values for advice correspond to values  in  <sys/mman.h>
         used in madvise(3C) to specify memory access patterns:


                    normal

                    random

                    sequential

                    access_lwp

                    access_many

                    access_default


 MADVCFGFILE=config-file

     config-file is a text file which contains one or  more  madv
     configuration entries of the form:


     exec-name exec-args:advice-opts
     Advice specified in config-file takes precedence  over  that
     specified by the MADV environment variable. When MADVCFGFILE
     is not set, advice is taken from file /etc/madv.conf  if  it
     exists.

     exec-name specifies the name of an  application  or  execut-
     able.  The  corresponding  advice  is  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.  Advice  is set only if exec-args is not
     specified or occurs within the arguments to exec-name.

     advice-opts is a comma-separated list specifying the  advice
     for various memory region(s):


     madv=advice             Applies to all heap, shared  memory,
                             and  mmap  regions  in  the  process
                             address space.




     heap=advice             The heap is defined to  be  the  brk
                             area  (see  brk(2)).  Applies to the
                             existing heap and for any additional
                             heap memory allocated in the future.



     shm=advice              Shared    memory    segments    (see
     ism=advice              shmat(2))  attached using any flags,
     dism=advice             flag    SHM_SHARE_MMU,    or    flag
                             SHM_PAGEABLE   respectively. Options
                             ism and dism  take  precedence  over
                             option shm.





     map=advice              Mappings established through mmap(2)
     mapshared=advice        using  any  flags,  flag MAP_SHARED,
     mapprivate=advice       flag MAP_PRIVATE, or flag  MAP_ANON,
     mapanon=advice          respectively.   Options   mapshared,
                             mapprivate,   and    mapanon    take
                             precedence  over  option map. Option
                             mapanon   takes   precedence    over
                             mapshared and mapprivate.






 MADVERRFILE=pathname

     By default, error messages are logged via  syslog(3C)  using
     level LOG_ERR and facility LOG_USER. If MADVERRFILE contains
     a valid pathname (such as /dev/stderr), error messages  will
     be logged there instead.



EXAMPLES
     Example 1: Applying advice to all ISM segments

     The following configuration applies advice to all  ISM  seg-
     ments for application /usr/bin/foo:

     example$ LD_PRELOAD=$LD_PRELOAD:madv.so.1
     example$ MADVCFGFILE=madvcfg
     example$ export LD_PRELOAD MADVCFGFILE
     example$ cat $MADVCFGFILE
         /usr/bin/foo:ism=access_lwp

     Example 2: Setting advice for all applications  with  excep-
     tion

     The following configuration sets advice for all applications
     with the exception of ls.

     example$ LD_PRELOAD=$LD_PRELOAD:madv.so.1
     example$ MADV=access_many
     example$ MADVCFGFILE=madvcfg
     example$ export LD_PRELOAD MADV MADVCFGFILE
     example$ cat $MADVCFGFILE
         ls:

     Example 3: Precedence rules (continuation from Example 2)

     Because MADVCFGFILE takes precedence over  MADV,  specifying
     '*'  (pattern  match all) for the exec-name of the last madv
     configuration entry would be equivalent to setting MADV. The
     following is equivalent to example 2:

     example$ LD_PRELOAD=$LD_PRELOAD:madv.so.1
     example$ MADVCFGFILE=madvcfg
     example$ export LD_PRELOAD MADVCFGFILE
     example$ cat $MADVCFGFILE
         ls:
         *:madv=access_many

     Example 4: Applying advice for different regions

     The following configuration applies one type of  advice  for
     mmap regions and different advice for heap and shared memory
     regions for a select set of  applications  with  exec  names
     that begin with foo:

     example$ LD_PRELOAD=$LD_PRELOAD:madv.so.1
     example$ MADVCFGFILE=madvcfg
     example$ export LD_PRELOAD MADVCFGFILE
     example$ cat $MADVCFGFILE
         foo*:madv=access_many,heap=sequential,shm=access_lwp

     Example 5: Applying advice selectively

     The following configuration applies advice for the  heap  of
     applications  beginning  with ora that have ora1 as an argu-
     ment:

     example$ LD_PRELOAD=$LD_PRELOAD:madv.so.1
     example$ MADVCFGFILE=madvcfg
     example$ export LD_PRELOAD MADVCFGFILE
     example$ cat $MADVCFGFILE
         ora* ora1:heap=access_many

FILES
     /etc/madv.conf                  Configuration file



ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWesu (32-bit)            |
    |_____________________________|_____________________________|
    |                             | SUNWesxu (64-bit)           |
    |_____________________________|_____________________________|
    | Interface Stability         | Unstable                    |
    |_____________________________|_____________________________|


SEE ALSO

     cat(1),  ld.so.1(1),  proc(1),   sh(1),   brk(2),   exec(2),
     fork(2),  mmap(2),  memcntl(2),  shmat(2),  getexecname(3C),
     madvise(3C), syslog(3C), proc(4), attributes(5)

NOTES
     The advice is inherited. A child process has the same advice
     as  its  parent.  On exec() (see exec(2)), the advice is set
     back to the default system advice  unless  different  advice
     has been configured via the madv shared object.

     Advice is only applied to mmap regions explicitly created by
     the  user program. Those regions established by the run-time
     linker or by system libraries  making  direct  system  calls
     (for  example,  libthread allocations for thread stacks) are
     not affected.










Man pages from Solaris 10 Update 8. See docs.sun.com and www.oracle.com for further documentation and Solaris information.
Comments