]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/man/man5/tmpfs.5
Upgrade Unbound to 1.7.0. More to follow.
[FreeBSD/FreeBSD.git] / share / man / man5 / tmpfs.5
1 .\"-
2 .\" Copyright (c) 2007 Xin LI
3 .\" Copyright (c) 2017 The FreeBSD Foundation, Inc.
4 .\"
5 .\" Part of this documentation was written by
6 .\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
7 .\" from the FreeBSD Foundation.
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\"    notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\"    notice, this list of conditions and the following disclaimer in the
16 .\"    documentation and/or other materials provided with the distribution.
17 .\"
18 .\" THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 .\"
29 .\"-
30 .\" Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
31 .\" All rights reserved.
32 .\"
33 .\" Redistribution and use in source and binary forms, with or without
34 .\" modification, are permitted provided that the following conditions
35 .\" are met:
36 .\" 1. Redistributions of source code must retain the above copyright
37 .\"    notice, this list of conditions and the following disclaimer.
38 .\" 2. Redistributions in binary form must reproduce the above copyright
39 .\"    notice, this list of conditions and the following disclaimer in the
40 .\"    documentation and/or other materials provided with the distribution.
41 .\"
42 .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
43 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
44 .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
45 .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
46 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
47 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
48 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
49 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
50 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
51 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
52 .\" POSSIBILITY OF SUCH DAMAGE.
53 .\"
54 .\" $FreeBSD$
55 .\"
56 .Dd September 8, 2017
57 .Dt TMPFS 5
58 .Os
59 .Sh NAME
60 .Nm tmpfs
61 .Nd "in-memory file system"
62 .Sh SYNOPSIS
63 To compile this driver into the kernel,
64 place the following line in your
65 kernel configuration file:
66 .Bd -ragged -offset indent
67 .Cd "options TMPFS"
68 .Ed
69 .Pp
70 Alternatively, to load the driver as a
71 module at boot time, place the following line in
72 .Xr loader.conf 5 :
73 .Bd -literal -offset indent
74 tmpfs_load="YES"
75 .Ed
76 .Sh DESCRIPTION
77 The
78 .Nm
79 driver implements an in-memory, or
80 .Tn tmpfs
81 file system.
82 The filesystem stores both file metadata and data in main memory.
83 This allows very fast and low latency accesses to the data.
84 The data is volatile.
85 An umount or system reboot invalidates it.
86 These properties make the filesystem's mounts suitable for fast
87 scratch storage, like
88 .Pa /tmp .
89 .Pp
90 If the system becomes low on memory and swap is configured (see
91 .Xr swapon 8 ),
92 the system can transfer file data to swap space, freeing memory
93 for other needs.
94 Metadata, including the directory content, is never swapped out by the
95 current implementation.
96 Keep this in mind when planning the mount limits, especially when expecting
97 to place many small files on a tmpfs mount.
98 .Pp
99 When
100 .Xr mmap 2
101 is used on a file from a tmpfs mount, the swap VM object managing the
102 file pages is used to implement mapping and avoid double-copying of
103 the file data.
104 This quirk causes process inspection tools, like
105 .Xr procstat 1 ,
106 to report anonymous memory mappings instead of file mappings.
107 .Sh OPTIONS
108 The following options are available when
109 mounting
110 .Nm
111 file systems:
112 .Bl -tag -width "It Cm maxfilesize"
113 .It Cm gid
114 Specifies the group ID of the root inode of the file system.
115 Defaults to the mount point's GID.
116 .It Cm uid
117 Specifies the user ID of the root inode of the file system.
118 Defaults to the mount point's UID.
119 .It Cm mode
120 Specifies the mode (in octal notation) of the root inode of the file system.
121 Defaults to the mount point's mode.
122 .It Cm nonc
123 Do not use namecache to resolve names to files for the created mount.
124 This saves memory, but currently might impair scalability for highly
125 used mounts on large machines.
126 .It Cm inodes
127 Specifies the maximum number of nodes available to the file system.
128 If not specified, the file system chooses a reasonable maximum based on
129 the file system size, which can be limited with the
130 .Cm size
131 option.
132 .It Cm size
133 Specifies the total file system size in bytes, unless suffixed
134 with one of k, m, g, t, or p, which denote byte, kilobyte,
135 megabyte, gigabyte, terabyte and petabyte respectively.
136 If zero (the default) or a value larger than SIZE_MAX - PAGE_SIZE
137 is given, the available amount of memory (including
138 main memory and swap space) will be used.
139 .It Cm maxfilesize
140 Specifies the maximum file size in bytes.
141 Defaults to the maximum possible value.
142 .El
143 .Sh EXAMPLES
144 To mount a
145 .Nm
146 memory file system:
147 .Pp
148 .Dl "mount -t tmpfs tmpfs /tmp"
149 .Sh SEE ALSO
150 .Xr procstat 1 ,
151 .Xr mmap 2 ,
152 .Xr nmount 2 ,
153 .Xr unmount 2 ,
154 .Xr fstab 5 ,
155 .Xr mdmfs 8 ,
156 .Xr mount 8 ,
157 .Xr swapinfo 8 ,
158 .Xr swapon 8
159 .Sh HISTORY
160 The
161 .Nm
162 driver first appeared in
163 .Fx 7.0 .
164 .Sh AUTHORS
165 .An -nosplit
166 The
167 .Nm
168 kernel implementation was written by
169 .An Julio M. Merino Vidal Aq Mt jmmv@NetBSD.org
170 as a Google Summer of Code project.
171 .Pp
172 .An Rohit Jalan
173 and others ported it from
174 .Nx
175 to
176 .Fx .
177 .Pp
178 This manual page was written by
179 .An Xin LI Aq Mt delphij@FreeBSD.org .