Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jan 2016 21:28:40 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        Boris Astardzhiev <boris.astardzhiev@gmail.com>, Mark Delany <c2h@romeo.emu.st>, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   Re: Does FreeBSD have sendmmsg or recvmmsg system calls?
Message-ID:  <20160107192840.GF3625@kib.kiev.ua>
In-Reply-To: <CA%2BhQ2%2Bg6OB3MmZrW5hzNSnkcqKaKf1XGDraHfWXtSrowxKuL5g@mail.gmail.com>
References:  <20160104091108.50654.qmail@f5-external.bushwire.net> <20160104093859.GV3625@kib.kiev.ua> <20160104101747.58347.qmail@f5-external.bushwire.net> <20160104194044.GD3625@kib.kiev.ua> <20160104210741.32812.qmail@f5-external.bushwire.net> <CAP=KkTwfpjec2Tgnm4PRR3u8t4GEqN9Febm5HRcqapifBG-B6g@mail.gmail.com> <CA%2BhQ2%2Bh4NNz9tgSpjJdv7fXteq5tAR7o3LvjV=u08NHjRLPwmA@mail.gmail.com> <CAP=KkTzFUDsZwDDLD3n97xJW0qLVZMPduZGSX%2BeXC3UuLpVjMg@mail.gmail.com> <20160107161213.GZ3625@kib.kiev.ua> <CA%2BhQ2%2Bg6OB3MmZrW5hzNSnkcqKaKf1XGDraHfWXtSrowxKuL5g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 07, 2016 at 10:31:13AM -0800, Luigi Rizzo wrote:
> While it was good to have the first patch as a reminder of what needs to be done
> (noticeably, discuss the various pieces to be modified and how to deal
> with errors and the comments about DoS and malloc), I think that at
> the moment it is premature to implement either the library functions
> or the syscalls.
> 
> What we need first is experimental data that shows a performance benefit
> compared to looping around the single-packet syscall. Then we can decide
> how to proceed.
This is about performance.

> 
> Implementing the library function now is relatively pointless: its only use
> would be to compile some software that requires *mmsg() , and we can address
> that with a custom patch for the application (which almost surely would
> need to work around another ton of linux-specific functions).
And this is about compatibility.  I agree with the statement above about
the work with the performance motivation, but I do not agree that we should
not ensure compatibility because there is more to do.  We have willing
contributor, who learns, and who is on track to provide a usable
implementation for the compat shims, be it in userspace or kernel (I do
prefer userspace implementation).

I do not understand you point that we can patch application.  IMO it
is not a useful or scalable approach to handle changing app expectations
from the base platform.

> 
> Implementing the syscall that just reflects the libc function, as Kostantin
> rightly commented, may be too limited, and we cannot tell until we know
> what solution permits achieving decent performance improvements,
> especially on the send side -- e.g. some argument to tell the syscall
> "there are more packets coming down so please hold on a bit".
> For receive, there is probably very little room for enhancements,
> the best we can do is grab everything from the socket.

Yes, this is an argument for two things: to make libc wrapper, and to
measure kernel variant, as an option.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160107192840.GF3625>