Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ modadmin(1M) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

idbuild(1M)

idmodload(1M)

idmodreg(1M)

idtune(1M)

init(1M)

modload(2)

moduload(2)

modpath(2)

modstat(2)

prf(7)






       modadmin(1M)                                            modadmin(1M)


       NAME
             modadmin - loadable kernel module administration

       SYNOPSIS
             modadmin -l modname . . . | pathname . . .
             modadmin -u modid . . .
             modadmin -U modname . . .
             modadmin -q modid . . .
             modadmin -Q modname . . .
             modadmin -s | S
             modadmin -d dirname | D

       DESCRIPTION
             modadmin is the administrative command for loadable kernel
             modules.  It performs the following functions:

                   load a loadable module into a running system

                   unload a loadable module from a running system

                   display the status of a loadable module(s) that is
                   currently loaded

                   modify the loadable modules search path

             The loadable modules feature lets you add a module to a
             running system without rebooting the system or rebuilding the
             kernel.  When the module is no longer needed, this feature
             also lets you dynamically remove the module, thereby freeing
             system resources for other use.

             Types of modules that can be dynamically loaded include:

                   device drivers (block, character, STREAMS and pseudo)

                   Host Bus Adapter (HBA) drivers

                   Direct Coupled Device (DCD) controller drivers

                   STREAMS modules

                   TCP/IP stack modules

                   file systems




                           Copyright 1994 Novell, Inc.               Page 1













      modadmin(1M)                                            modadmin(1M)


                  exec modules

                  system calls

                  miscellaneous modules, such as modules containing code
                  for support routines shared among multiple loadable
                  modules which are not needed in the statically
                  configured kernel

            Loadable modules are maintained in individual object files (.o
            files) in the same manner as statically configured modules.
            Unlike static modules, loadable modules:

                  are not linked to the kernel until they are needed

                  must be configured into the system and registered with
                  the running kernel using the idbuild(1M) command with
                  the -M option before they can be loaded

                  must be configured in loadable form (requires writing
                  additional module initialization or ``wrapper'' code)

                  can be loaded and unloaded by the user, as required,
                  using the modadmin command, or by init(1M), during every
                  system reboot, using the idmodload(1M) command (called a
                  demand load/unload)

                  can be loaded and unloaded by the kernel itself (called
                  an auto load/unload-see NOTICES section)

            The modadmin options have the following meanings:

            -l modname
                      Load the named module(s) modname using the current
                      value of the loadable modules search path to locate
                      the module's object file on disk.

                      This option searches for a matching file in all
                      directories specified in the loadable modules search
                      path.  By default, the search pathname is
                      /etc/conf/mod.d.

                      The load operation performs all tasks associated
                      with link editing the module to the kernel and
                      making the module accessible to the system.  If the
                      module depends on other loadable modules (as defined


                          Copyright 1994 Novell, Inc.               Page 2













       modadmin(1M)                                            modadmin(1M)


                       in /etc/conf/mdevice.d), and these modules are not
                       currently loaded, modadmin will automatically load
                       the dependent modules during the load operation.

                       When loading completes, an integer modid prints on
                       the standard output to identify the module(s) that
                       was loaded.

             -l pathname
                       Same as -l modname, except the absolute pathname
                       pathname is used to locate the module's object file.

             -u modid  Unload the module(s) identified by the integer value
                       modid.

                       If modid specifies 0 (zero), modadmin attempts to
                       unload all loadable modules.

                       The unload operation performs all tasks associated
                       with disconnecting the module from the kernel and
                       releasing any memory acquired by the module.  When
                       unloading completes, an integer modid prints on the
                       standard output to identify the module(s) that was
                       unloaded.

                       If the module(s) to be unloaded are currently in-
                       use, are dependents of a loadable module that is
                       currently loaded, or are currently being loaded or
                       unloaded, the unload request will fail.

             -U modname
                       Same as -u modid, except the module(s) to be
                       unloaded is specified by name modname.

             -q modid  Print the status of the loaded module(s) identified
                       by the integer value modid.

                       Information returned by this option includes:

                             module identifier (modid)

                             the module's pathname

                             the module's virtual load address




                           Copyright 1994 Novell, Inc.               Page 3













      modadmin(1M)                                            modadmin(1M)


                            amount of memory the module occupies

                            the module's reference count

                            the module's dependent count

                            the module's unload delay value

                            the module's descriptive name

                            the type of module

                            depending on the type of module, either the
                            module's character major number, block major
                            number, file system switch number, or STREAMS
                            switch number

            -Q modname
                      Same as -q modid, except the module(s) for which
                      status information is to be reported is specified by
                      name modname.

            -s        Print an abbreviated status for all modules
                      currently loaded.

                      This option returns a listing of module names and
                      module identifiers only.

            -S        Print the full status for all modules currently
                      loaded.

                      This option returns status information of the form
                      returned by the -q option.

            -d pathname
                      Prepend the pathname pathname to the current
                      loadable modules search path, where pathname
                      specifies directories that should be searched:

                            for all subsequent demand loads initiated by a
                            modadmin command with the option -l and a
                            named modname

                            for all subsequent loads performed by the
                            kernel's auto-load mechanism (see NOTICES
                            section)


                          Copyright 1994 Novell, Inc.               Page 4













       modadmin(1M)                                            modadmin(1M)


                             prior to searching any directories already
                             prepended to the search path by a prior
                             modadmin command with the option -d

                             prior to searching the default search path
                             /etc/conf/mod.d, which is always searched, and
                             is always searched last

                       pathname must specify an absolute pathname or a list
                       of absolute pathnames delimited by colons.  The
                       directories identified by pathname do not have to
                       exist on the system at the time the request to
                       modify the search path using modadmin is made.  If
                       these directories do not exist at the time a load
                       takes place, the load operation ignores them.

                       All modifications to the search path made using this
                       option take effect immediately and affect all
                       subsequent loads (demand and auto-load) and all
                       users on the system.

             -D        Reset the loadable modules search path to its
                       default value, /etc/conf/mod.d.  The reset takes
                       effect immediately and affects all subsequent loads
                       (demand and auto-load) and all users on the system.

          Errors
             In the following conditions, modadmin fails and sets errno to:

             ENOLOAD
                   failure in loading a loadable exec module

             UX:modadmin: ERROR: Incorrect usage
                   Command line input contained one or more syntax errors.
                   See the SYNOPSIS section for the correct usage.

             UX:modadmin: ERROR: modid: No such file or directory
                   Unable to load the module modid because the module does
                   not exist.

             UX:modadmin: ERROR: Device busy
                   Unable to load a module because the module is currently
                   in-use.





                           Copyright 1994 Novell, Inc.               Page 5













      modadmin(1M)                                            modadmin(1M)


            UX:modadmin: ERROR: Non-numeric ID string: string
                  Unable to unload or obtain status for a module because
                  the module id string specified a non-numeric value.

            UX:modadmin: ERROR: modstat: Invalid argument
                  Unable to unload or obtain status for module modid
                  because the module does not exist.

            UX:modadmin: ERROR: Module: modid, not found
                  Unable to obtain status for module modid because the
                  module is currently unloaded.

      FILES
            /etc/conf/mod.d/*

      NOTICES
         Auto Loading
            Auto-load occurs when the kernel detects a particular loadable
            module is required to accomplish some task, but is not
            currently loaded.  For example, if the task were a mount of a
            file system, and the loadable module that supports the file
            system was not loaded, the kernel would automatically load the
            file system module.  Once the module was loaded, the mount
            would take place.

            Auto-unload occurs when the kernel detects that the amount of
            available memory is low.  At this time, the kernel begins
            unloading all modules that are not currently in-use-and that
            have not been used for some predetermined amount of time-to
            reclaim the memory allocated to these modules.  Unloading
            continues until the amount of available memory reaches a
            predetermined high water mark, or the list of modules that are
            candidates for unloading is exhausted.  The amount of time
            that must elapse before unused modules are considered
            candidates for unloading is controlled by the value of the
            global tunable parameter DEF_UNLOAD_DELAY in
            /etc/conf/mtune.d.  Individual modules can override the value
            of the global auto-unload delay by specifying their own auto-
            unload delay value in their Mtune files.

            Modules that are demand loaded using the modadmin command
            cannot be auto unloaded by the kernel.  If a demand-loaded
            module is no longer needed in the system, it must be demand-
            unloaded.  If a demand unload for a loaded module fails
            (because the module is in-use, for example) the unload
            mechanism will add the module to a list of modules that are


                          Copyright 1994 Novell, Inc.               Page 6













       modadmin(1M)                                            modadmin(1M)


             candidates for the next auto-unload.

          Loadable HBA Driver Considerations
             Loadable HBA drivers:

                   must be demand loaded by the user via the modadmin
                   command, or (during system reboot) demand loaded by init
                   via the idmodload command

                   can not be auto loaded

                   can not be unloaded (demand or auto)

          Loadable DCD Controller Driver Considerations
             Loadable DCD controller drivers can not be demand loaded.
             They are auto loaded/unloaded by the kernel as required.

          System Profiler
             When the system profiler prf is turned on, loadable modules
             are locked into memory and cannot be unloaded.  Modules can
             continue to be loaded with profiling enabled, but these
             modules will also become locked.  When profiling is disabled,
             the locks for all loadable modules are removed.

       REFERENCES
             idbuild(1M), idmodload(1M), idmodreg(1M), idtune(1M),
             init(1M), modload(2), moduload(2), modpath(2), modstat(2),
             prf(7)




















                           Copyright 1994 Novell, Inc.               Page 7








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026