<appendix id="appendixa-1"><title>Tunable Parameters Change History</title><highlights><para>This chapter describes the change history of specific tunable parameters.
If a parameter is in this section, it has changed from a previous release.
Parameters whose functionality has been removed are listed also. </para><itemizedlist><listitem><para><olink targetptr="appendixa-2" remap="internal">Kernel Parameters</olink></para>
</listitem><listitem><para><olink targetptr="appendixa-47" remap="internal">NFS Tunable Parameters</olink></para>
</listitem><listitem><para><olink targetptr="appendixa-28" remap="internal">TCP/IP Tunable Parameters</olink></para>
</listitem><listitem><para><olink targetptr="appendixa-39" remap="internal">Network Cache and Accelerator
(NCA) Tunable Parameters</olink></para>
</listitem><listitem><para><olink targetptr="appendixa-6" remap="internal">Parameters That Are Obsolete
or Have Been Removed</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="appendixa-2"><title>Kernel Parameters</title><sect2 id="appendixa-8"><title>Process-Sizing Tunables</title><sect3 id="appendixa-29"><title><literal>max_nprocs</literal> (Solaris 9 Releases)</title><para>The
Solaris 10 description section was updated by removing the text &ldquo;sun4m.&rdquo;</para>
</sect3>
</sect2><sect2 id="appendixa-35"><title>General I/O Tunable Parameters</title><sect3 id="gfpvm"><title><literal>maxphys</literal> (Solaris 10 Releases)</title><para>The default value is updated to include sun4v systems. For more information,
see <olink targetptr="chapter2-30" remap="internal">maxphys</olink>.</para>
</sect3><sect3 id="appendixa-36"><title><literal>maxphys</literal> (Solaris 9 Releases)</title><para>The
text &ldquo;126,976 (sun4m)&rdquo; was removed from the Solaris 10 <literal>maxphys</literal> default section.</para>
</sect3><sect3 id="appendixa-31"><title><literal>rlim_fd_max</literal> (Solaris 8
Release)</title><para>In
the Solaris 8 version, the default is 1024. In later Solaris releases, the
default is 65,536.</para>
</sect3>
</sect2><sect2 id="appendixa-11"><title>General Kernel and Memory Parameters</title><sect3 id="appendixa-37"><title><literal>noexec_user_stack</literal> (Solaris
9 Releases)</title><para>The Solaris 10 description section was updated by removing the
text &ldquo;and sun4m&rdquo; and adding the text &ldquo;64&ndash;bit SPARC
and AMD64.&rdquo;</para>
</sect3><sect3 id="fahqp"><title><literal>lwp_default_stksize</literal> (Solaris 9
Releases)</title><para>The Solaris 10 description section was updated by adding default and
maximum values for AMD64.</para><para>The Solaris 10 default value for SPARC platforms was changed to 24,576.</para>
</sect3><sect3 id="appendixa-21"><title><literal>noexec_user_stack</literal> (Solaris
2.6, 7, and 8 Releases)</title><para>The Solaris 9 description section was updated by removing the text &ldquo;and
sun4d.&rdquo;</para>
</sect3><sect3 id="appendixa-41"><title><literal>segkpsize</literal> (Solaris 9 12/02
Release)</title><para>In
previous Solaris 9 releases, units were incorrectly identified as Mbytes instead
of 8-Kbyte pages. In addition, the following text is removed from the range
and default descriptions in the Solaris 10 release because this parameter
is only available on systems running 64-bit kernels:</para><para>32-bit kernels, 512 Mbytes</para>
</sect3>
</sect2><sect2 id="appendixa-12"><title>Paging-Related Tunable Parameters</title><sect3 id="gfhxd"><title><literal>maxpgio</literal> (Solaris 10 Releases)</title><para>In
the Solaris 10 versions, the range value was incorrectly documented as 1 to
1024. The actual range depends on system architecture and I/O subsystems.
For more information, see <olink targetptr="chapter2-148" remap="internal">maxpgio</olink>.</para>
</sect3><sect3 id="appendixa-27"><title><literal>pages_pp_maximum</literal> (Solaris
Releases Prior to Solaris 9 Releases)</title><para>In the Solaris 8 versions, the default description is as follows:</para><para>Maximum of the triplet (200, <literal>tune_t_minarmem</literal> +
100, [10% of memory available at boot time])</para>
</sect3>
</sect2><sect2 id="appendixa-38"><title>General File System Parameters</title><sect3 id="appendixa-56"><title><literal>ncsize</literal> (Solaris 9 and Previous
Releases)</title><para>In
the Solaris 9 release and previous releases, the <literal>nfs:nrnode</literal> parameter
was incorrectly identified as <literal>nfs:nfs_rnode</literal> in the when
to change description.</para>
</sect3>
</sect2><sect2 id="gdpbi"><title><literal>ncsize</literal> (Solaris 10 Release)</title><para>In the Solaris 10 release, the default value of the <literal>ncsize</literal> parameter
was incorrectly described as follows:</para><para>4 x (<literal>v.v_proc</literal> + <literal>maxusers</literal>) + 320
/ 100</para><para>The correct default value is as follows:</para><para>(4 x (<literal>v.v_proc</literal> + <literal>maxusers</literal>) + 320)
+ (4 x (<literal>v.v_proc</literal> + <literal>maxusers</literal>) + 320 /
100</para><para>For more information, see <olink targetptr="chapter2-35" remap="internal">ncsize</olink>.</para>
</sect2><sect2 id="appendixa-54"><title>UFS Tunable Parameters</title><sect3 id="appendixa-55"><title><literal>bufhwm</literal>  (Solaris 9 Releases)</title><para>This parameter information changed significantly in the Solaris 10 release.
Please see <olink targetptr="chapter2-38" remap="internal">bufhwm and bufhwm_pct</olink> for
more information.</para><variablelist termlength="narrow"><varlistentry><term>Description</term><listitem><para>Maximum amount of memory for caching I/O buffers. The buffers
are used for writing file system metadata (superblocks, inodes, indirect blocks,
and directories). Buffers are allocated as needed until the amount to be allocated
would exceed <literal>bufhwm</literal>. At this point, enough buffers are
reclaimed to satisfy the request.</para><para>For historical reasons, this parameter does not require the <literal>ufs:</literal> prefix.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>2% of physical memory</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>80 Kbytes to 20% of physical memory</para>
</listitem>
</varlistentry><varlistentry><term>Units</term><listitem><para>Kbytes</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Value is used to compute hash bucket sizes and is then
stored into a data structure that adjusts the value in the field as buffers
are allocated and deallocated. Attempting to adjust this value without following
the locking protocol on a running system can lead to incorrect operation.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>If <literal>bufhwm</literal> is less than 80 Kbytes or greater
than the lesser of 20% of physical memory or twice the current amount of kernel
heap, it is reset to the lesser of 20% of physical memory or twice the current
amount of kernel heap. The following message appears on the system console
and in the <filename>/var/adm/messages</filename> file. </para><screen>"binit: bufhwm out of range (value attempted). Using <emphasis>N</emphasis>."</screen><para>Value attempted refers to the value entered in <filename>/etc/system</filename> or
by using the <command>kadb</command> <option>d</option> command. <replaceable>N</replaceable> is
the value computed by the system based on available system memory.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>Since buffers are only allocated as they are needed, the overhead
from the default setting is the allocation of a number of control structures
to handle the maximum possible number of buffers. These structures consume
52 bytes per potential buffer on a 32&ndash;bit kernel and 104 bytes per potential
buffer on a 64&ndash;bit kernel. On a 512 Mbyte 64&ndash;bit kernel this consumes
104*10144 bytes, or 1 Mbyte. The header allocations assumes buffers are 1
Kbyte in size, although in most cases, the buffer size is larger.</para><para>The amount of memory, which has not been allocated in the buffer pool,
can be found by looking at the <literal>bfreelist</literal> structure in the
kernel with a kernel debugger. The field of interest in the structure is <literal>bufsize</literal>, which is the possible remaining memory in bytes. Looking
at it with the <literal>buf</literal> macro by using <command>mdb</command>:</para><screen># <userinput>mdb</userinput> <option>k</option>Loading modules: [ unix krtld genunix ip nfs ipc ]
> <userinput>bfreelist$&lt;buf</userinput>
bfreelist:
[ elided ]
bfreelist + 0x78:	bufsize			[ elided ]
				 	      75734016</screen><para><literal>bufhwm</literal> on this system, with 6 Gbytes of memory, is
122277. It is not directly possible to determine the number of header structures
used since the actual buffer size requested is usually larger than 1 Kbyte.
However, some space might be profitably reclaimed from control structure allocation
for this system.</para><para>The same structure on the 512 Mbyte system shows that only 4 Kbytes
of 10144 Kbytes has not been allocated. When the <literal>biostats kstat</literal> is
examined with <command>kstat -n biostats</command>, it is seen that the system
had a reasonable ratio of <literal>buffer_cache_hits</literal> to <literal>buffer_cache_lookups</literal> as well. This indicates that the default setting is reasonable
for that system.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2><sect2 id="gfpvf"><title>TMPFS Parameters</title><sect3 id="gfpvy"><title><literal>tmpfs:tmpfs_maxkmem</literal> (Solaris 10
Releases)</title><para>The range description is updated to include sun4v systems. For more
information, see <olink targetptr="chapter2-129" remap="internal">tmpfs:tmpfs_maxkmem</olink>.</para>
</sect3><sect3 id="appendixa-26"><title><literal>tmpfs:tmpfs_minfree</literal> (Solaris
8 Releases)</title><para>In the Solaris 8 versions, the units was incorrectly described
as &ldquo;Bytes,&rdquo; instead of &ldquo;Pages.&rdquo;</para>
</sect3>
</sect2><sect2 id="gfpvd"><title>sun4u or sun4v Specific Parameters (Solaris
10 Releases)</title><para>The title of the Sun-4u Specific Parameters section was revised
in the Solaris 10 8/07 release to include sun4v systems.</para>
</sect2><sect2 id="gbbsb"><title>Solaris
Volume Manager Parameters</title><sect3 id="gbbsj"><title><literal>md_mirror:md_resync_bufsz</literal></title><para>In the Solaris Express release, the default value was increased to 1024
blocks from 128 blocks.</para>
</sect3>
</sect2>
</sect1><sect1 id="appendixa-47"><title>NFS
Tunable Parameters</title><sect2 id="gdoef"><title><literal>nfs:nfs3_nra</literal> (Solaris 10)</title><para>The
default value was incorrectly documented in the Solaris 10 release. The default
value is 4.</para>
</sect2><sect2 id="appendixa-48"><title><literal>nfs:nrnode</literal> (Solaris 9 8/03)</title><para>The
Solaris 10 description was updated to include the text &ldquo;NFS version
4 client.&rdquo;</para>
</sect2><sect2 id="appendixa-50"><title><literal>nfs:nfs_write_error_interval</literal> (Solaris
9 8/03)</title><para>The Solaris 10 description was updated to include the text &ldquo;NFS
version 4 client.&rdquo;</para>
</sect2><sect2 id="appendixa-51"><title><literal>nfs:nfs_write_error_to_cons_only</literal> (Solaris
9 8/03)</title><para>The Solaris 10 description was updated to include the text &ldquo;NFS
version 4 client.&rdquo;</para>
</sect2><sect2 id="appendixa-52"><title><literal>nfs:nfs_disable_rddir_cache</literal> (Solaris
9 8/03)</title><para>The Solaris 10 when to change text was updated to include the
text &ldquo;NFS version 4 client.&rdquo;</para>
</sect2><sect2 id="appendixa-53"><title><literal>nfs:nfs3_max_transfer_size</literal> (Solaris
9 8/03)</title><para>The Solaris 10 default description was updated to 1,048,576 (1
Mbyte) from 32, 768 (32 Kbytes).</para>
</sect2>
</sect1><sect1 id="appendixa-28"><title>TCP/IP Tunable Parameters</title><sect2 id="appendixa-44"><title><literal>ip_forward_src_routed</literal> and <literal>ip6_forward_src_routed</literal> (Solaris 10 Release)</title><para>The default value of these parameters was incorrectly documented in
the Solaris 9 and Solaris 10 releases. The correct default value is disabled.</para><variablelist><varlistentry><term>Description</term><listitem><para>Controls whether IPv4 or IPv6 forwards packets with source IPv4
routing options or IPv6 routing headers.</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>1 (enabled)</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-43"><title><literal>ip_multidata_outbound</literal> (Solaris
10 Release)</title><para>This parameter was enhanced in the Solaris Express 12/05 release to
deliver IP fragments in batches to the network driver. For more information,
see <olink targetptr="gbglv" remap="internal">ip_multidata_outbound</olink>.</para><variablelist><varlistentry><term>Description</term><listitem><para>Enables the network stack to send more than one packet at
one time to the network device driver during transmission.</para><para>Enabling this parameter reduces the per-packet processing costs by improving
host  CPU utilization, network throughput, or both.</para><para>The multidata transmit (MDT) feature is only effective for device
drivers that support this feature.</para><para>See also <olink targetptr="fapwd" remap="internal">tcp_mdt_max_pbufs</olink>.</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>1 (Enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 (disabled) or 1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>Yes</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>If you do not want this parameter enabled for debugging purposes
or for any other reasons, disable it.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry><varlistentry><term>Change History</term><listitem><para>For information, see <olink targetptr="appendixa-46" remap="internal">ip_multidata_outbound
(Solaris 9 Release)</olink>.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-46"><title><literal>ip_multidata_outbound</literal> (Solaris
9 Release)</title><para>This parameter information changed significantly in releases after the
Solaris 9 8/03 release. Please see <olink targetptr="gbglv" remap="internal">ip_multidata_outbound</olink> for more information.</para><variablelist><varlistentry><term>Description</term><listitem><para>This parameter enables the network stack to send more than
one packet at one time to the network device driver during transmission.</para><para>Enabling this parameter reduces the per-packet processing costs by improving
the host  CPU utilization and/or network throughput.</para><para>The multidata transmit (MDT) feature is only effective for device
drivers that support this feature.</para><para>The following parameter must be enabled in the <filename>/etc/system</filename> file
to use the MDT parameter:</para><para><literal>set ip:ip_use_dl_cap = 0x1</literal></para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>Disabled</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 (disabled), 1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>Yes</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>This feature can be enabled at any time to allow for improved
system performance with the following cautions:</para><itemizedlist><listitem><para>Enabling this feature might change the appearance of any packets
between the IP layer and the DLPI provider. So, any third-party STREAMS module
that is dynamically inserted between the IP layer and the DLPI provider by
using <command>ifconfig</command>'s  <command>modinsert</command> feature,
which doesn't understand the MDT STREAMS data type, might not work.</para><para>Modules
that are inserted between the IP and the DLPI provider with the <literal>autopush(1m)</literal> mechanism might not work as well.</para>
</listitem><listitem><para>Keep this feature disabled when a STREAMS module is not MDT
aware. For example, the public domain utilities such as ipfilter, Checkpoint
Firewall-1, and so on, are not MDT aware.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="getmg"><title><literal>ip_squeue_fanout</literal> (Solaris 10 11/06
Release)</title><para>Zone configuration information was added in the Solaris 10 8/07 release.
For more information, see <olink targetptr="chapter4-7" remap="internal">ip_squeue_fanout</olink>.</para>
</sect2><sect2 id="getlj"><title><literal>ip_squeue_worker_wait</literal> (Solaris
10 11/06 Release)</title><para>Zone configuration information was added in the Solaris 10 8/07 release.
For more information, see <olink targetptr="chapter4-5" remap="internal">ip_squeue_worker_wait</olink> In
addition, this parameter was moved to <olink targetptr="chapter4-66" remap="internal">TCP/IP
Parameters Set in the /etc/system File</olink>.</para>
</sect2><sect2 id="getmv"><title><literal>ip_soft_rings_cnt</literal> (Solaris 10
11/06 Release)</title><para>Zone configuration information was added in the Solaris 10 8/07 release.
For more information, see <olink targetptr="gbsbo" remap="internal">ip_soft_rings_cnt</olink>.</para>
</sect2><sect2 id="gcdcv"><title><literal>ip_squeue_write</literal> (Solaris 10 Release)</title><para>This parameter was incorrectly documented in the Solaris 10 release.
It has been removed.</para>
</sect2><sect2 id="appendixa-3"><title><literal>tcp_conn_hash_size</literal> (Solaris
9 Releases)</title><para>This parameter was removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Controls the hash table size in the TCP module for all TCP connections.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>512</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>512 to 1,073,741,824</para>
</listitem>
</varlistentry><varlistentry><term>Implicit</term><listitem><para>The value should be a power of 2.</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. The parameter can only be changed at boot time. </para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>If you set the parameter to a value that is not a power of
2, it is rounded up to the nearest power of 2.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>If the system consistently has tens of thousands of TCP connections,
increase the value accordingly. With the default value, TCP performs well
up to a few thousand active connections. Note that increasing the hash table
size means more memory consumption so set an appropriate value to avoid wasting
memory unnecessarily.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="gbudm"><title><literal>tcp_wscale_always</literal> (Solaris
9 Releases)</title><para>The default value of this parameter was changed to enabled in the Solaris
10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>When this parameter is enabled, which is the default setting,
TCP always sends a SYN segment with the window scale option, even if the window
scale option value is 0. Note that if TCP receives a SYN segment with the
window scale option, even if the parameter is disabled, TCP responds with
a SYN segment with the window scale option. In addition, the option value
is set according to the receive window size.</para><para>Refer to RFC 1323 for the window scale option.</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>0 (disabled)</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 (disabled) or 1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>Yes</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>If there is an interoperability problem with an old TCP stack
that does not support the window scale option, disable this parameter.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-4"><title><literal>ipc_tcp_conn_hash_size</literal> (Solaris
9 Releases)</title><para>This parameter was removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Controls the hash table size in an IP module for all active (in
ESTABLISHED state) TCP connections.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Unsigned integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>512</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>512 to 2,147,483,648</para>
</listitem>
</varlistentry><varlistentry><term>Implicit</term><listitem><para>It should be a power of two.</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. This parameter can only be changed at boot time. </para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>If you set the parameter to a value that is not a power of
2, it is rounded up to the nearest power of two.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>If the system consistently has tens of thousands of active
TCP connections, increase the value accordingly. With the default value, the
system performs well up to a few thousand active connections.  Note that increasing
the hash table size means more memory consumption so set an appropriate value
to avoid wasting memory unnecessarily.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-5"><title><literal>tcp_compression_enabled</literal> (Solaris
9 Releases)</title><para>This parameter was removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>If set to 1, protocol control blocks of TCP connections in TIME-WAIT
state are compressed to reduce memory usage. If set to 0, no compression is
done. See <olink targetptr="chapter4-51" remap="internal">tcp_time_wait_interval</olink> also. </para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 (disabled), 1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>Yes</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>Do not turn off the compression mechanism.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-9"><title><literal>ip_forwarding</literal> and <literal>ip6_forwarding</literal> (Solaris 9 Releases)</title><para>These parameters are obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Controls whether IP does IPv4 or IPv6 forwarding between interfaces.
See also <olink targetptr="appendixa-10" remap="internal">xxx:ip_forwarding (Solaris 9 Releases)</olink>.</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>0 (disabled)</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 (disabled) or 1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>Yes</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>If IP forwarding is needed, enable it.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-10"><title><replaceable>xxx</replaceable><literal>:ip_forwarding</literal> (Solaris 9 Releases)</title><para>This parameter is obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Enables IPv4 forwarding for a particular <replaceable>xxx</replaceable> interface. The exact name of the parameter is <replaceable>interface-name</replaceable><literal>:ip_forwarding</literal>. For example, two interfaces
are <literal>hme0</literal> and <literal>hme1</literal>. Here are their corresponding
parameter names:</para><para><literal>hme0:ip_forwarding</literal> and <literal>hme1:ip_forwarding</literal></para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>0 (disabled)</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 (disabled) or 1 (enabled)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>Yes</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>If you need IPv4 forwarding, use this parameter to enable
forwarding on a per-interface basis.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="eyplw"><title><literal>tcp_conn_req_max_q0</literal> (Solaris 8
Release)</title><para>The when to change text was revised in later Solaris releases from this:</para><variablelist><varlistentry><term>When to Change</term><listitem><para>For applications, such as web servers that might receive excessive
connection requests, you can increase the default value to match the incoming
rate.</para><para>The following explains the relationship between <literal>tcp_conn_req_max_q0</literal> and the maximum number of pending connections for each socket. </para><para>When a connection request is received, TCP first checks if the number
(<replaceable>N</replaceable>) of pending TCP connections (three-way handshake
is done) waiting to be accepted exceeds the maximum for the listener. If the
connections are excessive, the request is denied. If the number of connections
is allowable, then TCP checks if the number of incomplete pending TCP connections
exceeds the sum of <replaceable>N</replaceable> and <literal>tcp_conn_req_max_q0</literal>.
If it does not, the request is accepted. Otherwise, the oldest incomplete
pending TCP request is dropped.</para><para>to this:</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>For applications, such as web servers that might receive excessive
connection requests, you can increase the default value to match the incoming
rate.  </para><para>The following explains the relationship between <literal>tcp_conn_req_max_q0</literal> and the maximum number of pending connections for each socket.</para><para>When a connection request is received, TCP first checks if the number
of pending TCP connections (three-way handshake is done) waiting to be accepted
exceeds the maximum (<replaceable>N</replaceable>) for the listener. If the
connections are excessive, the request is denied. If the number of connections
is allowable, then TCP checks if the number of incomplete pending TCP connections
exceeds the sum of N and <literal>tcp_conn_req_max_q0</literal>. If it does
not, the request is accepted. Otherwise, the oldest incomplete pending TCP
request is dropped.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1><sect1 id="gbhkm"><title>UDP Tunable Parameters</title><sect2 id="gbhkk"><title><literal>udp_xmit_hiwat</literal> (Solaris 9 Releases)</title><para>The default value and range of values changed in the Solaris 10 release.</para><variablelist><varlistentry><term>Default</term><listitem><para>8192 bytes</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>4096 to 65,536 bytes</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="gbhkt"><title><literal>udp_recv_hiwat</literal> (Solaris 9 Releases)</title><para>The default value and range of values changed in the Solaris 10 release.</para><variablelist><varlistentry><term>Default</term><listitem><para>8192 bytes</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>4096 to 65,536 bytes</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="appendixa-49"><title><literal>udp_max_buf</literal> (Solaris 9
Releases)</title><para>The default value changed in the Solaris 10 release.</para><variablelist><varlistentry><term>Default</term><listitem><para>262, 144 bytes</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1><sect1 id="appendixa-39"><title>Network Cache and Accelerator (NCA) Tunable
Parameters</title><sect2 id="appendixa-45"><title><literal>sq_max_size</literal> (Solaris 9
12/02 Release)</title><para>This parameter information changed significantly in later Solaris releases.
Please see <olink targetptr="chapter5-11" remap="internal">sq_max_size</olink> for more information.</para><variablelist><varlistentry><term>Description</term><listitem><para>The depth of the syncq (number of messages) before a destination
streams queue generates a <literal>QFULL</literal> message.</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>2 messages</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to 0 (unlimited)</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When NCA is running on a system with a lot of memory, increase
this parameter to allow drivers to queue more packets of data. If a server
is under heavy load, increase this  parameter so modules and drivers may process
more data without dropping packets or getting backlogged.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1><sect1 id="appendixa-6"><title>Parameters That Are Obsolete or Have Been Removed</title><para>The following section describes parameters that are obsolete or have
been removed from more recent Solaris releases.</para><sect2 id="appendixa-7"><title>Paging-Related Tunables</title><sect3 id="chapter2-119"><title><literal>cachefree</literal> (Solaris 8 Releases)</title><para>Obsolete in Solaris 9 and later releases.</para><variablelist><varlistentry><term>Description</term><listitem><para>The Solaris 8 release changes the way file system pages are cached.
These changes subsume the priority paging capability. </para><note><para>Remove both <literal>cachefree</literal> and <literal>priority_paging</literal> settings in the <filename>/etc/system</filename> file.</para>
</note><para>The caching changes remove most of the pressure on the virtual memory
system resulting from file system activity. Several statistics exhibit new
behavior:</para><itemizedlist><listitem><para>Page reclaims are higher because pages are now explicitly
added to the free list after I/O completes.</para>
</listitem><listitem><para>Free memory is now higher because the free memory count now
includes a large component of the file cache. </para>
</listitem><listitem><para>Scan rates are drastically reduced.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Obsolete</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-120"><title><literal>priority_paging</literal> (Solaris
8 Releases)</title><para>Obsolete in Solaris 9 and later releases.</para><variablelist><varlistentry><term>Description</term><listitem><para>This variable sets <literal>cachefree</literal> to 2 times <literal>lotsfree</literal>.</para><para>The Solaris 8 release changes the way file system pages are cached.
These changes subsume the priority paging capability. </para><note><para>Remove both <literal>cachefree</literal> and <literal>priority_paging</literal> settings in the <filename>/etc/system</filename> file.</para>
</note>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Obsolete</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-23"><title><literal>tune_t_gpgslo</literal> (Solaris
7 Releases)</title><variablelist><varlistentry><term>Description</term><listitem><para>Obsolete in the Solaris 8 release. Variable left in place for
compatibility reasons.</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-24"><title><literal>tune_t_minasmem</literal> (Solaris
7 Releases)</title><variablelist><varlistentry><term>Description</term><listitem><para>Obsolete in the Solaris 8 release. Variable left in place for
compatibility reasons.</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2><sect2 id="appendixa-15"><title>System V Message Queue Parameters</title><sect3 id="appendixa-13"><title><literal>msgsys:msginfo_msgmni</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum number of message queues that can be created.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>50</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>msgmni</literal> field of <literal>msginfo</literal> structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When <olink targetdoc="refman2" targetptr="msgget-2" remap="external"><citerefentry><refentrytitle>msgget</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> calls
return with an error of <literal>ENOSPC</literal> or at the recommendation
of a software vendor.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-17"><title><literal>msgsys:msginfo_msgtql</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum number of messages that can be created. If a <literal>msgsnd</literal> call
attempts to exceed this limit, the request is deferred until a message header
is available. Or, if the request has set the <literal>IPC_NOWAIT</literal> flag,
the request fails with the error <literal>EAGAIN</literal>.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>40</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>msgtql</literal> field of <literal>msginfo</literal> structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When <literal>msgsnd()</literal> calls block or return with
error of <literal>EGAIN</literal>, or at the recommendation of a software
vendor.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-18"><title><literal>msgsys:msginfo_msgmnb</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum number of bytes that can be on any one message queue. </para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Unsigned long</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>4096</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to amount of physical memory</para>
</listitem>
</varlistentry><varlistentry><term>Units</term><listitem><para>Bytes</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>msgmnb</literal> field of <literal>msginfo</literal> structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When <literal>msgsnd()</literal> calls block or return with
an error of <literal>EGAIN</literal>, or at the recommendation of a software
vendor.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-19"><title><literal>msgsys:msginfo_msgssz</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Specifies size of chunks system uses to manage space for message
buffers.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>40</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>msgtql</literal> field of <literal>msginfo</literal>structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The space consumed by the maximum number of data structures
that would be created to support the messages and queues is compared to 25%
of the available kernel memory at the time the module is loaded. If the number
is too big, the message queue module refuses to load and the facility is unavailable.
This computation does include the space that might be consumed by the messages.
This situation occurs only when the module is first loaded.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Obsolete</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-62"><title><literal>msgsys:msginfo_msgmap</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Number of messages the system supports.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>100</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The space consumed by the maximum number of data structures
that would be created to support the messages and queues is compared to 25%
of the available kernel memory at the time the module is loaded. If the number
is too big, the message queue module refuses to load and the facility is unavailable.
This computation does include the space that might be consumed by the messages.
This situation occurs only when the module is first loaded.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Obsolete</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-20"><title><literal>msgsys:msginfo_msgseg</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Number of <literal>msginfo_msgssz</literal> segments the system
uses as a pool for available message memory. Total memory available for messages
is <literal>msginfo_msgseg * msginfo_msgssz</literal>. </para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed short</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>1024</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to 32,767</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The space consumed by the maximum number of data structures
that would be created to support the messages and queues is compared to 25%
of the available kernel memory at the time the module is loaded. If the number
is too big, the message queue module refuses to load and the facility is unavailable.
This computation does not include the space that might be consumed by the
messages. This situation occurs only when the module is first loaded.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Obsolete</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-22"><title><literal>msgsys:msginfo_msgmax</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum size of System V message.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Unsigned long</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>2048</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to amount of physical memory</para>
</listitem>
</varlistentry><varlistentry><term>Units</term><listitem><para>Bytes</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>msgmax</literal> field of <literal>msginfo</literal> structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None </para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When <olink targetdoc="refman2" targetptr="msgsnd-2" remap="external"><citerefentry><refentrytitle>msgsnd</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> calls
return with error of <literal>EINVAL</literal> or at the recommendation of
a software vendor.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2><sect2 id="appendixa-14"><title>System V Semaphore Parameters</title><sect3 id="ftyvi"><title><literal>semsys:seminfo_semmni</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Specifies the maximum number of semaphore identifiers.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>10</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to 65,535</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No </para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>Compared to <literal>SEMA_INDEX_MAX</literal> (currently 65,535)
and reset to that value if larger. A warning message is written to the console,
messages file, or both.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default number of sets is not enough. Generally changed
at the recommendation of software vendors. No error messages are displayed
when an attempt is made to create more sets than are currently configured.
Instead, the application receives a return code of <literal>ENOSPC</literal> from
a <literal>semget</literal> call.</para><para>For more information, see <olink targetdoc="refman2" targetptr="semget-2" remap="external"><citerefentry><refentrytitle>semget</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink>.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="ftzit"><title><literal>semsys:seminfo_semmsl</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Specifies the maximum number of System V semaphores per semaphore
identifier.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>25</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The amount of space that could possibly be consumed by the
semaphores and their supporting data structures is compared to 25 percent
of the kernel memory available at the time the module is first loaded. If
the memory threshold is exceeded, the module refuses to load and the semaphore
facility is not available.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors. No error messages are displayed when
an attempt is made to create more semaphores in a set than are currently configured.
The application sees a return code of <literal>EINVAL</literal> from a <olink targetdoc="refman2" targetptr="semget-2" remap="external"><citerefentry><refentrytitle>semget</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> call.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="ftyyv"><title><literal>semsys:seminfo_semopm</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Specifies the maximum number of System V semaphore operations
per <literal>semop</literal> call. This parameter refers to the number of <literal>sembufs</literal> in the <literal>sops</literal> array that is provided to
the <literal>semop()</literal> system call. For more information, see <olink targetdoc="refman2" targetptr="semop-2" remap="external"><citerefentry><refentrytitle>semop</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink>. </para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>10</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The amount of space that could possibly be consumed by the
semaphores and their supporting data structures is compared to 25 percent
of the kernel memory available at the time the module is first loaded. If
the memory threshold is exceeded, the module refuses to load and the semaphore
facility is not available.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors. No error messages are displayed when
an attempt is made to perform more semaphore operations in a single <literal>semop</literal> call than are currently allowed. Instead, the application receives
a return code of <literal>E2BIG</literal> from a <literal>semop()</literal> call.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-42"><title><literal>semsys:seminfo_semmns</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum number of System V semaphores on the system.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>60</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The amount of space that could possibly be consumed by the
semaphores and their supporting data structures is compared to 25% of the
kernel memory available at the time the module is first loaded. If the memory
threshold is exceeded, the module refuses to load and the semaphore facility
is not available.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default number of semaphores is not enough. Generally
changed at the recommendation of software vendors. No error messages are displayed
when an attempt is made to create more semaphores than are currently configured.
The application sees a return code of <literal>ENOSPC</literal> from a <olink targetdoc="refman2" targetptr="semget-2" remap="external"><citerefentry><refentrytitle>semget</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> call.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-57"><title><literal>semsys:seminfo_semmnu</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Total number of undo structures supported by the System V semaphore
system.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>30</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No </para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The amount of space that could possibly be consumed by the
semaphores and their supporting data structures is compared to 25% of the
kernel memory available at the time the module is first loaded. If the memory
threshold is exceeded, the module refuses to load and the semaphore facility
is not available.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors. No error message is displayed when
an attempt is made to perform more undo operations than are currently configured.
The application sees a return value of <literal>ENOSPC</literal> from a <olink targetdoc="refman2" targetptr="semop-2" remap="external"><citerefentry><refentrytitle>semop</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> call when the system runs
out of undo structures.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-58"><title><literal>semsys:seminfo_semume</literal> (Solaris
9 Releases)</title><variablelist><varlistentry><term>Description</term><listitem><para>Removed in the Solaris 10 release.</para><para>Maximum number of System V semaphore undo structures that can
be used by any one process.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>10</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The amount of space that could possibly be consumed by the
semaphores and their supporting data structures is compared to 25% of the
kernel memory available at the time the module is first loaded. If the memory
threshold is exceeded, the module refuses to load and the semaphore facility
is not available.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors. No error messages are displayed when
an attempt is made to perform more undo operations than are currently configured.
The application sees a return code of <literal>EINVAL</literal> from a <olink targetdoc="refman2" targetptr="semop-2" remap="external"><citerefentry><refentrytitle>semop</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> call.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-59"><title><literal>semsys:seminfo_semvmx</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum value a semaphore can be set to.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Unsigned short</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>32,767</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to 65,535</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors. No error messages are displayed when
the maximum value is exceeded. The application sees a return code of <literal>ERANGE</literal> from a <olink targetdoc="refman2" targetptr="semop-2" remap="external"><citerefentry><refentrytitle>semop</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> call.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-60"><title><literal>semsys:seminfo_semaem</literal> (Solaris
9 Releases)</title><para>Removed in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum value that a semaphore's value in an undo structure can
be set to.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Unsigned short</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>16,384</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>1 to 65,535</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is not enough. Generally changed at
the recommendation of software vendors. No error messages are displayed when
an attempt is made to perform more undo operations than are currently configured.
The application sees a return code of <literal>EINVAL</literal> from a <olink targetdoc="refman2" targetptr="semop-2" remap="external"><citerefentry><refentrytitle>semop</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> call.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-72"><title><literal>semsys:seminfo_semmap</literal> (Solaris
7 Releases)</title><para>Obsolete in the Solaris 8 release. Variable is present in kernel
for compatibility reasons but is no longer used.</para>
</sect3><sect3 id="appendixa-61"><title><literal>semsys:seminfo_semusz</literal> (Solaris
7 Releases)</title><para>Obsolete in the Solaris 8 release. Any values entered are ignored.</para>
</sect3>
</sect2><sect2 id="appendixa-30"><title>System V Shared Memory Parameters</title><sect3 id="appendixa-63"><title><literal>shmsys:shminfo_shmmni</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>System wide limit on number of shared memory segments that can
be created.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Signed integer</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>100</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 to MAXINT</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>shmmni</literal> field of <literal>shminfo</literal> structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>The amount of space consumed by the maximum possible number
of data structures to support System V shared memory is checked against 25%
of the currently available kernel memory at the time the module is loaded.
If the memory consumed is too large, the attempt to load the module fails.</para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the system limits are too low. Generally changed on the
recommendation of software vendors.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-64"><title><literal>shmsys:shminfo_shmmax</literal> (Solaris
9 Releases)</title><para>Obsolete in the Solaris 10 release.</para><variablelist><varlistentry><term>Description</term><listitem><para>Maximum size of system V shared memory segment that can be created.
This parameter is an upper limit that is checked before the application sees
if it actually has the physical resources to create the requested memory segment.</para><para>Attempts to create a shared memory section whose size is zero or whose
size is larger than the specified value will fail with an <literal>EINVAL</literal> error.</para><para>This parameter specifies only the largest value the operating system
can accept for the size of a shared memory segment. Whether the segment can
be created depends entirely on the amount of swap space available on the system
and, for a 32-bit process, whether there is enough space available in the
process's address space for the segment to be attached.</para>
</listitem>
</varlistentry><varlistentry><term>Data Type</term><listitem><para>Unsigned long</para>
</listitem>
</varlistentry><varlistentry><term>Default</term><listitem><para>8,388,608</para>
</listitem>
</varlistentry><varlistentry><term>Range</term><listitem><para>0 - MAXUINT32 on 32-bit systems, 0 &ndash; MAXUINT64 on 64-bit
systems</para>
</listitem>
</varlistentry><varlistentry><term>Units</term><listitem><para>Bytes</para>
</listitem>
</varlistentry><varlistentry><term>Dynamic?</term><listitem><para>No. Loaded into <literal>shmmax</literal> field of <literal>shminfo</literal> structure.</para>
</listitem>
</varlistentry><varlistentry><term>Validation</term><listitem><para>None </para>
</listitem>
</varlistentry><varlistentry><term>When to Change</term><listitem><para>When the default value is too low. Generally changed at the
recommendation of software vendors, but unless the size of a shared memory
segment needs to be constrained, setting this parameter to the maximum possible
value has no side effects.</para>
</listitem>
</varlistentry><varlistentry><term>Commitment Level</term><listitem><para>Unstable</para>
</listitem>
</varlistentry>
</variablelist>
</sect3><sect3 id="appendixa-33"><title><literal>shmsys:shminfo_shmmin</literal> (Solaris
8 Release)</title><para>Obsolete in the Solaris 9 release. Variable is present in kernel
for compatibility reasons but is no longer used.</para>
</sect3><sect3 id="appendixa-32"><title><literal>shmsys:shminfo_shmseg</literal> (Solaris
8 Release)</title><para>Obsolete in the Solaris 9 release. Variable is present in kernel
for compatibility reasons but is no longer used.</para>
</sect3>
</sect2><sect2 id="appendixa-16"><title>NFS Module Parameters</title><sect3 id="appendixa-34"><title><literal>nfs:nfs_32_time_ok</literal> (Solaris
7)</title><para>Obsolete in the Solaris 8 release.</para>
</sect3>
</sect2>
</sect1>
</appendix>