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 linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html