2.6.35が出たので、Linux_2_6_35 - Linux Kernel Newbiesで変更点を眺めていたらRPS/RFSという機能が入ったことに気付く。 RPSとはReceive Packet Steeringの略称で、受信パケットの処理をマルチCPUで分散させることで、スループットの向上を図る機能であるらしい。パッチの提供主はGoogle。 昔kernelの本を読んだときはキャッシュの有効活用の点からあまり分散させると良くないと聞いていたのだけど、8wayぐらいが普通にゴロゴロしている状況ではそうも言っていたれなのかもしれない。8コアの環境でのベンチマークでは2から3倍程度の性能は出たとのこと。 実装を見てみる。Linuxのネットワークスタックの動き自体の概観は送受信 - Linuxカーネルメモ が非常に参考になった。 機能の有効/無効はnet/Kconfigで制御しているのだ