Date: Thu, 11 Jul 2002 19:31:17 -0400 (EDT) From: Kelly Yancey <kbyanc@posi.net> To: Bosko Milekic <bmilekic@unixdaemons.com> Cc: Luigi Rizzo <rizzo@icir.org>, freebsd-net@FreeBSD.ORG Subject: Re: mbuf external buffer reference counters Message-ID: <Pine.BSF.4.05.10207111913160.46046-100000@kronos.networkrichmond.com> In-Reply-To: <20020711171255.A19014@unixdaemons.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 11 Jul 2002, Bosko Milekic wrote: > > On Thu, Jul 11, 2002 at 01:56:08PM -0700, Luigi Rizzo wrote: > > example: userland does an 8KB write, in the old case this requires > > 4 clusters, with the new one you end up using 4 clusters and stuff > > the remaining 16 bytes in a regular mbuf, then depending on the > > relative producer-consumer speed the next write will try to fill > > the mbuf and attach a new cluster, and so on... and when TCP hits > > these data-in-mbuf blocks will have to copy rather than reference > > the data blocks... > > > > Maybe it is irrelevant for performance, maybe it is not, > > i am not sure. > > I see what you're saying. I think that what this means is simply that > the `optimal' chunk of data to send is just a different size, so > instead of it being 8192 bytes, it'll be something like 8180 bytes or > something (to account for the counters). So, in other words, it > really depends on the frequency of exact 8192 sized sends in userland > applications. > ...or exactly 2k or 4k or 6k or 10k... > This is a good observation if we're going to be doing benchmarking, > but I'm not sure whether the repercussions are that important (unless, > as I said, there's a lot of applications that send exactly 8192 > byte chunks?). Basically, what we're doing is shifting the optimal > send size when using exactly 4 clusters, in this case, to (8192 - 16) > bytes. We can still send with exactly 4 clusters, it's just that the > optimal send size is a little different, that's all (this produces a > small shift in block send benchmark curves, usually). > Are you kidding? Benchmarks, presumably like every other piece of software produced by someone trying to get the most performance out of the system, are more likely to have power-of-two write buffers. Are you willing to risk that they didn't also just happen to pick a multiple of 2^11? Yes, it seems elegant to put the counters in the space that is normally unused for receive mbuf clusters, but you can't just blow off Luigi's point regarding the send side. Kelly -- Kelly Yancey -- kbyanc@{posi.net,FreeBSD.org} To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.10207111913160.46046-100000>