Hi David, Thanks for the comments.
On 25-01-17 18:25, David Sommerseth wrote: > First of all, not all kernels carry these system calls, I believe they > were added in some of the 3.x kernels - but, IIRC, it has been > backported to at least the RHEL6 2.6.32 kernels. My memory is scarce > about the 2.6.18 kernel base on RHEL5, but I believe only recvmmsg() is > supported there. > > But kernel support isn't enough. It needs to be supported in glibc as > well, where recvmmsg() arrived in glibc-2.12 and sendmmsg() arrived in > glibc-2.14. And if glibc support is missing ... there's needed to so > some tweaks here, having a wrapper which does the proper syscall() with > SYS_recvmmsg and/or SYS_sendmmsg as the syscall number reference. (see > /usr/include/bits/syscall.h and man syscall(2) for more info) ... but > step carefully with such wrappers - as we need to consider > cross-platforms (not saying we should support this feature on all > platforms). > > So all this considered, configure.ac will need to do some probing if > recvmmsg() and sendmmsg() are supported. configure.ac has: -AC_CHECK_FUNCS([sendmsg recvmsg]) +AC_CHECK_FUNCS([sendmsg recvmsg sendmmsg recvmmsg]) and the calls are inside +#ifdef HAVE_RECVMMSG Shouldn't that be enough? > I know this patch covers recvmmsg() only. But I think you can gain even > more performance if looking into sendmmsg() as well. Yes, but that's a little trickier, because it also need changing the tun/tap side (we need to read multiple messages there to have some gain from sendmmsg()). I decided to do this one thing at a time :) > I'll try to play a bit with this patch and see how things go on my side > though. Great, I am curious about your results. -Steffan ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel