3 ms·
I’m using it for all I/O (file, socket, SPI and UART) in an embedded application written in Swift. Wrappers here: https://github.com/PADL/IORingSwift https://g
by lukeh 3y ago
I’m using it for all I/O (file, socket, SPI and UART) in an embedded application written in Swift. Wrappers here:
https://github.com/PADL/IORingSwift https://github.com/PADL/IORingSwift
- MrBuddyCasino 3y agoWhat type of app can afford to run on Linux (not bare metal) but still needs such low level performance optimizations?
- surajrmal 3y agoLowering CPU usage can save battery. Just because you are running Linux doesn't mean you don't have a power budget.
- p_l 3y agoAmong many other projects I touched, we had a database engine which planned to move to io_uring as soon as it could be made available (it wasn't distributed outside company, so it was a question of internal infrastructure) PREEMPT_RT also includes a lot of possible low-latency work. io_uring also provides ridiculous performance benefits for normal server code, too.
- sophacles 3y agoContext switches are expensive. Often more expensive than operating on the data. io_uring providews a major reduction, or even near elimination of context swithes for io. It provides big win in a lot of server contexts in terms of packets/iops/throughput.
- lukeh 3y agoInitial motivation was lack of non-blocking SPI I/O in Linux user space. Then it made sense to use it for everything, it’s a straightforward mapping to Swift’s structured concurrency, so why not?