Frequent background polling on a shared thread, using light-weight compiler interrupts

Frequent background polling on a shared thread, using light-weight compiler interrupts
复制标题

DOI:
10.1145/3453483.3454107
复制
发表时间:
2021-06
期刊:
Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Nilanjana Basu;C. Montanari;Jakob Eriksson
Nilanjana Basu;C. Montanari;Jakob Eriksson
中科院分区:
其他
文献类型:
--
作者:
Nilanjana Basu;C. Montanari;Jakob Eriksson

文献摘要

相似文献

网络,存储和多线程的最新工作通过使用高率的用户空间进行了替换内核模式中断,这表明了性能和可扩展性。 ,在共享线程上进行自动高速投票,该线程在CIS之间执行其他工作。例如,当针对5,000个周期间隔时,我们最快的CI设计的中间开销为4%,而硬件中断的中位数为800%在三个系统级别的应用程序上:(a)与MTCP,(b)与Shenango的联合内核旁路网络和CPU调度的内核旁路网络,以及(c)委托书,通讯。替代锁定,对于每个应用程序,我们发现CI提供了令人信服的定性和定量改进,例如,基于CI的MTCP在样本HTTP应用程序上实现了MTCP的MTCP繁殖。
Recent work in networking, storage and multi-threading has demonstrated improved performance and scalability by replacing kernel-mode interrupts with high-rate user-space polling. Typically, such polling is performed by a dedicated core. Compiler Interrupts (CIs) instead enable efficient, automatic high-rate polling on a shared thread, which performs other work between polls. CIs are instrumentation-based and light-weight, allowing frequent interrupts with little performance impact. For example, when targeting a 5,000 cycle interval, the median overhead of our fastest CI design is 4% vs. 800% for hardware interrupts, across programs in the SPLASH-2, Phoenix and Parsec benchmark suites running with 32 threads. We evaluate CIs on three systems-level applications: (a) kernel bypass networking with mTCP, (b) joint kernel bypass networking and CPU scheduling with Shenango, and (c) delegation, a message-passing alternative to locking, with FFWD. For each application, we find that CIs offer compelling qualitative and quantitative improvements over the current state of the art. For example, CI-based mTCP achieves ≈2× stock mTCP throughput on a sample HTTP application.