Towards Integrating io_uring into the Haskell GHC Runtime

Author(s)
Kiang, Tsz Hang
Advisor(s)
Editor(s)
Associated Organization(s)
Series
Supplementary to:
Abstract
With the recent introduction of the new Linux io_uring subsystem for asynchronous system calls, we explore both the performance and design considerations of integrating io_uring into the Glasgow Haskell Compiler (GHC) runtime. We draw inspiration from the existing Multicore IO (MIO) EventManager, a highly refined and tested polling-based (e.g. epoll, kqueue, select) approach to non-blocking I/O, to create URingManager, our approach to utilizing io_uring in the runtime. We find that in networking workloads, using URingManager, io_uring-driven asynchronous I/O is capable of achieving performance equivalent to that of the MIO EventManager with epoll. In terms of design, we find that our URingManager is also able to benefit from the cleaner asynchronous interface that io_uring provides when compared to Linux AIO and polling methods.
Sponsor
Date
Extent
Resource Type
Text
Resource Subtype
Undergraduate Research Option Thesis
Rights Statement
Rights URI