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