https://github.com/qualcomm/iodme
IODME (IO Data Mover Engine) is a library, and some tools, for optimizing typical IO operations that involve copying / moving data between memory and file descriptors.
https://github.com/qualcomm/iodme
Last synced: 2 months ago
JSON representation
IODME (IO Data Mover Engine) is a library, and some tools, for optimizing typical IO operations that involve copying / moving data between memory and file descriptors.
- Host: GitHub
- URL: https://github.com/qualcomm/iodme
- Owner: qualcomm
- License: other
- Created: 2021-05-27T21:14:07.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2026-03-09T20:04:40.000Z (4 months ago)
- Last Synced: 2026-04-21T12:53:32.274Z (2 months ago)
- Language: C++
- Homepage:
- Size: 29.3 KB
- Stars: 8
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
Awesome Lists containing this project
README
## Overview
IODME (IO Data Mover Engine) is a library, and some tools, for optimizing
typical IO operations that involve copying / moving data between memory
and file descriptors.
It provides various building blocks for data pipelining using hugepages,
vmsplice, splice, and sendfile mechanisms.
## Build dependencies
IODME requires the following components to build
* CMake (3.12 or later)
* Compiler with C++14 support
* HOGL logging library (2.0 or later)
* Boost libary (1.59.0 or later)
CMakeList includes necessary checks for all requirements.
CMake 3.12 introduced CMP0074 which is used for finding packages (e.g. HOGL)
## Build procedure
Install dependencies and run
```
cmake -DCMAKE_CXX_FLAGS="-O3 -Wall -g -std=c++14"
cmake
```
## Usage examples
### Generator and sink tests
This tool / test implements streaming of large data frames over the TCP
connection, and storing them into files using various IO optimization
techniques.
To run data sink process
```
sudo ./src/iodme-sink --log-mask '.*WRITER.*:DEBUG' --output-dir /disk/speed-test -C 10 -W 4 --splice --directio --hugepages
```
Run _iodme-sink --help_ to see the documentation for all options.
To run data generators
```
sudo ./src/run-data-gen-test 2 localhost 30
```
Run _iodme-generator --help_ to see the documentation for all options.
The script above is just a wrapper that starts multiple data generators.
## License
SPDX-License-Identifier: BSD-3-Clause
See [LICENSE](LICENSE) for the full license text.