Thread (10 messages) 10 messages, 4 authors, 2013-02-20

Re: 3.7.8/amd64 full interrupt hangs due to iwlwifi under big nfs copies out

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2013-02-20 17:00:45
Also in: linux-wireless

Possibly related (same subject, not in this thread)

On Wed, 2013-02-20 at 08:55 -0800, Eric Dumazet wrote:
quoted
quoted
It will make a huge difference, even on non pressure mode, as TCP
receive window will grow twice faster.
Hmm, why does that depend on the allocation size?
I guess you missed all the patches about skb->truesize on netdev
Yeah, I don't follow netdev much any more...
quoted
quoted
-	skb = alloc_skb(128, GFP_ATOMIC);
+	fraglen = 128;
+	/* if we use order-1 pages, copy to get better TCP performance */
+	if (rxb->truesize > PAGE_SIZE)
+		fraglen = max_t(unsigned, fraglen, len);
+
+	skb = alloc_skb(fraglen, GFP_ATOMIC);
Hmm, I don't quite understand -- that's not doing any copy?

FWIW if you do the copy you should not "steal" the pages, then they'd be
recycled in the RX ring right away.
Code should just works, please read the following lines in the same
function....

        /* 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)

johannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help