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
期刊:
影响因子:
--
通讯作者:
Nilanjana Basu;C. Montanari;Jakob Eriksson
中科院分区:
文献类型:
--
作者:
Nilanjana Basu;C. Montanari;Jakob Eriksson
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.