1.\"	$MirOS: src/share/man/man4/options.4,v 1.4 2006/01/18 09:22:06 tg Exp $
2.\"	$OpenBSD: options.4,v 1.142 2004/05/05 00:23:29 millert Exp $
3.\"	$NetBSD: options.4,v 1.21 1997/06/25 03:13:00 thorpej Exp $
4.\"
5.\" Copyright (c) 1998 Theo de Raadt
6.\" Copyright (c) 1998 Todd Miller
7.\" Copyright (c) 1998 Gene Skonicki
8.\" Copyright (c) 1996
9.\" 	Perry E. Metzger.  All rights reserved.
10.\"
11.\" Redistribution and use in source and binary forms, with or without
12.\" modification, are permitted provided that the following conditions
13.\" are met:
14.\" 1. Redistributions of source code must retain the above copyright
15.\"    notice, this list of conditions and the following disclaimer.
16.\" 2. Redistributions in binary form must reproduce the above copyright
17.\"    notice, this list of conditions and the following disclaimer in the
18.\"    documentation and/or other materials provided with the distribution.
19.\" 3. All advertising materials mentioning features or use of this software
20.\"    must display the following acknowledgment:
21.\"	This product includes software developed for the NetBSD Project
22.\"	by Perry E. Metzger.
23.\" 4. The name of the author may not be used to endorse or promote products
24.\"    derived from this software without specific prior written permission.
25.\"
26.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
27.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
29.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
30.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
31.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\"
37.\"
38.Dd March 21, 2004
39.Dt OPTIONS 4
40.Os
41.Sh NAME
42.Nm options
43.Nd miscellaneous kernel configuration options
44.Sh SYNOPSIS
45.Cd option ...
46.Sh DESCRIPTION
47This manual page describes a number of miscellaneous kernel
48configuration options that may be specified in a kernel config file.
49See
50.Xr config 8
51for information on how to configure and build kernels.
52.Em Note:
53options are passed to the compile process as
54.Fl D
55flags to the C compiler.
56.Ss Compatibility Options
57.Bl -ohang
58.It Cd option COMPAT_LINUX
59On those architectures that support it, this enables binary
60compatibility with
61.Em Linux
62ELF and a.out
63applications built for the same architecture.
64This option is supported on the i386 architecture.
65See
66.Xr compat_linux 8 .
67.Pp
68This option also enables execution of ET_DYN binaries, such as
69.Pa ld-linux.so.2 .
70.It Cd option COMPAT_OPENBSD
71This enables binary compatibility with
72.Em OpenBSD
73applications built for the same architecture.
74This option is available on all architectures.
75See
76.Xr compat_openbsd 8 .
77.El
78.Ss Debugging Options
79.Bl -ohang
80.It Cd option DDB
81Compiles in a kernel debugger for diagnosing kernel problems.
82See
83.Xr ddb 4
84for details.
85.Em Note:
86not available on all architectures.
87.It Cd option DDB_SAFE_CONSOLE
88Allows a break into the kernel debugger during boot.
89Useful when debugging problems that can cause init(8) to fail.
90.It Cd option KGDB
91Compiles in a remote kernel debugger stub for diagnosing kernel problems
92using the
93.Dq remote target
94feature of gdb.
95See
96.Xr kgdb 7
97for details.
98.Em Note:
99not available on all architectures.
100.It Cd makeoptions DEBUG="-g"
101The
102.Fl g
103flag causes
104.Pa bsd.gdb
105to be built in addition to
106.Pa bsd .
107.Pa bsd.gdb
108is useful for debugging kernels and their crash dumps with gdb.
109Note that
110.Xr gdb 1 Ns 's
111.Fl k
112flag is obsolete and should not be used.
113Instead, a crash dump can be debugged by starting
114.Xr gdb 1
115with the kernel name as an argument (no core file) and then use the
116.Xr gdb 1
117command
118.Dq target kcore COREFILE .
119.It Cd option DEBUG
120Turns on miscellaneous kernel debugging.
121Since options are turned into preprocessor defines (see above),
122.Cm option DEBUG
123is equivalent to doing a
124.Em #define DEBUG
125throughout the kernel.
126Much of the kernel has
127.Em #ifdef DEBUG
128conditional debugging code.
129Note that many parts of the kernel (typically device drivers) include their own
130.Em #ifdef XXX_DEBUG
131conditionals instead.
132This option also turns on certain other options, notably
133.Cm option KMEMSTATS ,
134which may decrease system performance.
135.It Cd option DIAGNOSTIC
136Adds code to the kernel that does internal consistency checks.
137This code will cause the kernel to panic if corruption of internal data
138structures is detected.
139.It Cd option SMALL_KERNEL
140Removes some optimizations from the kernel to reduce the size of the
141resulting kernel binary.
142This option can decrease system performance.
143.It Cd option NO_PROPOLICE
144Do not compile the kernel with the propolice stack protection.
145See
146.Xr gcc-local 1
147for more information about propolice.
148.It Cd option GPROF
149Adds code to the kernel for kernel profiling with
150.Xr kgmon 8 .
151.It Cd makeoptions PROF="-pg"
152The
153.Fl pg
154flag causes the kernel to be compiled with support for profiling.
155The
156.Cm option GPROF
157is required for the kernel compile to succeed.
158.It Cd option KTRACE
159Adds hooks for the system call tracing facility, which allows users to
160watch the system call invocation behavior of processes.
161See
162.Xr ktrace 1
163for details.
164.It Cd option PTRACE
165Adds hooks for the process tracing facility, allowing a process to
166control and observe another process.
167See
168.Xr ptrace 2
169for details.
170.It Cd option RAIDDEBUG
171Be verbose on what RAIDframe does.
172See
173.Xr raid 4
174for details.
175.El
176.Ss File Systems
177.Bl -ohang
178.It Cd option FFS
179Includes code implementing the Berkeley Fast File System
180.Em ( FFS ) .
181Most machines need this if they are not running diskless.
182.It Cd option EXT2FS
183Includes code implementing the Second Extended File System
184.Em ( EXT2FS ) .
185This is the most commonly used file system on the Linux operating system,
186and is provided here for compatibility.
187Some specific features of
188.Em EXT2FS
189like the "behavior on errors" are not implemented.
190This file system
191can't be used with
192.Li uid_t
193or
194.Li gid_t
195values greater than 65535.
196Also, the filesystem will not function correctly on architectures with
197differing byte-orders.
198That is, a big-endian machine will not be able to read an
199ext2fs filesystem created on an i386 or other little-endian machine.
200See
201.Xr mount_ext2fs 8
202for details.
203.It Cd option MFS
204Include the memory file system
205.Em ( MFS ) .
206This file system stores files in swappable memory, and produces
207notable performance improvements when it is used as the file store
208for
209.Pa /tmp
210or similar mount points.
211See
212.Xr mount_mfs 8
213for details.
214.It Cd option NFSCLIENT
215Include the client side of the
216.Em NFS
217(Network File System) remote file sharing protocol.
218Although the bulk of the code implementing
219.Em NFS
220is kernel based, several user level daemons are needed for it to work.
221See
222.Xr mount_nfs 8
223for details on NFS.
224.It Cd option CD9660
225Includes code for the ISO 9660 + Rock Ridge file system, which is the
226standard file system used on many CD-ROMs.
227It also supports Joliet extensions.
228See
229.Xr mount_cd9660 8
230for details.
231.It Cd option MSDOSFS
232Includes support for the
233.Tn MS-DOS
234FAT file system.
235The kernel also implements the
236.Tn Windows 95
237extensions which permit the use of longer, mixed-case file names.
238See
239.Xr mount_msdos 8
240and
241.Xr fsck_msdos 8
242for details.
243.It Cd option NTFS
244Includes support for reading NTFS file systems.
245Experimental and read only.
246See
247.Xr mount_ntfs 8
248for details.
249.It Cd option FDESC
250Includes code for a file system which can be mounted on
251.Pa /dev/fd .
252This filesystem permits access to the per-process file descriptor
253space via special files in the file system.
254See
255.Xr mount_fdesc 8
256for details.
257Note that this facility is redundant, and thus unneeded on most
258.Ox
259systems, since the
260.Xr fd 4
261pseudo-device driver already provides identical functionality.
262On most systems, instances of
263.Xr fd 4
264are mknoded under
265.Pa /dev/fd/
266and on
267.Pa /dev/stdin ,
268.Pa /dev/stdout ,
269and
270.Pa /dev/stderr .
271.It Cd option KERNFS
272Includes code which permits the mounting of a special file system
273(normally mounted on
274.Pa /kern )
275in which files representing various kernel variables and parameters
276may be found.
277See
278.Xr mount_kernfs 8
279for details.
280.It Cd option NULLFS
281Includes code for a loopback file system.
282This permits portions of the file hierarchy to be re-mounted in other places.
283The code really exists to provide an example of a stackable file system layer.
284See
285.Xr mount_null 8
286for details.
287.It Cd option PORTAL
288Includes the (experimental) portal filesystem.
289This permits interesting tricks like opening TCP sockets by opening files in
290the file system.
291The portal file system is conventionally mounted on
292.Pa /p
293and is partially implemented by a special daemon.
294See
295.Xr mount_portal 8
296for details.
297.It Cd option PROCFS
298Includes code for a special file system (conventionally mounted on
299.Pa /proc )
300in which the process space becomes visible in the file system.
301Among other things, the memory spaces of processes running on the system are
302visible as files, and signals may be sent to processes by writing to
303.Pa ctl
304files in the procfs namespace.
305See
306.Xr mount_procfs 8
307for details.
308.It Cd option UMAPFS
309Includes a loopback file system in which user and group IDs may be
310remapped -- this can be useful when mounting alien file systems with
311different uids and gids than the local system (eg, remote NFS).
312See
313.Xr mount_umap 8
314for details.
315.It Cd option UNION
316Includes code for the union file system, which permits directories to
317be mounted on top of each other in such a way that both file systems
318remain visible -- this permits tricks like allowing writing (and the
319deleting of files) on a read-only file system like a CD-ROM by
320mounting a local writable file system on top of the read-only file
321system.
322This filesystem is still experimental and is known to be somewhat unstable.
323See
324.Xr mount_union 8
325for details.
326.El
327.Ss File System Options
328.Bl -ohang
329.It Cd option FFS_SOFTUPDATES
330Enables a scheme that uses partial ordering of buffer cache operations
331to allow metadata updates in FFS to happen asynchronously, increasing write
332performance significantly.
333Normally, the FFS filesystem writes metadata updates synchronously which exacts
334a performance penalty in favor of filesystem integrity.
335With soft updates, the performance of asynchronous writes is gained while
336retaining the safety of synchronous metadata updates.
337.Pp
338Soft updates must be enabled on a per-filesystem basis.
339See
340.Xr mount 8
341for details.
342.Pp
343Processors with a small kernel address space, such as the sun4 and sun4c, do
344not have enough kernel memory to support soft updates.
345Attempts to use this option with these CPUs will cause a kernel hang or panic
346after a short period of use as the kernel will quickly run out of memory.
347This is not related to the amount of physical memory present in the machine --
348it is a limitation of the CPU architecture itself.
349.It Cd option BUFCACHEPERCENT=integer
350Percentage of RAM to use as a file system buffer.
351It defaults to 5.
352.It Cd option NFSSERVER
353Include the server side of the
354.Em NFS
355(Network File System) remote file sharing protocol.
356Although the bulk of the code implementing
357.Em NFS
358is kernel based, several user level daemons are needed for it to
359work.
360See
361.Xr mountd 8
362and
363.Xr nfsd 8
364for details.
365.It Cd option QUOTA
366Enables kernel support for file system quotas.
367See
368.Xr quotaon 8 ,
369.Xr edquota 8 ,
370.Xr repquota 8 ,
371and
372.Xr quota 1
373for details.
374Note that quotas only work on
375.Dq ffs
376file systems, although
377.Xr rpc.rquotad 8
378permits them to be accessed over
379.Em NFS .
380.It Cd option FIFO
381Adds support for
382.At V
383style FIFOs (i.e.,
384.Dq named pipes ) .
385This option is recommended in almost all cases as many programs use these.
386.It Cd option EXT2FS_SYSTEM_FLAGS
387This option changes the behavior of the APPEND and IMMUTABLE flags
388for a file on an
389.Em EXT2FS
390filesystem.
391Without this option, the superuser or owner of the file can set and clear them.
392With this option, only the superuser can set them, and they can't be cleared
393if the securelevel is greater than 0.
394See also
395.Xr chflags 1 .
396.It Cd option UFS_EXTATTR
397This option enables Extended Attribute support for UFS filesystems.
398.It Cd option UFS_EXTATTR_AUTOSTART
399This option causes Extended Attributes to be started and enabled when each
400UFS filesystem is mounted.
401The attribute storage is expected to be (relative to mount point)
402.Pa /.attribute/{system|user}/<attrname>
403.It Cd option UFS_DIRHASH
404This option enables using an in memory hash table to speed lookups
405in large directories.
406.El
407.Ss Miscellaneous Options
408.Bl -ohang
409.It Cd option PCIVERBOSE
410Makes the boot process more verbose for PCI peripherals
411(vendor names and other information is printed, etc.).
412.It Cd option PCMCIAVERBOSE
413Makes the boot process more verbose for PCMCIA peripherals.
414.It Cd option MACOBIOVERBOSE
415Makes the boot process more verbose for Mac OBIO peripherals.
416.It Cd option APERTURE
417Provide in-kernel support for controlling VGA framebuffer mapping
418and PCI configuration registers by user-processes
419(such as an X Window System server).
420This option is supported on the
421.Va alpha ,
422.Va i386 ,
423.Va macppc ,
424and
425.Va sparc64
426architectures.
427.It Cd option LKM
428Enables support for loadable kernel modules.
429See
430.Xr lkm 4
431for details.
432.Em Note:
433This option is not yet available on all architectures.
434.It Cd option CRYPTO
435Enables support for the kernel cryptographic framework.
436See
437.Xr crypto 9
438for details.
439While not IP specific, this option is usually used in conjunction with option
440.Em IPSEC .
441.It Cd option INSECURE
442Hardwires the kernel security level at \-1.
443This means that the system always runs in securelevel 0 mode, even when
444running multiuser.
445See
446.Xr init 8
447for details on the implications of this.
448The kernel secure level may be manipulated by the superuser by altering the
449.Em kern.securelevel
450sysctl variable.
451(It should be noted that the securelevel may only be lowered by a call from
452process ID 1, i.e.,
453.Xr init 8 . )
454See also
455.Xr sysctl 8
456and
457.Xr sysctl 3 .
458.It Cd option CCDNBUF=integer
459The
460.Xr ccd 4
461device driver uses
462.Dq component buffers
463to distribute I/O requests to the components of a concatenated disk.
464It keeps a freelist of buffer
465headers in order to reduce use of the kernel memory allocator.
466.Em CCDNBUF
467is the number of buffer headers allocated on the freelist for
468each component buffer.
469It defaults to 8.
470.It Cd option KMEMSTATS
471The kernel memory allocator,
472.Xr malloc 9 ,
473will keep statistics on its performance if this option is enabled.
474Unfortunately, this option therefore essentially disables
475.Fn MALLOC
476and
477.Fn FREE
478forms of the memory allocator, which are used to enhance the
479performance of certain critical sections of code in the kernel.
480This option therefore can lead to a significant decrease in the performance
481of certain code in the kernel if enabled.
482Examples of such code include the
483.Fn namei
484routine, the
485.Xr ccd 4
486driver,
487the
488.Xr ncr 4
489driver, and much of the networking code.
490Note that this option is silently turned on by the
491.Em DEBUG
492option.
493.It Cd option BOOT_CONFIG
494Adds support for the
495.Fl c
496boot option (User Kernel Config).
497Allows modification of kernel settings (e.g., device parameters) before
498booting the system.
499.It Cd option RAID_AUTOCONFIG
500Adds support for auto-configuring the RAIDframe devices during the kernel
501initialization.
502See
503.Xr raid 4
504and
505.Xr raidctl 8
506for details.
507.It Cd option UVM_SWAP_ENCRYPT
508Enables kernel support for encrypting pages that are written out to
509swap storage.
510Swap encryption prevents sensitive data from remaining
511on the disk even after the operating system has been shut down.
512This option should be turned on if cryptographic filesystems are used.
513The sysctl variable
514.Em vm.swapencrypt.enable
515controls its behaviour.
516See
517.Xr sysctl 8
518and
519.Xr sysctl 3
520for details.
521.It Cd option USER_PCICONF
522Enables the user level access to the PCI bus configuration space
523through ioctls on the
524.Pa /dev/pci
525device.
526It's used by the
527.Xr XFree86 1
528server on some architectures.
529See
530.Xr pci 4
531for details.
532.It Cd option PCIAGP
533Enables
534.Xr ioctl 2
535access to the AGP GART on the supported chipsets.
536It's used by the
537.Xr XFree86 1
538server on some architectures.
539See
540.Xr vga 4
541for details.
542.It Cd option INCLUDE_CONFIG_FILE
543Includes the configuration file given to
544.Xr config 8
545in the kernel image. It can be recovered later by executing
546.Em strings -n4 /bsd | sed -n 's/^=CF=//p'
547.El
548.Ss Networking Options
549.Bl -ohang
550.It Cd option IPFORWARDING
551Enables IP routing behavior.
552With this option enabled, the machine
553will forward IP datagrams between its interfaces that are destined for
554other machines.
555Note that even without this option, the kernel will
556still forward some packets (such as source routed packets) -- removing
557.Em IPFORWARDING
558is insufficient to stop all routing through a bastion host on a
559firewall -- source routing is controlled independently.
560Note that IP
561forwarding may be turned on and off independently of the setting of the
562.Em IPFORWARDING
563option through the use of the
564.Em net.inet.ip.forwarding
565sysctl variable.
566If
567.Em net.inet.ip.forwarding
568is 1, IP forwarding is on.
569See
570.Xr sysctl 8
571and
572.Xr sysctl 3
573for details.
574.It Cd option MROUTING
575Includes support for IP multicast routers.
576.Em INET
577should be set along with this.
578Multicast routing is controlled by the
579.Xr mrouted 8
580daemon.
581.It Cd option INET
582Includes support for the TCP/IP protocol stack.
583This option is currently required.
584See
585.Xr inet 4
586for details.
587.It Cd option INET6
588Includes support for the
589.Tn IPv6
590protocol stack.
591See
592.Xr inet6 4
593for details.
594Unlike
595.Em INET ,
596.Em INET6
597enables multicast routing code as well.
598This option requires
599.Em INET
600at this moment, but it should not.
601.It Cd option ND6_DEBUG
602The option sets the default value of
603.Em net.inet6.icmp6.nd6_debug
604to 1,
605for debugging IPv6 neighbor discovery protocol handling.
606See
607.Xr sysctl 3
608for details.
609.It Cd option IPX, IPXIP
610Include support for Internetwork Packet Exchange protocol commonly in
611use by
612.Tn Novell NetWare .
613.It Cd option NETATALK
614Include kernel support for the AppleTalk family of protocols.
615This suite of supporting code is sometimes called
616.Em netatalk
617support.
618.It Cd option TCP_COMPAT_42
619Use of this option is
620.Em extremely
621discouraged, so it should not be enabled.
622If any other machines on the network require enabling this, it's
623recommended that
624.Em they
625be disconnected from the network.
626.Pp
627TCP bug compatibility with
628.Bx 4.2 .
629In
630.Bx 4.2 ,
631TCP sequence numbers
632were 32-bit signed values.
633Modern implementations of TCP use unsigned values.
634This option clamps the initial sequence number to start in
635the range 2^31 rather than the full unsigned range of 2^32.
636Also, under
637.Bx 4.2 ,
638keepalive packets must contain at least one byte or else
639the remote end will not respond.
640.It Cd option TCP_SACK
641Turns on selective acknowledgements.
642Additional information about
643segments already received can be transmitted back to the sender,
644thus indicating segments that have been lost and allowing for
645a swifter recovery.
646Both communication endpoints need to support
647.Em SACK .
648The fallback behaviour is NewReno fast recovery phase, which allows
649one lost segment to be recovered per round trip time.
650When more than one segment has been dropped per window, the transmission can
651continue without waiting for a retransmission timeout.
652.It Cd option TCP_FACK
653Turns on forward acknowledgements allowing a more precise estimate of
654outstanding data during the fast recovery phase by using
655.Em SACK
656information.
657This option can only be used together with
658.Em TCP_SACK .
659.It Cd option TCP_ECN
660Turns on Explicit Congestion Notification (RFC 3168).
661.Em ECN
662allows intermediate routers to use the Congestion Experienced
663codepoint in the IP header as an indication of congestion, and allows
664TCP to adjust the transmission rate using this signal.
665Both communication endpoints negotiate enabling
666.Em ECN
667functionality at the TCP connection establishment.
668.It Cd option TCP_SIGNATURE
669Turns on support for the TCP MD5 Signature option (RFC 2385).
670This is used by
671Internet backbone routers to provide per-packet authentication for the TCP
672packets used to communicate BGP routing information.
673You will also need a
674routing daemon that supports this option in order to actually use it.
675.It Cd option PPP_FILTER
676This option turns on
677.Xr pcap 3
678based filtering for ppp connections.
679This option is used by
680.Xr pppd 8
681which needs to be compiled with
682.Em PPP_FILTER
683defined (the current default).
684.It Cd option PPP_BSDCOMP
685Enables BSD compressor for PPP connections.
686.It Cd option PPP_DEFLATE
687This option is currently not supported in MirOS.
688.\" For use in conjunction with PPP_BSDCOMP; provides an interface to zlib for PPP
689.\" for deflate compression/decompression.
690.It Cd option IPSEC
691This option enables IP security protocol support.
692See
693.Xr ipsec 4
694for more details.
695.It Cd option ENCDEBUG
696This option enables debugging information to be conditionally logged
697in case IPSEC encounters errors.
698The option
699.Em IPSEC
700is required along with this option.
701Debug logging can be turned on/off through the use of the
702.Em net.inet.ip.encdebug
703sysctl variable.
704If
705.Em net.ipsec.encap.encdebug
706is 1, debug logging is on.
707See
708.Xr sysctl 8
709and
710.Xr sysctl 3
711for details.
712.It Cd option KEY
713Enables PFKEYv2 (RFC 2367) support.
714While not IP specific, this option is usually used in conjunction with option
715.Em IPSEC .
716.It Cd option ALTQ
717Enables ALTQ (Alternate Queuing).
718See
719.Xr pfctl 8
720and
721.Xr pf.conf 5
722to set up the interface transmission rate and queueing disciplines.
723.Em ALTQ_CBQ ,
724.Em ALTQ_RED ,
725.Em ALTQ_PRIQ
726and
727.Em ALTQ_HFSC
728are enabled by default with option
729.Em ALTQ
730in
731.Ox .
732See
733.Xr altq 9
734for details on ALTQ.
735.It Cd option ALTQ_RIO
736Enables ALTQ's RIO (RED with In/Out) module.
737The original RIO has 2 sets of RED parameters; one for in-profile
738packets and the other for out-of-profile packets.
739At the ingress of the network, profile meters tag packets as IN or
740OUT based on contracted profiles for customers.
741Inside the network, IN packets receive preferential treatment by
742the RIO dropper.
743ALTQ/RIO has 3 drop precedence levels defined for the Assured Forwarding
744PHB of DiffServ (RFC 2597).
745.It Cd option ALTQ_NOPCC
746Disables use of processor cycle counter (e.g., Pentium TSC on i386 and
747PCC on alpha) to measure time in ALTQ.
748This option should be defined for a non-Pentium i386 CPU which does not
749have TSC, SMP (per-CPU counters are not in sync), or power management
750which affects processor cycle counter.
751.El
752.Ss SCSI Subsystem Options
753.Bl -ohang
754.It Cd option SCSITERSE
755Terser SCSI error messages.
756This omits the table for decoding ASC/ASCQ info, saving about 30KB.
757.It Cd option SCSIDEBUG
758Enable printing of SCSI subsystem debugging info to the console.
759Each of
760.Em SCSIDEBUG_LEVEL ,
761.Em SCSIDEBUG_BUSES ,
762.Em SCSIDEBUG_TARGETS
763and
764.Em SCSIDEBUG_LUNS
765must have non-zero values for any debugging info to be printed.
766Only
767.Em SCSI_DEBUG_LEVEL
768has a default value that is non-zero.
769.It Cd option SCSIDEBUG_LEVEL=value
770Define which of the four levels of debugging info are printed.
771Each bit enables a level, and multiple levels are specified by setting multiple
772bits.
773.Bd -literal -offset indent
7740x0010	(SDEV_DB1) SCSI commands, errors, and data
7750x0020	(SDEV_DB2) routine flow
7760x0040	(SDEV_DB3) routine internals
7770x0080	(SDEV_DB4) miscellaneous addition debugging
778.Ed
779.Pp
780If
781.Em SCSIDEBUG_LEVEL
782is undefined, a value of 0x0030 (SDEV_DB1|SDEV_DB2) is used.
783.It Cd option SCSIDEBUG_BUSES=value
784Define which SCSI buses will print debug info.
785Each bit enables debugging info for the corresponding bus.
786e.g. a value of 0x1 enables debug info for bus 0.
787.It Cd option SCSIDEBUG_TARGETS=value
788Define which SCSI targets will print debug info.
789Each bit enables debugging info for the corresponding target.
790.It Cd option SCSIDEBUG_LUNS=value
791Define which SCSI luns will print debug info.
792Each bit enables debugging info for the corresponding lun.
793.It Cd option SCSIFORCELUN_BUSES=value
794Define which SCSI buses will do full lun scanning.
795.Em SCSIFORCELUN_TARGETS
796must also be set to a non-zero value for this option to take effect.
797Each bit enables a full lun scan for the corresponding SCSI bus.
798The lun scan normally terminates if identical INQUIRY data is seen for
799lun 0 and another lun, as this usually means the target cannot
800distinguish between different luns.
801But some devices (e.g. some external RAID devices) can legitimately
802supply identical INQUIRY data for several luns.
803.It Cd option SCSIFORCELUN_TARGETS=value
804Define which SCSI targets will do full lun scanning.
805.Em SCSIFORCELUN_BUSES
806must also be set to a non-zero value for this option to have any
807effect.
808Each bit enables a full lun scan for the corresponding target on the
809buses specified by
810.Em SCSIFORCELUN_BUSES.
811.El
812.Ss System V IPC Options
813.Bl -ohang
814.It Cd option SYSVMSG
815Includes support for
816.At V
817style message queues.
818See
819.Xr msgctl 2 ,
820.Xr msgget 2 ,
821.Xr msgrcv 2 ,
822.Xr msgsnd 2 .
823.It Cd option SYSVSEM
824Includes support for
825.At V
826style semaphores.
827See
828.Xr semctl 2 ,
829.Xr semget 2 ,
830.Xr semop 2 .
831.It Cd option VFORK_SHM
832Allows for evil things with
833.Xr vfork 2 .
834Normally, doing anything else after a vfork than
835.Xr execve 2
836family call or
837.Xr _exit 2
838is undefined.
839With this option, the old-fashioned behaviour of the
840child and parent sharing the memory until the lock is
841released is restored.
842This will break on some arches.
843.It Cd option SYSVSHM
844Includes support for
845.At V
846style shared memory.
847See
848.Xr shmat 2 ,
849.Xr shmctl 2 ,
850.Xr shmdt 2 ,
851.Xr shmget 2 .
852.It Cd option SHMMAXPGS=value
853Sets the maximum number of
854.At V
855style shared memory pages that are available through the
856.Xr shmget 2
857system call.
858Default value is 1024 on most architectures.
859See
860.Pa /usr/include/machine/vmparam.h
861for the default.
862.It Cd option SEMMNI=value
863Number of semaphore identifiers (also called semaphore handles
864and semaphore sets) available in the system.
865Default value is 10.
866The kernel allocates memory for the control structures at startup,
867so arbitrarily large values should be avoided.
868.It Cd option SEMMNS=value
869Maximum number of semaphores in all sets in the system.
870Default value is 60.
871.It Cd option SEMMNU=value
872Maximum number of semaphore undo structures in the system.
873Default value is 30.
874.It Cd option SEMUME=value
875Maximum number of per-process undo operation entries in the
876system.
877Semaphore undo operations are invoked by the kernel when
878.Xr semop 2
879is called with the SEM_UNDO flag and the process holding
880the semaphores terminates unexpectedly.
881Default value is 10.
882.El
883.Ss Operation Related Options
884.Bl -ohang
885.It Cd option NKMEMPAGES=value
886.It Cd option NKMEMPAGES_MIN=value
887.It Cd option NKMEMPAGES_MAX=value
888Size of kernel malloc area in PAGE_SIZE-sized logical pages.
889This area is covered by the kernel submap
890.Em kmem_map .
891The kernel attempts to auto-size this map based on the amount of
892physical memory in the system.
893Platform-specific code may place bounds on this computed size,
894which may be viewed with the
895.Xr sysctl 8
896variable
897.Em vm.nkmempages .
898See
899.Pa /usr/include/machine/param.h
900for the default upper and lower bounds.
901The related options
902.Sq NKMEMPAGES_MIN
903and
904.Sq NKMEMPAGES_MAX
905allow the bounds to be overridden in the kernel configuration file.
906These options are provided in the event the computed value is
907insufficient resulting in an
908.Dq out of space in kmem_map
909panic.
910.It Cd option NBUF=value
911.It Cd option BUFPAGES=value
912These options set the number of pages available for the buffer cache.
913Their default value is a machine dependent value, often calculated as
914between 5% and 10% of total available RAM.
915.It Cd option DUMMY_NOPS
916This option is supported on the i386 architecture.
917When enabled, it speeds up interrupt processing by removing delays
918while accessing the interrupt controller.
919Care should be taken when using this option.
920.It Cd option APM_NOPRINT
921This option is supported on the i386 architecture.
922When enabled, kernel messages regarding the status of the automatic power
923management system
924.Tn ( APM )
925are suppressed.
926.Tn APM
927status can still be obtained using
928.Xr apm 8
929and/or
930.Xr apmd 8 .
931.It Cd option \&"TIMEZONE=value\&"
932.Ar value
933indicates the timezone offset of hardware realtime clock device, in minutes,
934from UTC.
935It is useful when hardware realtime clock device is configured with local time,
936when dual-booting
937.Ox
938with other operating systems on a single machine.
939For instance, if hardware realtime clock is set to Tokyo time,
940.Ar value
941should be
942.Li \&-540
943as Tokyo local time is 9 hours ahead of UTC.
944Double quotes are needed when specifying a negative
945.Ar value .
946.El
947.\" The following requests should be uncommented and used where appropriate.
948.\" .Sh FILES
949.\" .Sh EXAMPLES
950.Sh SEE ALSO
951.Xr gcc-local 1 ,
952.Xr gdb 1 ,
953.Xr ktrace 1 ,
954.Xr quota 1 ,
955.Xr gettimeofday 2 ,
956.Xr i386_iopl 2 ,
957.Xr msgctl 2 ,
958.Xr msgget 2 ,
959.Xr msgrcv 2 ,
960.Xr msgsnd 2 ,
961.Xr ptrace 2 ,
962.Xr semctl 2 ,
963.Xr semget 2 ,
964.Xr semop 2 ,
965.Xr shmat 2 ,
966.Xr shmctl 2 ,
967.Xr shmdt 2 ,
968.Xr shmget 2 ,
969.Xr sysctl 3 ,
970.Xr ddb 4 ,
971.Xr inet 4 ,
972.Xr ipsec 4 ,
973.Xr iso 4 ,
974.Xr lkm 4 ,
975.Xr ns 4 ,
976.Xr pci 4 ,
977.Xr xf86 4 ,
978.Xr X 7 ,
979.Xr apm 8 ,
980.Xr apmd 8 ,
981.Xr config 8 ,
982.Xr edquota 8 ,
983.Xr init 8 ,
984.Xr mount_cd9660 8 ,
985.Xr mount_fdesc 8 ,
986.Xr mount_kernfs 8 ,
987.Xr mount_mfs 8 ,
988.Xr mount_msdos 8 ,
989.Xr mount_nfs 8 ,
990.Xr mount_null 8 ,
991.Xr mount_portal 8 ,
992.Xr mount_procfs 8 ,
993.Xr mount_umap 8 ,
994.Xr mount_union 8 ,
995.Xr mrouted 8 ,
996.Xr quotaon 8 ,
997.Xr rpc.rquotad 8 ,
998.Xr sysctl 8 ,
999.Xr altq 9
1000.Sh HISTORY
1001The
1002.Nm
1003man page first appeared in
1004.Ox 2.3 .
1005.Sh BUGS
1006The
1007.Em INET
1008option should not be required.
1009