gatekeeper icon indicating copy to clipboard operation
gatekeeper copied to clipboard

Maximize cache hits for GK, GT, and GK-GT unit

Open AltraMayor opened this issue 7 years ago • 3 comments

The GK blocks, GT blocks, and the GK-GT unit are the critical blocks of Gatekeeper and Grantor servers. In order to allow them to reach line speed, we need to maximize their cache hits, even if this reduces the cache hits of other blocks.

AltraMayor avatar Jan 26 '17 21:01 AltraMayor

This issue depends on us having a good testing environment. This test environment must generate normal and under-attack traffic patterns and a number of performance and correctness metrics in order to be well suited for the evaluation of the new code.

A reasonable intermediate step to initially evaluate how much can be gained through addressing this issue is to adopt rte_hash_lookup_bulk() in GK blocks to look up the flow table for the incoming packets.

AltraMayor avatar Nov 19 '18 15:11 AltraMayor

As a part of this issue, we should address this comment in include/gatekeeper_sol.h:

/*                                                                              
 * XXX The DPDK packet scheduler uses __rte_cache_aligned                       
 * on member @memory and on the struct as a whole. Should                       
 * it be used here?                                                             
 */

cjdoucette avatar Dec 07 '18 20:12 cjdoucette

Another lower hanging fruit is for GK blocks to adopt rte_lpm_lookupx4() as well.

AltraMayor avatar Jan 18 '19 17:01 AltraMayor