Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

tmpfs(5) [linux man page]

TMPFS(5)						     Linux Programmer's Manual							  TMPFS(5)

NAME
tmpfs - a virtual memory filesystem DESCRIPTION
The tmpfs facility allows the creation of filesystems whose contents reside in virtual memory. Since the files on such filesystems typi- cally reside in RAM, file access is extremely fast. 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 filesys- tem). If a tmpfs filesystem is unmounted, its contents are discarded (lost). Mount options The tmpfs filesystem supports the following mount options: size=bytes 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%. nr_blocks=blocks 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. nr_inodes=inodes 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. mode=mode 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: never Do not allocate huge pages. This is the default. always Attempt to allocate huge pages every time a new page is needed. within_size Only allocate huge page if it will be fully within i_size. Also respect fadvise(2)/madvise(2) hints advise Only allocate huge pages if requested with fadvise(2)/madvise(2). deny For use in emergencies, to force the huge option off from all mounts. force 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: default Use the process allocation policy (see set_mempolicy(2)). prefer:node Preferably allocate memory from the given node. bind:nodelist Allocate memory only from nodes in nodelist. interleave Allocate from each node in turn. interleave:nodelist Allocate from each node of in turn. local 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. VERSIONS
The tmpfs facility was added in Linux 2.4, as a successor to the older ramfs facility, which did not provide limit checking or allow for the use of swap space. NOTES
In order for user-space tools and applications to create tmpfs filesystems, the kernel must be configured with the CONFIG_TMPFS option. 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. A tmpfs filesystem mounted at /dev/shm is used for the implementation of POSIX shared memory (shm_overview(7)) and POSIX semaphores (sem_overview(7)). 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. SEE ALSO
df(1), du(1), memfd_create(2), mmap(2), set_mempolicy(2), shm_open(3), mount(8) The kernel source files Documentation/filesystems/tmpfs.txt and Documentation/admin-guide/mm/transhuge.rst. Linux 2019-03-06 TMPFS(5)
Man Page