You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The underlying VM (BEAM) doesn't support io_uring so far. Adding support has been discussed and (re)considered just recently, but probably won't be available anytime soon. In theory, we could use custom socket code, but I don't think we want to go that route.
I can well image io_uring helping with CPU utilization and throughput, but note that TURN specifically has the problem that each and every packet must be (un)wrapped while being relayed (so there's no easy way to perform zero-copy I/O). I don't have numbers, but I'd assume this to be an even more significant bottleneck for TURN relaying compared to the syscall overhead avoided by io_uring. One way to reduce this bottleneck would be to perform the (un)wrapping within kernel space using eBPF, which would also reduce syscall overhead significantly. (Others had the same idea, by the way.) This is on my to-do list, but I can't give you a timeframe, sorry.
Please plan iouring support on linux if not done already.
Thanks ,
The text was updated successfully, but these errors were encountered: