自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 网卡驱动收发包sk_buff相关分析

内核在构造skb的时候,会查找出口网卡上的特性是否有NETIF_F_SG标记,如果没有这个标记,则不会使用frags[MAX_SKB_FRAGS],而是申请一个大的skb data存储数据,这在某些情况下可能效率会比较低。但是也可能申请一个新的skb+data,此时,skb的data中只拷贝14个字节的eth head,buff的剩余部分,作为skb的第一个frags存放在frags[MAX_SKB_FRAGS]中。但是,buff的最小长度为硬件默认的MTU大小,buff最大的大小不超过一个内核页大小。

2024-07-26 15:30:28 1573

原创 网卡RSS功能

该功能主要是让网络报文,散列的交给多个CPU处理,从而避免单个CPU的负载过大,造成性能瓶颈。其主要流程如下:网卡收到一个网络报文后,根据不同的报文类型,选择不同的报文字段,进行hash计算,算出一个hash值。哪些报文类型要做RSS是可以配置的。(例如只指定ipv4 tcp报文做RSS,其他类型的报文都不做RSS)每一种配置的报文类型,可以指定选择哪些字段做hash计算。(例如,可以指定对于ipv4 tcp报文,只使用tcp的目的端口号做hash)

2024-07-12 15:58:29 766

原创 linux内核网卡checksum卸载功能

checksum卸载分为发送和接收两个方向。发送方向是指host主机发送报文,如果网卡不支持checksum卸载,那么需要内核网络协议栈计算报文的checksum,如果报文的数据部分长度比较长,那么这个运算会有一定的CPU开销。如果网卡支持checksum卸载,那么可以将这一部分计算卸载到网卡,由网卡硬件实现。接收方向是指网卡收到报文上送主机处理。如果网卡不支持checksum卸载,那么内核协议栈收到报文后,需要计算报文的checksum,校验报文是否数据失真。

2024-07-12 15:35:40 1585

原创 NVMEoF 内核initiator端实现源码分析

这个实现是在nvme-cli模块内部实现的,跟一个discovery控制器连接,获取可以连接的所有的nvme子系统的信息,可能会有多个。如下的示例中,只有一个nvme subsystem可以连接:nqn.2016-06.io.spdk:cnode1。具体命令如下:portid: 0。

2024-06-14 13:58:47 592 1

原创 virtio-net的前后端分析

注:MSI-X表放在一个单独一个BAR空间中,设置为non-prefetchable,因为里面的pending为是读清的操作,不可以设置为prefetchable(从目前的BSC卡的实现来看,由于virtio设备用不到msix的pending,因此可以设置为prefetchable)。其他的virtio配置寄存器放在另外一个BAR空间中,设置为prefetchable,在一些pcie的硬件架构下,可以提高访问的性能。驱动通过读写CommonCfg中的feature相关的字段来协商特性。

2024-05-27 17:15:04 654

原创 DPDK内存管理分析

DPDK的内存管理框架,从底层往上依次为:大页系统。获取系统的大页信息。包括各种大页类型,及其可用大页的数目。获取大页文件系统mount的目录(可以参数指定,--huge-dir ),将要创建的大页文件的前缀(可以参数指定,--file-prefix)每个大页文件系统指定的页的大小是固定的,因此不同页大小的大页,mount的目录是不一样的。

2024-05-20 11:28:34 1782

原创 tcp、dup的socket发包支持零拷贝

要实现零拷贝,那么sendbuf需要在实际发出去之后,才能释放,这会有很大延迟,尤其是tcp这种需要等待确认,且有可能重传的情况。但如果send操作一直阻塞住,会很大程度影响用户发送数据的吞吐量。对于用户编程来说,需要做一些改动,即调用了send操作后,会很快返回,但是其sendbuf不能立即释放,需要等待通知后,才能释放。

2024-03-28 11:15:56 363 1

原创 tcp offload的两个方案

1、SMC Shared Memory Communication系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一) - 知乎共享内存通信SMC的优势、架构、应用场景以及如何使用SMC_云服务器 ECS(ECS)-阿里云帮助中心2、SocksDirect https://www.microsoft.com/en-us/research/uploads/prod/2019/08/p90-li.pdfGitHub - bojieli/SocksDirect: SocksDirect code re

2024-03-26 11:02:44 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除