X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=6a7f58ed92d8fcc9e7a041e22b8a393c5786c425;hp=6ac744cd3d436124f8474ff135c7a842fb92136b;hb=c51074e7f095ad74114d7e0981f2e6f514b0f758;hpb=74b025b071b5bfbffa7ad7682b66b749e8d1f955 diff --git a/HOWTO b/HOWTO index 6ac744cd..6a7f58ed 100644 --- a/HOWTO +++ b/HOWTO @@ -362,8 +362,34 @@ mem=str Fio can use various types of memory as the io unit buffer. mmap Use anonymous memory maps as the buffers. Allocated through mmap(2). + mmaphuge Use a memory mapped huge file as the buffer + backing. Append filename after mmaphuge, ala + mem=mmaphuge:/hugetlbfs/file + The area allocated is a function of the maximum allowed - bs size for the job, multiplied by the io depth given. + bs size for the job, multiplied by the io depth given. Note + that for shmhuge and mmaphuge to work, the system must have + free huge pages allocated. This can normally be checked + and set by reading/writing /proc/sys/vm/nr_hugepages on a + Linux system. Fio assumes a huge page is 4MiB in size. So + to calculate the number of huge pages you need for a given + job file, add up the io depth of all jobs (normally one unless + iodepth= is used) and multiply by the maximum bs set. Then + divide that number by the huge page size. You can see the + size of the huge pages in /proc/meminfo. If no huge pages + are allocated by having a non-zero number in nr_hugepages, + using mmaphuge or shmhuge will fail. Also see hugepage-size. + + mmaphuge also needs to have hugetlbfs mounted and the file + location should point there. So if it's mounted in /huge, + you would use mem=mmaphuge:/huge/somefile. + +hugepage-size=siint + Defines the size of a huge page. Must at least be equal + to the system setting, see /proc/meminfo. Defaults to 4MiB. + Should probably always be a multiple of megabytes, so using + hugepage-size=Xm is the preferred way to set this to avoid + setting a non-pow-2 bad value. exitall When one job finishes, terminate the rest. The default is to wait for each job to finish, sometimes that is not the