gatekeeper icon indicating copy to clipboard operation
gatekeeper copied to clipboard

Change the core to port mapping in GK

Open mengxiang0811 opened this issue 4 years ago • 1 comments

In the MICA II paper "Architecting to Achieve a Billion Requests Per Second Throughput on a Single Key-Value Store Server Platform”, one optimization technique they used is to change the core to port mapping to reduce #queues so that it increases the LLC cache hit rate:

  • Choice#1: In the original MICA paper, each server core performs network I/O on all NIC ports in its NUMA domain. Thus, the total number of NIC queues in the system is NumCores * NumPorts.

  • Choice#2: In the MICA II paper, each server core talks to only one port, and the core to network port ratio is 2:1. Thus, the total number of NIC queues in the system is 2 * NumPorts.

In our current implementation here and here, we are using the choice#1. Currently, as we are using only one port for test (10Gbps test), so the total number of NIC queues is small, which shouldn’t affect the LLC cache hit rate. To test Gatekeeper on 100+Gpbs environment, this optimization could be critical.

mengxiang0811 avatar Oct 29 '19 18:10 mengxiang0811

Part of this change may involve creating Route (RT) blocks to take over the processing of the back interface from GK blocks, so GK blocks would not read from back interfaces. RT blocks may even bring a processor cache improvement: since RT blocks do not deal with a flow table, the L1 caches of RT blocks have more room to store the LPM table.

AltraMayor avatar Oct 30 '19 08:10 AltraMayor