From b1b5793d26195689a29ade3f8bd9903cc046fd84 Mon Sep 17 00:00:00 2001 From: Wolfgang Draxinger Date: Mon, 6 Apr 2015 01:19:07 +0200 Subject: info message, README updated --- README | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'README') diff --git a/README b/README index 684a286..cad20e8 100644 --- a/README +++ b/README @@ -1,12 +1,17 @@ -== fmlock -- map a file into memory and lock it to RAM == +== fmlock -- map files into memory and lock them to RAM == -fmlock is a small tool intended to load a file into the -block I/O cache and lock it there. This is done by mmap-ing -the whole file and calling mlock on the address space -occupied by the file. Then the program puts itself to sleep -until a signal arrives. The purpose of this is that (large) -files can be preloaded into RAM, specifically the block I/O -cache for other processes to read from. This is for example -required to measure the RAM bandwidth and CPU limited -throughput of data processing code, working on real data -without getting effected by I/O bottlenecks. +fmlock is a small tool intended to load file into the block I/O cache and lock +them there. This is done by mmap-ing the whole file and calling mlock on the +address space occupied by the file. In addition the whole file is read to heat +the cache; this should not be necessary, but some systems may require this, for +this tool to be effective.o + +Once the files are locked into memory and the cache is hot the program puts +itself to sleep until a signal arrives. Once the program is sleeping that's it. +Any changes to the files that'd require to remap the files are not caught by +fmlock and the cache on any changed or grown pages may become cold over time. + +The purpose of this is that (large) files can be preloaded into RAM, namely the +block I/O cache for other processes to read from. This is for example required +to measure the RAM bandwidth and CPU limited throughput of data processing code, +working on real data without getting effected by I/O bottlenecks. -- cgit v1.2.3