上一次写还是2020.6
写点东西,权当记录
1. GPU: Graphic driver
最近了解了一下Linux Graphic的驱动, DRM/GEM/TTM 等
与一个同事聊天时,他说Linux驱动程序就分两类,一类为Graphic,一类为非graphic
非graphic简单,Graphic复杂(特别是GEM/TTM, VRAM/GTT内存管理)
其实,个人认为Windows下也WDDM是类似的情况
而且Graphic驱动,也就那几家公司(NV, INTEL, AMD)有团队在做
个人做DRM/WDDM有什么意义吗?似乎没有
2. DPU: SmartNic
最近DPU公司出现一家又一家
于是稍微看了一下与DPU相关的软件方向的东西
DPDK, XDP, AF_XDP, eBPF, IO_URING,intel的e1000 Linux开源驱动
DPDK: 绕开了linux的内核协议栈,内核当中基本不做什么事情(vfio, igb_uio), PMD(polling mode driver)也是应用层的东西。通过resource0...N的暴露,应用层全权掌控了网卡设备
XDP:看到DPDK绕开了内核网络协议栈,linux内核当然不爽,搞了XDP/eBPF, 可以在RX的数据封到sk_buf前,就做决定,是丢DROP是,是送PASS UP,是转FORWARD/TX。
AF_XDP:则进一步,DPDK可以绕开内核协议栈,它也可以,直接把数据送到