Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > T

tuneinfo2(2)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

tuneinfo2() — retrieve detailed information about kernel tunable parameters

SYNOPSIS

#include <sys/dyntune.h> int tuneinfo2(int version, const char *tunable, tuneinfo2_t *buf, size_t *bufsize); TUNEINFO_STRING(tunable, string)

DESCRIPTION

This function provides detailed information about one or all kernel tunable parameters. If a particular parameter is of interest, specify it by name in tunable. Otherwise, set tunable to NULL and information will be returned on all kernel tunable parameters (if the supplied buffer is big enough).

version must always be set to TUNEINFO_VERSION.

Information about the selected tunable parameters is returned in tuneinfo2_t structures and associated character strings. The buf parameter must specify an address in the caller's space containing space for these structures and strings.

bufsize must point to a variable containing the size of the buffer (in bytes).

Since the character strings are of variable length, the caller must first ask how much buffer space is needed, then allocate the necessary buffer space, and then ask for the tunable information. To calculate the size of the buffer to hold all the tunables, this function should be called with the parameters buf and bufsize set to NULL and zero, respectively. The function will return successfully with a return value of 0 and the variable at bufsize will have been changed to contain the amount of space needed to hold all of the requested data. See the example below.

Each tuneinfo2_t structure describes a single tunable parameter, and contains at least the following fields, in unspecified order:

uint64_t ti_name;

Location of the character string containing the name of the tunable.

uint64_t ti_desc;

Location of the character string containing an English description of the parameter.

uint64_t ti_module;

Location of the character string containing name of the DLKM module in which the parameter is defined. This will be a null string for those parameters defined in the core kernel.

uint64_t ti_current;

The current value of the parameter.

uint64_t ti_bootvalue;

The boot-time value of the parameter.

uint64_t ti_default;

The HP-supplied default value of the parameter.

uint64_t ti_min;

The minimum value of the parameter. Valid only if the TIF_MINVALID flag is set in the ti_flags word, below.

uint64_t ti_max;

The maximum value of the parameter. Valid only if the TIF_MAXVALID flag is set in the ti_flags word, below.

Note: The minimum and maximum values returned here are relatively static limits. They will reflect the limitations of the operating system software, and any limitations placed on this tunable parameter by the current values of other tunable parameters. However, they do not reflect any restrictions on the tunable value based on transient factors like the current usage pattern of the system.

For example, the maximum value returned for maxuprc (the maximum number of processes a non-root user may have) will be no greater than the current value of nproc (the maximum number of processes on the system) minus 5. However, the minimum value returned for maxuprc may very well be less than the number of processes that some user currently has.

uint64_t ti_flags;

A bitmask of zero or more of the following flags:

TIF_CANSET

The value of this parameter can be changed using settune().

TIF_DYNAMIC

The value of this parameter can be changed using settune(), without requiring a reboot.

TIF_SIGNED

The values, minima and maxima, for this parameter should be interpreted as signed quantities.

TIF_MINVALID

The ti_minimum field contains a minimum allowed value for this parameter.

TIF_MAXVALID

The ti_maximum field contains a maximum allowed value for this parameter.

The character string location fields, ti_name, ti_desc, and ti_module, can be used to retrieve the character strings. These fields must be accessed using the TUNEINFO_STRING() macro. The first parameter of the macro is the pointer to the tuneinfo2_t structure and the second parameter is one of the four field names above. The result of the macro will be a pointer to a null-terminated string. See the example below.

RETURN VALUE

If tuneinfo2() is successful, it returns the number of tunable parameters for which information was returned and sets the value of bufsize to the amount of buffer space used. When the parameters buf and bufsize are set to NULL and zero, respectively; it returns 0 and sets the value of bufsize to the amount of buffer space that needs to be preallocated.

ERRORS

If this function returns -1 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.

ENOSPC

The space in buf, as specified in bufsize, is not sufficient to hold the requested data.

EFAULT

tunable, buf, or bufsize contains an address that is inaccessible.

EIO

The Kernel Registry Service was unavailable or encountered an error.

EINVAL

The version is not supported.

EXAMPLES

#include <stdlib.h> #include <stdio.h> #include <sys/dyntune.h> ... tuneinfo2_t *buf; size_t bufsize; int ret; int count; int i; /* To gather information on all tunables: */ /* 1. Find out how much space we need: */ bufsize = 0; ret = tuneinfo2(TUNEINFO_VERSION, NULL, NULL, &bufsize); if (ret) { ... } /* 2. Allocate that much space: */ buf = (tuneinfo2_t *)malloc(bufsize); if (buf == NULL) { ... } /* 3. Query the data: */ count = tuneinfo2(TUNEINFO_VERSION, NULL, buf, &bufsize); if (count < 0) { ... } /* 4. Print the names of all tunables: */ for (i = 0; i < count; i++) { char *name = TUNEINFO_STRING(&buf[i], ti_name); puts(name); }

WARNINGS

Applications and application modules must not share tuneinfo2_t structures unless it is certain that the value of TUNEINFO_VERSION, specified in the <sys/dyntune.h> header file, is the same for all modules and involved. The value of TUNEINFO_VERSION may be changed without notice.

AUTHOR

tuneinfo2() was developed by Hewlett-Packard Company.

SEE ALSO

kctune(1M), gettune(2), settune(2).

The individual tunable parameter manpages in section 5.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.