|
Boost : |
From: Virgilio Fornazin (virgiliofornazin_at_[hidden])
Date: 2024-07-18 21:34:14
a good point is to support sendmmsg / recvmmsg on linux/bsd (macos similar
syscall SYS_sendmsg_x / SYS_recvmsg_x)
to get good UDP throughput support.
I didn't find io_uring support for sendmmsg/recvmmsg at that time, maybe a
time you could get coding / pushing this too.
I keep the repo alive at
https://github.com/virgiliofornazin/asio/tree/feature/multiple_datagram_buffers_sequence-io-sendmmsg-recvmmsg
it's working rock solid on a vpn platform capable of about 3gbps udp
without packet loss in a 10gbe 9k mtu network.
On Thu, Jul 18, 2024 at 5:59â¯PM Christian Mazakas via Boost <
boost_at_[hidden]> wrote:
> On Wed, Jul 17, 2024 at 1:31â¯PM Niall Douglas via Boost <
> boost_at_[hidden]> wrote:
>
> > Anyway point is having the kernel tell you the buffers filled instead of
> > you telling it what buffers to fill is the right design. This is why
> > LLFIO's read op allowed reads to fill in buffers read completely
> > differently to buffers supplied, incidentally.
> >
>
> Ha ha, indeed.
>
> Actually, it might be nice to compare implementation notes. For Fiona, I
> create a buffer
> sequence for the user by over-allocating for each buffer and making an
> intrusive doubly-linked
> list. This means that the user gets a mutable buffer sequence without the
> need for any intermediate
> allocations.
>
> It also enables nice constant time push/pop and slicing. I was heavily
> inspired by Rust and Asio when
> coming up with the buffer abstraction:
> https://github.com/cmazakas/fiona/blob/main/test/buffer_test.cpp
>
> If you'd like, I'd really appreciate any implementation feedback on what's
> going on here. Not many
> seem to have the expertise in io_uring and this kind of stuff so it's rare
> when I get to really talk shop.
>
> Maybe I need to actually sit down and write some docs because I realize
> there's a lot to the codebase here
> and it's hard to convey everything just using email.
>
> - Christian
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk