Content deleted Content added
No edit summary |
No edit summary |
||
Line 3:
For this reason many techniques, both in hardware and in software, are leveraged in order to distribute the incoming load of [[Network_packet|packets]] across the cores of the processor.<br>
As shown by the figure beside, packets coming into the [[Network_interface_controller|network interface card (NIC)]] are processed and loaded to the receiving queues managed by the cores (which are usually implemented as [[Circular buffer|ring buffers]] within the [[User space and kernel space|kernel space]]).
The main objective is being able to leverage all the cores available within the CPU to process incoming packets, while also improving performances like [[Latency (engineering)|latency]] and [[Network throughput|throughput]].<ref name="RSS kernel linux docs">{{Cite web|title=RSS kernel linux docs|url=https://www.kernel.org/doc/html/v5.1/networking/scaling.html#rss-receive-side-scaling|access-date=2025-07-08|website=kernel.org|publisher=The Linux Kernel documentation
== Hardware techniques ==
Line 41:
To do this, after having computed the hash of the header fields for the current packet, the result is used to index a lookup table.
This table is managed by the scheduler, which updates its entries when the application processes are moved between the cores.
The overall CPU load distribution is balanced as long as the applications in [[User space and kernel space|user-space]] are evenly distributed across the multiple cores.<ref name="RFS by redhat">{{Cite web|title=RFS by redhat|url=https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/performance_tuning_guide/network-rfs|access-date=2025-07-08|website=docs.redhat.com|publisher=Red Hat Documentation|language=en-US}}</ref><ref name="RFS by nvidea">{{Cite web|title=RFS by nvidea|url=https://docs.nvidia.com/networking/display/mlnxofedv23070512/flow+steering|access-date=2025-07-08|website=docs.nvidia.com|publisher=NVIDIA Documentation Hub|language=en-US}}</ref><ref>{{Cite web|title=RFS kernel linux docs|url=https://www.kernel.org/doc/html/v5.1/networking/scaling.html#rfs-receive-flow-steering|access-date=2025-07-08|website=kernel.org|publisher=The Linux Kernel documentation|language=en-US}}</ref>
=== XPS (in transmission) ===
|