Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
102 tokens/sec
GPT-4o
59 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
6 tokens/sec
GPT-4.1 Pro
50 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

COREC: Concurrent Non-Blocking Single-Queue Receive Driver for Low Latency Networking (2401.12815v1)

Published 23 Jan 2024 in cs.NI and cs.DC

Abstract: Existing network stacks tackle performance and scalability aspects by relying on multiple receive queues. However, at software level, each queue is processed by a single thread, which prevents simultaneous work on the same queue and limits performance in terms of tail latency. To overcome this limitation, we introduce COREC, the first software implementation of a concurrent non-blocking single-queue receive driver. By sharing a single queue among multiple threads, workload distribution is improved, leading to a work-conserving policy for network stacks. On the technical side, instead of relying on traditional critical sections - which would sequentialize the operations by threads - COREC coordinates the threads that concurrently access the same receive queue in non-blocking manner via atomic machine instructions from the Read-Modify-Write (RMW) class. These instructions allow threads to access and update memory locations atomically, based on specific conditions, such as the matching of a target value selected by the thread. Also, they enable making any update globally visible in the memory hierarchy, bypassing interference on memory consistency caused by the CPU store buffers. Extensive evaluation results demonstrate that the possible additional reordering, which our approach may occasionally cause, is non-critical and has minimal impact on performance, even in the worst-case scenario of a single large TCP flow, with performance impairments accounting to at most 2-3 percent. Conversely, substantial latency gains are achieved when handling UDP traffic, real-world traffic mix, and multiple shorter TCP flows.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (19)
  1. doi:10.1145/3379483. URL https://doi.org/10.1145/3379483
  2. doi:10.1145/2997641. URL https://doi.org/10.1145/2997641
  3. doi:10.1145/3386367.3432730. URL https://doi.org/10.1145/3386367.3432730
  4. doi:10.1109/TPDS.2018.2865932. URL https://doi.org/10.1109/TPDS.2018.2865932
  5. doi:10.1145/3445814.3446696. URL https://doi.org/10.1145/3445814.3446696
  6. doi:10.1109/ANCS.2019.8901892.
  7. DPDK. URL https://www.dpdk.org/
  8. Intel® 82599 10 GbE Controller Datasheet Rev. 3.4, section 7.1.9. URL https://www.intel.com/content/www/us/en/embedded/products/ networking/82599-10-gbe-controller-datasheet.html
  9. Built-in Functions for Memory Model Aware Atomic Operations. URL https://gcc.gnu.org/onlinedocs/gcc/ _005f_005fatomic-Builtins.html#g__͡005f_005fatomic-Builtins
  10. Legacy __sync Built-in Functions for Atomic Memory Access. URL https://gcc.gnu.org/onlinedocs/gcc/ _005f_005fsync-Builtins.html#g_t_005f_005fsync-Builtins
  11. Sample Applications User Guides - L3 Forwarding Sample Application. URL https://doc.dpdk.org/guides-19.11/sample_app_ug/ l3_forward.html
  12. Sample Applications User Guides - IPsec Security Gateway Sample Application. URL https://doc.dpdk.org/guides-19.11/sample_app_ug/ ipsec_secgw.html
  13. doi:10.17487/RFC4737. URL https://www.rfc-editor.org/info/rfc4737
  14. MAWI Working Group Traffic Archive. URL https://mawi.wide.ad.jp/mawi/
  15. doi:10.1145/3503222.3507769. URL https://doi.org/10.1145/3503222.3507769
  16. PF_RING ZC (Zero Copy). URL https://www.ntop.org/products/packet-capture/ pf_ring/pf_ring-zc-zero-copy/
  17. The Linux Foundation, napi. URL https://wiki.linuxfoundation.org/networking/napi.
  18. doi:10.1145/3230718.3230727. URL https://doi.org/10.1145/3230718.3230727
  19. Intel® Data Direct I/O Technology (Intel® DDIO): A Primer. URL https://www.intel.com/content/dam/www/public/us/en/ documents/technology-briefs/data-direct-i-o-technology-brief.pdf
User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (4)
  1. Marco Faltelli (2 papers)
  2. Giacomo Belocchi (3 papers)
  3. Francesco Quaglia (15 papers)
  4. Giuseppe Bianchi (26 papers)
X Twitter Logo Streamline Icon: https://streamlinehq.com