Using Memory-Protection to Simplify Zero-copy Operations
Russell Power

TL;DR
This paper proposes a novel memory protection-based method to simplify zero-copy network operations, enabling non-blocking data transfers while preventing incorrect memory access, thus improving programming ease and performance.
Contribution
It introduces a new approach using memory protection hardware to make zero-copy operations easier and safer without sacrificing performance.
Findings
Enables non-blocking zero-copy data transfers.
Prevents incorrect memory access during zero-copy operations.
Simplifies programming model for high-performance networks.
Abstract
High performance networks (e.g. Infiniband) rely on zero-copy operations for performance. Zero-copy operations, as the name implies, avoid copying buffers for sending and receiving data. Instead, hardware devices directly read and write to application specified areas of memory. Since these networks can send and receive at nearly the same speed as the memory bus inside machines, zero-copy operations are necessary to achieve peak performance for many applications. Unfortunately, programming with zero-copy APIs is a *giant pain*. Users must carefully avoid using buffers that may be accessed by a device. Typically this either results in spaghetti code (where every access to a buffer is checked before usage), or blocking operations (which pretty much defeat the whole point of zero-copy). We show that by abusing memory protection hardware, we can offer the best of both worlds: a simple…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Advanced Data Storage Technologies
