[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1361381986.19353.205.camel@edumazet-glaptop>
Date: Wed, 20 Feb 2013 09:39:46 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Johannes Berg <johannes@...solutions.net>
Cc: Marc MERLIN <marc@...lins.org>, David Miller <davem@...emloft.net>,
Larry.Finger@...inger.net, bhutchings@...arflare.com,
linux-wireless@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: 3.7.8/amd64 full interrupt hangs due to iwlwifi under big nfs
copies out
On Wed, 2013-02-20 at 17:59 +0100, Johannes Berg wrote:
> Yeah, I don't follow netdev much any more...
>
Short answer : tcp stack has autotuning sk_rcvbuf, tracking _memory_ use
of a socket.
If network layer provides 8k fat skbs (holding 1500 bytes), the
advertised TCP receive window will be much smaller than if network layer
provides 2k skbs.
Its quite visible in a tcpdump in the beginning of a tcp session.
You'll see how linux grows the receive window, before and after my
patch. You'll see how the sender can send its data faster.
Providing nice skbs is a way to speedup Internet browsing, as most http
traffic happen exactly while tcp receiver didnt yet advertised a big
window. (Especially visible with large RTT)
> >
> > /* If frame is small enough to fit in skb->head, pull it completely.
> > * If not, only pull ieee80211_hdr so that splice() or TCP coalesce
> > * are more efficient.
> > */
>
> Oh, right, though I guess the comment is now wrong since practically
> every packet will be copied either here or in mac80211 (A-MSDUs are
> split up there)
Comment is not 'wrong', it describes what happens here.
If there is enough room in skb->head to avoid attaching a page fragment
to the skb, lets copy the frame so that the page fragment can be reused
by the NIC driver immediately.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists