User`s guide

Chapter II. Network (NIC/TOE)
Chelsio T5/T4 Unified Wire For Linux Page 53
Receiver Side Scaling (RSS)
Receiver Side Scaling enables the receiving network traffic to scale with the available number of
processors on a modern networked computer. RSS enables parallel receive processing and
dynamically balances the load among multiple processors. Chelsio’s T5/T4 network controller
fully supports Receiver Side Scaling for IPv4 and IPv6.
This script first determines the number of CPUs on the system and then each receiving queue is
bound to an entry in the system interrupt table and assigned to a specific CPU. Thus, each
receiving queue interrupts a specific CPU through a specific interrupt now. For example, on a 4-
core system, t4_perftune.sh gives the following output:
[root@host]# t4_perftune.sh
Discovering Chelsio T4/T5 devices ...
Configuring Chelsio T4/T5 devices ...
Tuning eth7
IRQ table length 4
Writing 1 in /proc/irq/62/smp_affinity
Writing 2 in /proc/irq/63/smp_affinity
Writing 4 in /proc/irq/64/smp_affinity
Writing 8 in /proc/irq/65/smp_affinity
eth7 now up and tuned
...
Because there are 4 CPUs on the system, 4 entries of interrupts are assigned. For other T5/T4
network interfaces, you should see similar output message.
Now the receiving traffic is dynamically assigned to one of the system’s CPUs through a T5/T4
queue. This achieves a balanced usage among all the processors. This can be verified, for
example, by using the iperf tool. First set up a server on the receiver host:
[root@receiver_host]# iperf s
Then on the sender host, send data to the server using the iperf client mode. To emulate a
moderate traffic workload, use -P option to request 20 TCP streams from the server:
[root@sender_host]# iperf -c receiver_host_name_or_IP -P 20