Skip to content

qq502233945/io-passthru

 
 

Repository files navigation

This repository contains the artifacts of I/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux published at FAST'24 : https://www.usenix.org/conference/fast24/presentation/joshi

Overview

  • Ubuntu Distro
  • Installing Linux
  • Userspace Integration
  • Kernel patches
  • Benchmarking
  • Cachelib Experiments

Ubuntu Distro

Installing Linux

  • Clone upstream linux repo: git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
  • Change directory: cd linux
  • Checkout v6.2: git checkout v6.2
  • Tools installation: sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache bison flex libelf-dev dwarves zstd
  • Copy the existing kernel config: cp /boot/config-$(uname -r) .config
  • Update current config utilising a provided .config as base: make olddefconfig
  • Compile the kernel: make -j $(getconf _NPROCESSORS_ONLN)
  • Installing the kernel: sudo make modules_install install -j $(getconf _NPROCESSORS_ONLN)
  • Install headers: make HEADERS_INSTALL INSTALL_HDR_PATH=/usr
  • Reboot and select required kernel from grub-menu
  • Verify the kernel booted is custom build by, uname -r
  • Refer: https://kernelnewbies.org/KernelBuild

Userspace Integration

Link to patches for adding userspace support:

  • xNVMe io_uring_cmd engine: https://github.com/OpenMPDK/xNVMe/pull/51
  • xNVMe big sqe/cqe support: https://github.com/OpenMPDK/xNVMe/pull/84
  • spdk: https://github.com/spdk/spdk/commit/6f338d4bf3a8a91b7abe377a605a321ea2b05bf7
  • fio: https://lore.kernel.org/fio/[email protected]/
  • t/io_uring: https://lore.kernel.org/fio/[email protected]/
  • liburing tests: https://lore.kernel.org/all/[email protected]/

Kernel patches

Link to patches for adding support in kernel:

Benchmarking

Cachelib Experiments

About

io-passthru evaluation scripts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%