HPlogo HP-UX Reference > S

settune(2)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

settune() — set the value of a kernel tunable parameter

SYNOPSIS

#include <sys/dyntune.h> int settune(const char *tunable, uint64_t value, unsigned int flags);

DESCRIPTION

This function sets the value of the kernel tunable parameter named tunable to the supplied value. This new value takes effect immediately, except in the cases noted below.

Some parameters cannot be changed without rebooting the OS kernel.

Some parameters represent limits on resources that can be consumed by individual processes. In general, changes to these parameters do not affect processes that are running at the time the change is made; they affect only new programs started (with exec(2) or an equivalent) after that time. (Some specific parameters may be exceptions to this general rule; see the man pages for those parameters for details.)

Valid values for the flags parameter and their connotations are:

STF_DEFAULT

STF_AUTO

The value of the tunable parameter is set by the kernel. The value parameter to settune() is ignored.

STF_NOPENDING

The changes are not held pending for the next boot. If the tunable parameter cannot be set without a reboot, the changes are rejected. The global variable errno is set to ENOTSUP.

STF_NOAUTO

Sets the tunable paramater to the value and turns off any automatic tuning done by the kernel.

The caller needs to have the SYSATTR privilege to make this call. The tuneinfo2(2) call can give information about whether or not changes to a parameter are allowed, or will require a reboot. Some individual parameters may have specific notes regarding their behavior when changed; consult the parameter man pages for details on each specific parameter.

Persistence of Changes

Changes to parameter values made with settune() remain effective across reboots in this release of HP-UX. Tunable parameter values are stored in the Kernel Registry database. Each time the system boots, it reads the parameter values from the database and restores them. Changes to parameter values made with settune() may not remain effective across reboots in future releases of HP-UX.

Security Restrictions

Some or all of the actions associated with this system call require the SYSATTR privilege. Processes owned by the superuser have this privilege. Processes owned by other users may have this privilege, depending on system configuration. See privileges(5) for more information about privileged access on systems that support fine-grained privileges.

RETURN VALUE

This function returns one of the following values:

STR_OK

The value of the specified parameter has been changed, or will be changed at next boot.

STR_ERROR

The function did not complete successfully. The value of the specified parameter has not been changed.

ERRORS

If this function returns STR_ERROR to indicate an error, the global variable errno will be set to one of the following values, to indicate the error that occurred:

ENOENT

The specified tunable parameter does not exist.

EFAULT

tunable specifies an address that is inaccessible.

EPERM

The caller does not have the SYSATTR privilege.

EINVAL

The specified value is not within the acceptable range for the specified parameter.

EBUSY

The value of the parameter could not be changed immediately.

ENOTSUP

The specified parameter cannot be changed without rebooting the kernel and STF_NOPENDING flag was specified.

EIO

The Kernel Registry Service was unavailable or encountered an error.

ENOMEM

Insufficient memory to accommodate the new parameter value.

WARNINGS

The caller must have the SYSATTR privilege to use this call.

It is possible to seriously degrade system performance, or even render a system unbootable, with incorrect tunable settings. Use care when setting tunable values. Always have a known working kernel configuration saved as a backup; if the system fails to boot after a tunable change, boot from that backup kernel configuration. Keep good records of all tunable changes so that they can be reversed if they degrade system performance. (Tunable changes made with settune() are automatically logged to syslog.)

If the tunable being changed through settune(2) is used in expressions that set the values of other tunables, those expressions will not be re-evaluated and those tunable values will not be updated. If expression evaluation is desired, use kctune(1M) to set tunable values.

AUTHOR

settune() was developed by Hewlett-Packard Company.

SEE ALSO

kctune(1M), mk_kernel(1M), gettune(2), tuneinfo2(2), privileges(5).

Individual tunable parameter man pages in section 5.