Full-system simulation of computer systems is critical to capture the complex interplay between various hardware and software components in future systems. Modeling the network subsystem is indispensable to the fidelity of the full-system simulation due to the increasing importance of scale-out systems. The network software stack has undergone major changes over the last decade, and kernel-bypass networking stacks and data-plane networks are rapidly replacing the conventional kernel network stack. Nevertheless, the current state-of-the-art architectural simulators still use kernel networking which precludes realistic network application scenarios. In this work, we enable kernel bypass networking stack on gem5, the state-of-the-art full-system architectural simulator. We extend gem5's NIC hardware model and device driver to enable the support for userspace device drivers to run the DPDK framework. We also implement a network load generator hardware model in gem5 to generate various traffic patterns and perform per-packet timestamp and latency measurements without introducing packet loss. Our experimental results show that DPDK's simulated network bandwidth scales with the number of cores and NIC ports. As two use cases, we analyze the sensitivity of (1) network performance to several microarchitectural parameters, and (2) direct cache access (DCA) technology to DPDK burst size.
翻译:全系统仿真对于捕捉未来系统中硬件与软件组件之间的复杂交互至关重要。由于横向扩展系统的重要性日益增长,网络子系统的建模对于全系统仿真的保真度不可或缺。过去十年间,网络软件栈经历了重大变革,内核旁路网络栈和数据平面网络正迅速取代传统内核网络栈。然而,当前最先进的架构模拟器仍沿用内核网络,这排除了真实的网络应用场景。在本工作中,我们在最先进的全系统架构模拟器gem5上实现了内核旁路网络栈。我们扩展了gem5的NIC硬件模型和设备驱动,以支持用户态设备驱动运行DPDK框架。同时,在gem5中实现了网络负载生成器硬件模型,用于生成多种流量模式,并在不引入丢包的情况下进行逐包时间戳和延迟测量。实验结果表明,DPDK的模拟网络带宽随核心数与NIC端口数量线性扩展。作为两个应用案例,我们分析了:(1) 网络性能对若干微架构参数的敏感性,以及 (2) 直接缓存访问(DCA)技术对DPDK突发大小的敏感性。