[Twisted-Python] reactor for Linux io_uring

Barry Scott barry.scott at forcepoint.com
Mon Jan 4 08:15:36 MST 2021


On Monday, 4 January 2021 04:01:42 GMT Ian Haywood wrote:
> In investigating async file I/O I came across this. In a nutshell it's 
> the new epoll()

> It's marginally more efficient although this is only apparent at very 
> high loads.

> What's more interesting is that io_uring accepts files as 
> well as network/pipe handles: avoiding the need for threads.

What threads? Why do you call out file FDs different from socket FDs?

The point of io_uring is to avoid transitions between user and kernel right?
Nothing to do with thread.

In current twisted you can run complex network code without threads
already.

> Here's a good intro: https://unixism.net/loti/index.html

Also there is full coverage of io_uring on lwn.net.
Its a fast evolving kernel API.

> If people think an IoUringReactor is worthwhile I'll open a ticket and 
> make a start.

I'm guessing that you will need to write a Python extension to get at
io_uring or use ctypes. Is that what you where expecting?

> However it will need a reviewer... :-)

Yes this is going to be complex code that few people have any experience with.

Barry

> Ian
> 
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 






More information about the Twisted-Python mailing list