Intel® Ethernet 800 Series

Linux Performance Tuning Guide

ID Date Version Classification
636781 10/23/2023 Public
Document Table of Contents

​Accelerated Receive Flow Steering (aRFS)

800 Series devices support Accelerated Receive Flow Steering (aRFS) on the physical interface. aRFS is a load-balancing mechanism in the Linux kernel that utilizes Intel® Ethernet Flow Director to route incoming packets to the same CPU being used by the application that is running or consuming the packets in a certain flow.

Previous generation Intel® Ethernet 700 Series adapters relied on Intel® Ethernet Flow Director application-targeted routing, which was enabled by default to direct these flows. For 800 Series devices, using community-supported aRFS technology allows for better coexistence with other kernel flow-steering features, such as XPS.

If you want all network traffic and application processing restricted to a specific set of CPUs, aRFS can ensure that packets destined for your application are routed to the queues serviced by the same CPU as the application. However, in the default configuration, all incoming received packets are distributed by RSS to any active receive queue.

Intel recommends that you run the set_​irq_​affinity script prior to enabling aRFS on your interface.

  • ​​To run the set_​irq_​affinity script from the ice source package, use this command: <path-to-ice-package>/scripts/set_arfs -s flow_entries eth1 <eth2> <eth3>

    The flow_​entries value is the number of entries in the global flow table. A good value to start with is 16384. This value can be adjusted to handle the expected workload. The flow_​entries value is divided by the number of receive queues enabled on the port. By default, this number is equal to the number of cores in your platform.

For manual configuration examples of aRFS, refer to the ice driver README file.