|TMPFS(5)||Linux Programmer's Manual||TMPFS(5)|
The filesystem is automatically created when mounting a filesystem with the type tmpfs via a command such as the following:
$ sudo mount -t tmpfs -o size=10M tmpfs /mnt/mytmpfs
A tmpfs filesystem has the following properties:
- The filesystem can employ swap space when physical memory pressure demands it.
- The filesystem consumes only as much physical memory and swap space as is required to store the current contents of the filesystem.
- During a remount operation (mount -o remount), the filesystem size can be changed (without losing the existing contents of the filesystem).
If a tmpfs filesystem is unmounted, its contents are discarded (lost).
- Specify an upper limit on the size of the filesystem. The size is given in bytes, and rounded up to entire pages.
- The size may have a k, m, or g suffix for Ki, Mi, Gi (binary kilo (kibi), binary mega (mebi) and binary giga (gibi)).
- The size may also have a % suffix to limit this instance to a percentage of physical RAM.
- The default, when neither size nor nr_blocks is specified, is size=50%.
- The same as size, but in blocks of PAGE_CACHE_SIZE.
- Blocks may be specified with k, m, or g suffixes like size, but not a % suffix.
- The maximum number of inodes for this instance. The default is half of the number of your physical RAM pages, or (on a machine with highmem) the number of lowmem RAM pages, whichever is smaller.
- Inodes may be specified with k, m, or g suffixes like size, but not a % suffix.
- Set initial permissions of the root directory.
- gid=gid (since Linux 2.5.7)
- Set the initial group ID of the root directory.
- uid=uid (since Linux 2.5.7)
- Set the initial user ID of the root directory.
- huge=huge_option (since Linux 4.7.0)
- Set the huge table memory allocation policy for all files in this instance (if CONFIG_TRANSPARENT_HUGE_PAGECACHE is enabled).
- The huge_option value is one of the following:
- Do not allocate huge pages. This is the default.
- Attempt to allocate huge pages every time a new page is needed.
- Only allocate huge page if it will be fully within i_size. Also respect fadvise(2)/madvise(2) hints
- Only allocate huge pages if requested with fadvise(2)/madvise(2).
- For use in emergencies, to force the huge option off from all mounts.
- Force the huge option on for all mounts; useful for testing.
- mpol=mpol_option (since Linux 2.6.15)
- Set the NUMA memory allocation policy for all files in this instance (if CONFIG_NUMA is enabled).
- The mpol_option value is one of the following:
- Use the process allocation policy (see set_mempolicy(2)).
- Preferably allocate memory from the given node.
- Allocate memory only from nodes in nodelist.
- Allocate from each node in turn.
- Allocate from each node of in turn.
- Preferably allocate memory from the local node.
- In the above, nodelist is a comma-separated list of decimal numbers and ranges that specify NUMA nodes. A range is a pair of hyphen-separated decimal numbers, the smallest and largest node numbers in the range. For example, mpol=bind:0-3,5,7,9-15.
The tmpfs filesystem supports extended attributes (see xattr(7)), but user extended attributes are not permitted.
An internal shared memory filesystem is used for System V shared memory (shmget(2)) and shared anonymous mappings (mmap(2) with the MAP_SHARED and MAP_ANONYMOUS flags). This filesystem is available regardless of whether the kernel was configured with the CONFIG_TMPFS option.
The amount of memory consumed by all tmpfs filesystems is shown in the Shmem field of /proc/meminfo and in the shared field displayed by free(1).
The tmpfs facility was formerly called shmfs.
The kernel source files Documentation/filesystems/tmpfs.txt and Documentation/admin-guide/mm/transhuge.rst.