hn.today

Redox: Ring Buffers Project Summary

redox-os.org3 points0 comments
Screenshot of Redox: Ring Buffers Project Summary

Redox’s ring-buffer project adds an asynchronous communication path between applications and userspace system services, adapting ideas from Linux’s io_uring to Redox’s microkernel design. Applications and services share submission and completion queues plus a shared memory pool, so requests and data can pass without copying or blocking the application. The new redox-ring API, modeled on liburing, supports request batching, shared-buffer allocation, and custom protocols that can also serve general inter-process communication. RamFS and the NVMe driver gained ring support, with tests demonstrating file writes; an asynchronous executor lets drivers process requests as tasks and cleanly cancel pending work when a session ends.

The project reports that ring-based I/O benchmarks run 14-15 times faster than synchronous system-call I/O. Because IPC remains a performance bottleneck, the team also expanded latency benchmarks and made kernel changes that remove redundant locks and lookups and provide a lower-overhead IPC call. Another optimization avoids saving and restoring vector registers during syscall-driven switches, instead zeroing them in accordance with the calling convention. Together, these changes target faster transitions between applications and services as well as more efficient I/O. The work establishes the first ring-buffer implementation in Redox; multi-thread-per-core support for the driver executor remains in progress, and additional device drivers are expected to adopt it.

Read on redox-os.org0 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Programming

Shaun Thomas: Burnt Toast

Shaun Thomas: Burnt Toast

PostgreSQL’s TOAST storage made the table much smaller, and counting or scanning rows was faster than with the larger uncompressed table. But reading a field inside every toasted value required far more buffer reads, showing that TOAST can trade space savings for slower access to large values. (pgedge.com)

Jepsen: ParticleDB 1.1.4

Jepsen: ParticleDB 1.1.4

Jepsen found 96 bugs in ParticleDB versions 1.1.4 through 1.1.18.11.rc-22, including crashes, data loss, and serious transaction anomalies. Most issues were fixed, but committed writes could still disappear and serializable transactions still had anomalies; Orkes says a later release resolves the remaining problems. (jepsen.io)

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.