NETIF_F_GSOのいくつかの理解

tcp_sendmsg機能を参照するには、Linuxカーネルスタックの時間を見て、それを理解することは難しいようではありませんが、ときに、アプリケーションのメインSKBサイズバフので、私は非常に混乱しています。私はいつもそれがピア・コンピューティングに応じて/ PMTU MSS / IPオプションを解雇した後、SKBの主なバフMSSサイズを適用するだろうと思っていました。私はコードが単純すぎる見たいことがわかった、Linuxはスライス(GSO)を遅らせる機能、従っていhttps://lwn.net/Articles/188489/ SG GSOカード明細書この記事の支援の効率化を17.5%は、アップグレードすることができるだろうが、ゆっくりと(結局、二回コピーする必要がある)カードにSGをサポートしていないが、はるかになります。

SGは何である(分散/収集)

そのSGカードは、個別送信されたデータセグメントの複数をサポートします。

GSOの上記特性を有する最初の(SKB)skb_shinfo入れたすべてのデータの主バフSKB専用メモリtcp_sendmsgアプリケーションプロトコルヘッダL2 / L3 / L4の時に、ある - 内部> frags。SKBは、ネットワークカードドライバをスライスする前に、それまで待機します。

sendmsgの機能では、このようなSKBは、正しい方法をスライスSKBに問題を駆動する前に、左、その後、SGを送信するためにカードを使用する場合にのみ適用されます。数は、なぜ効率が同様に改善されている、メモリ割り当てを減少させなかった、コピーの数を減らすようには見えませんか?

おすすめ

転載: www.cnblogs.com/4a8a08f09d37b73795649038408b5f33/p/11718594.html