Linuxでは、「ゼロコピーネットワーキング」は基本的に実装されていますか?

Linuxでは、「ゼロコピーネットワーキング」は基本的に実装されていますか?

私は次の記事を見ました:

http://lwn.net/2001/0419/kernel.php3

ゼロコピーネットワーキングは2.4.4に表示されます。このパッチはDavid Miller、Alexey Kuznetsovなどがしばらく開発してテストし、2.4.2ac4から「ac」カーネルシリーズにマージされました。ある意味、これは安定したカーネルシリーズで見られる驚くべき変化です。なぜなら、ネットワークコードの深い根本的な変化が含まれているからです。ただし、すべてのレポートでこれは信頼でき、場合によってはかなりのパフォーマンス上の利点を提供します。

Linuxにゼロコピーネットワーキングがデフォルトで存在するのか、それともこのパッチがゼロコピーネットワーキングを実装したい人のためであるのか、誰が教えてもらえますか?

つまり、現在Ubuntuは常に無コピーネットワーキングを実行していますか、または上記のパッチを利用するために特定のシステムコールを使用する必要がありますか?

答え1

Linuxカーネルgitリポジトリから:

git log --oneline -- drivers/net | head -n5000 | egrep -i 'zero[[:space:]]*copy'

私たちに教えてください:

  • 7d9e6dd macvtap:iovにMAX_SKB_FRAGSよりも多くのページが必要な場合は、ゼロコピーを実行しないでください。
  • 05464d2 tuntap:iovにMAX_SKB_FRAGSよりも多くのページが必要な場合は、ゼロコピーを実行しないでください。
  • bd31fdd macvtap: Zerocopy を使用する場合、skb を正しく線形化します。
  • d09ec76 tuntap: Zerocopy を使用する場合、skb を正しく線形化します。
  • 19a6afb tuntap: オープン中に SOCK_ZEROCOPY フラグを設定
  • 149d36f tun:ゼロコピーコールバックで孤立した断片化エラーが報告されました。

これは(私の考えでは)あなたの質問に明確かつ肯定的に答えます。 ;)

関連情報