1. 19

arXiv:2102.12922: The overhead of the kernel storage path accounts for half of the access latency for new NVMe storage devices. We explore using BPF to reduce this overhead, by injecting user-defined functions deep in the kernel’s I/O processing stack. When issuing a series of dependent I/O requests, this approach can increase IOPS by over 2.5× and cut latency by half, by bypassing kernel layers and avoiding user-kernel boundary crossings. However, we must avoid losing important properties when bypassing the file system and block layer such as the safety guarantees of the file system and translation between physical blocks addresses and file offsets. We sketch potential solutions to these problems, inspired by exokernel file systems from the late 90s, whose time, we believe, has finally come!

  1.  

  2. 4

    At first glance this seems almost similar to IO subprocessors in mainframes, though obviously without the separate hardware. Interesting.

    1. 3

      The overhead of the kernel storage path accounts for half of the access latency for new NVMe storage devices.

      It’s clearly shown early in the paper, but bears noting that does not refer to Flash SSDs, which start at ~100µs latency. Rather it’s talking about Intel Optane SSDs, which respond much faster but have around 10x the cost per GB (just quickly comparing datacenter-class SSDs of both types).

      It would be fun if more of us could at least expect to be dealing with lower-latency NVM soonish, but even that seems uncertain, as Intel ended its consumer Optane offerings and Micron, who owns the sole fab, wants out of that business. Anything could still happen, of course.

      Still cool to see approaches to these problems, just didn’t want the “kernel causes half of my latency” premise to leak into contexts where it doesn’t apply.