Improving network connection locality on multicore systems

Aleksey Pesterev, J. I. Strauss, Nickolai Zeldovich, Robert Morris · 2012

Incoming and outgoing processing for a given TCP connection often execute on different cores: an incoming packet is typically processed on the core that receives the interrupt, while outgoing data processing occurs on the core running the relevant user code. As a result, accesses to read/write connection state (such as TCP control blocks) often involve cache invalidations and data movement between cores' caches. These can take hundreds of processor cycles, enough to significantly reduce performance.

Read the paper · More papers on PaperTik