私は次の記事を見ました:
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:ゼロコピーコールバックで孤立した断片化エラーが報告されました。
これは(私の考えでは)あなたの質問に明確かつ肯定的に答えます。 ;)