Discussion 2
Date & Time: March 27, 20:30 ~ 21:30
出席
赵家兴(记录),陶柯宇,陈昂,李喆昊,付佳伟。
议题
讨论可行性报告的框架与分工,组长提出整个课题方向的大致框架,各组员交流意见
可行性报告基本框架,涉及内容
1. 必要的背景
当一个数据包从到达我们的网卡开始,到它完成在计算机里的所有计算与处理过程,最终存入内存(如浏览器)或存入硬盘(如下载)的整个流程里:
- 这是一个怎样的过程,其经过的每个硬件,每个连接硬件的数据通路的细节如何;以 Linux 操作系统为例,对于我们传统的使用 CPU 处理网络包的方式来说,这个过程是怎么样的(细节尽量多而通俗,如产生什么系统调用、中断之类的请求,数据包以怎样的流程传输),这个过程里“延迟”从何而来,“响应速度”被哪部分显著的决定(包括“延迟”、“响应速度”、“t2t” 这几个名词如何解释)。
- 当我们用NPU(本实验使用的 Netronome Agilio SmartNIC)协助 CPU 处理网络包的时候,这个数据传输过程与处理过程又是怎样的,NPU 加速了哪里,规避了 CPU 的哪些性能障碍,使得“延迟”如何降低,“响应速度”又如何提高
2. 可行性依据
一。区别于冯诺依曼架构 CPU 处理网络数据,数据流架构的网络处理有哪些理论,它的概念(如数据流架构如何处理数据,如何处理指令,如何并行等),它有哪些理论上的超越 CPU 处理网络的性能提升等级,它(如本实验使用网卡)为何能提高速度降低延迟等。
二。同时,当前使用数据流架构(如本实验使用的 SmartNIC 系列),诸如数据中心和云服务提供者,它们在此网卡的协作下将网络效果提高了多少。等等涉及 SmartNIC NFP 的性能表现,优化等级,延迟降低到什么级别,速度提高到什么等级,等等。
三。当前的 eBPF 是有哪些层次的(内核层,驱动层,网络栈,配合 XDP,配合 TC),它们达到了什么速度,什么延迟效果等。
四。“硬件卸载”是什么,硬件卸载诸如什么( eBPF 卸载,XDP 卸载)等,它为何能加速处理,eBPF 卸载的框架,它加速的这些(特别是 eBPF )都达到了什么效果。等等。
五。当前 eBPF 从 C / P4 高级语言编写到生成 eBPF 字节码的整个过程,各个步骤的可以展开的细节(cLang 做了什么,LLVM 做了什么等等),一步步往下的图解,到硬件卸载翻译成硬件的指令(包括本地CPU 和 SmartNIC )之前经过 JIT ,JIT 是什么(一些概念和解读细节等)。
六。本实验使用 SmartNIC 对 eBPF offload 的支持,所提供的工具链,添加一些能查到总结到的资料扩展一些细节等等。
3. 创新点,项目概要设计概念
不依赖或尽可能少的依赖 kernel 和冯诺依曼架构下的硬件,在 NIC 上独立完成数据包的处理;在操作系统上为 kernel 或用户提供操作指令接口,根据指令,在 SmartNIC 上 offload 不同的 eBPF 程序执行。
初步专注于针对特定的指令操作(特定的网络数据操作等)编写并特定优化 eBPF 程序,达到少的指令与快的速度。
可行性报告分工与额外的要求
- 付佳伟:负责 “1. 必要的背景” 部分。
- 陈昂:负责 “2. 可行性依据” 前两段涉及的内容。
- 赵家兴:负责 “2. 可行性依据” 第三、四段涉及的内容,与 “3. 创新点,项目概要设计概念”
- 李喆昊:负责 “2. 可行性依据” 第五、六段涉及的内容。
- 陶柯宇:负责最后报告的编写,提前整理好可行性报告的行文逻辑框架,并最后从大家的调研中抽取内容。
额外地,希望各组员调研的内容:
- 注意避免“翻译腔”,要在自己的理解基础上,参考原文和翻译,写出自己的行文通顺、逻辑通顺的内容。
- 尽量涵盖上述提到的概要内容但不必完全覆盖,也可以自行添加内容,注意细节清晰,讲解明白,尽量达到其他组员看完之后能明白的程度。
- 注意文段格式,如在英文两旁加空格等,保持视觉美观(
- 我们最终得到的每个人的可行性报告部分与最终的版本,希望达到一个教程级别的效果,每个组员读完每个人的部分之后能够对本课题的涉及内容,我们的大致工作,在概念上充分了解,框架上比较清楚,以备将来开展工作的方便。这点是为了长远而非眼前可行性 ddl 所做的考虑。
- 十页或许好凑,也可能不好凑,质量也要有所保证,希望各组员的调研花上足够的时间,写好写细,重视本次工作,这次思路清楚了,可以一举多得。
- 最好周五晚上完成各自的调研部分,最晚要在周六下午,为陶的最终稿编写留下充足的时间
待询问老师或有待讨论的问题
- 本课题框架是否充分了
- JIT 所做的是否已经足够好了,我们要在C的层面去针对优化代码性能,还是要直接操作 eBPF 乃至 SmartNIC 指令,甚至要知道 SmartNIC 指令的硬件细节来优化我们的代码。已询问:可能会需要去操作指令本身来达到更好的优化效果;关于NFP指令的手册与硬件细节,可以联系中国供应商。
- 我们如何监测我们硬件卸载的程序的速度和延迟。已询问:Intel 有指令可以衡量一段时间之内的较为相对的指令周期时间
- 网卡官网上给的 Agilio eBPF Software 等其他工具是否是我们需要的。已询问:应当是需要的,具体注册过程需要的信息要等网卡到货
- 对我们接下来工作的起步阶段有哪些建议。已询问:可以先搭好服务器环境。
- 其他