Skip to content

tpapagian/FastMap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastMap

This library provides an optimized memory-mapped I/O path inside the Linux kernel. It is implemented as a kernel module and supported by user-space libraries for management purposes.

Prerequisites

FastMap currently runs on any 4.14 Linux kernel, with no kernel modifications being necessary. A 4.14 kernel from the Linux Kernel Archives can be found here.

After that, you should configure, build, and install the kernel using specific instructions based on your setup.

Building FastMap

In order to build FastMap simply run make on the top-level directory. This will build the driver (located in the driver directory) and the associated userspace tools (located in the ioctl directory). After that, it will also install the FastMap module and run depmod.

Running FastMap

The only required parameter is the number of 4KB DRAM pages that it will use as a cache. You can define this in the driver/main.c file in the perma_mmap_buf_size variable. Alternatively, you can use this as a command-line argument (i.e. modprobe dmap perma_mmap_buf_size=1024 and in this case it will allocate 1024 4KB pages totaling 4GB of DRAM cache).

In scripts directory you can find several scripts (with the appropriate comments) on how to load and unload FastMap. These include:

Script Description
scripts/load-it-blkdev.sh Load FastMap for a block device.
scripts/unload-it-blkdev.sh Unload FastMap for a block device.
scripts/load-it-fs.sh Load FastMap for a file system.
scripts/unload-it-fs.sh Unload FastMap for a file system.

Design and Evaluation

The following paper presents the design and experimental analysis of FastMap.

Anastasios Papagiannis, Giorgos Xanthakis, Giorgos Saloustros, Manolis Marazakis, and Angelos Bilas. Optimizing Memory-mapped I/O for Fast Storage Devices. In proceedings of the 2020 USENIX Annual Technical Conference (USENIX ATC 20). July 2020.

The pdf, slides, and presentation can be found here.

Please cite this publication if you use/modify/evaluate FastMap.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 94.3%
  • C++ 3.8%
  • Makefile 1.2%
  • Shell 0.7%