Paul Durrant wrote: >> Ideally, the driver and hardware may implement these classification >> features: >> * Initially, when a group of rx rings are enabled, a default load >> balance policy(we prefer 5-tuple) should be enabled. It doesn't matter >> which type of hash is used and whether the load is evenly balanced. The >> framework also doesn't care the hash output. As soon as the traffics are >> steered to multiple channels, we assume the performance is acceptable. Then >> * If capable, the framework may decide to change the load balance >> policy, like from socket-pair based classification to IP protocol based >> classification, according to the traffic type. This is an optional >> nice-to-have interface. Then >> * A specific classification rule can be added with higher priority, >> so that a dedicated hardware channel can be used exclusively for this >> type of flow. For example, you want to steer all UDP/IPv4 packets to a >> ring for some reason. The load balance should still happen among all >> rest rings. >> >> Any comments? >> > > Microsoft require that the hardware supports an indirection table > based on a Toeplitz hash using a key supplied by Windows. The hash > should be used to index into the table and the entry in the table > should determine the CPU on which the hardware should generate the > interrupt. This table is periodically updated by windows (about every > 40 seconds or so) to prevent any particular CPU from becoming > overloaded. Crossbow is implementing polling threads each of that serves a single receive ring. Consequently, we prefer to slightly adjust traffic distribution through move those heavy flows to a dedicate ring than to randomly change the hash seeds to re-distribute traffics. Also, precise flow control done through polling interface will reduce the chance that few heave flows use up all CPU time.
Your advice is very helpful! We need to figure out how to leave a extendible interface so that Solaris will support this feature as soon as it become really popular in the future. (if there would not be any legal issue) Does this make sense? Thanks, Roamer > Given, as I said, that Microsoft *require* hardware to support this > kind of RSS you should consider it as an option for Solaris; it'll be > a pretty safe bet that all future hardware will support it. > > Paul > -- # telnet (650)-786-6759 (x86759) Connected to Solaris.Sun.COM. login: Lu, Yunsong Last login: January 2, 2007 from beyond.sfbay Yunsong.Lu at Sun.COM v1.03 Since Mon Dec. 22, 2003 [Roamer at Solaris Networking]# cd ..