Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Oct 2013 23:23:15 +0100
From:      Andre Oppermann <andre@freebsd.org>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "freebsd-net@freebsd.org" <net@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it>, Navdeep Parhar <np@freebsd.org>, Randall Stewart <rrs@lakerest.net>
Subject:   Re: [long] Network stack -> NIC flow (was Re: MQ Patch.)
Message-ID:  <527186D3.7090307@freebsd.org>
In-Reply-To: <CAJ-VmonUiBw%2B_auJEz254Gsyu9yq2awoFKyKDM9S4iY5S8BiOA@mail.gmail.com>
References:  <40948D79-E890-4360-A3F2-BEC34A389C7E@lakerest.net>	<526FFED9.1070704@freebsd.org>	<CA%2BhQ2%2BgTc87M0f5pvFeW_GCZDogrLkT_1S2bKHngNcDEBUeZYQ@mail.gmail.com>	<52701D8B.8050907@freebsd.org>	<527022AC.4030502@FreeBSD.org>	<527027CE.5040806@freebsd.org>	<5270309E.5090403@FreeBSD.org>	<5270462B.8050305@freebsd.org>	<CAJ-Vmo=6thETmTDrPYRjwNTEQaTWkSTKdRYN3eRw5xVhsvr5RQ@mail.gmail.com>	<20131030050056.GA84368@onelab2.iet.unipi.it>	<52717A62.7040600@freebsd.org> <CAJ-VmonUiBw%2B_auJEz254Gsyu9yq2awoFKyKDM9S4iY5S8BiOA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 30.10.2013 22:53, Adrian Chadd wrote:
> On 30 October 2013 14:30, Andre Oppermann <andre@freebsd.org> wrote:
>
>> As default setup and when running a server no QoS will be active
>> or inserted.  No or only very small software queues exist to handle
>> concurrency (except for ieee80211 to do sophisticated frame management
>> inside *if_txframe).  Whenever the DMA ring is full there is no point
>> in queuing up more packets.  Instead the socket buffers act as buffers
>> and also ensure flow control and backpressure up to userspace to limit
>> kernel memory usage from double and triple buffering.
>
> .. and what about for LAN<->WAN traffic, where there's no socket buffers?

When the DMA ring is full (in case of a deep ring, or the software queue
for small DMA rings) additional packets get dropped as it is today.  Instead
of tail dropping an active queue management algorithm like RED may be used.
The is no point in ultra deep buffering ending up in tens or hundreds of
milliseconds (see bufferbloat).  If there is more egress traffic destined
for an interface than it can handle there is no way to avoid packet drops.
It's actually a good thing because for TCP packet drops are the primary
feedback for its sending behavior.

-- 
Andre




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