On Mon, Sep 04, 2023 at 01:14:17PM -0400, Jon Maloy wrote: > > > On 2023-06-23 07:02, Stefano Brivio wrote: > > On Thu, 22 Jun 2023 22:12:27 -0400 > > Jon Maloy wrote: > > > > > When reading received messages with MSG_PEEK, we sometines have to read > > > the leading bytes of the stream several times, only to reach the bytes > > > we really want. This is clearly non-optimal. > > > > > > What we would want is something similar to pread/preadv(), but working > > > even for tcp sockets. At the same time, we obviously don't want to add > > > any new arguments to the recv/recvmsg() calls. > > > > > > In this commit, we allow the user to set iovec.iov_base in the first > > > vector entry to NULL. This tells the socket to skip the first entry, > > > hence making the iov_len field of that entry indicate the offset value. > > > This way, there is no need to add any new arguments. > > Ah-ha! I'm glad you found an acceptable way to pass a NULL pointer > > there. :) > > > > > This change is simple and non-intrusive, and should be safe addition to > > > the socket API. We have measured it to give a throughput improvement of > > ...it would be nice to also do a bit of profiling with perf(1) -- > > that's where I originally noticed we were wasting cycles on filling up > > tcp_buf_discard. Plus, sure, there's also some value in dropping a > > useless 16 MiB buffer. > > > > If you need examples/inspiration: the pasta (automated) demo shows > > that, skip at 9:20 in: https://passt.top/passt/about/#pasta_2 (the one > > on the left) > > > > and that's simply done like this: > > https://passt.top/passt/tree/test/demo/pasta#n163 > This looks like a script language, but I don't recognize it. How do I run > it? It's the hand rolled script language of the passt tests. The interpreter is in test/lib/test. Easiest way to run it is probably to "make check" in test/ of the passt tree. If you want to selectively run certain things, edit test/run. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson