wu_xue_zhi
码龄6年
求更新 关注
提问 私信
  • 博客:19,113
    19,113
    总访问量
  • 9
    原创
  • 162
    粉丝
  • 44
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
加入CSDN时间: 2020-06-02

个人简介:求知

博客简介:

weixin_48329334的博客

查看详细资料
个人成就
  • 获得200次点赞
  • 内容获得6次评论
  • 获得216次收藏
  • 博客总排名766,323名
创作历程
  • 9篇
    2024年
成就勋章
TA的专栏
  • virtio
    1篇
  • AI
    1篇
  • 网卡功能
    3篇
  • nvme
    1篇
  • rdma
    1篇
  • DPDK
    1篇

TA关注的专栏 1

TA关注的收藏夹 0

TA关注的社区 2

TA参与的活动 1

兴趣领域 设置
  • 人工智能
    人工智能
  • 网络与通信
    网络协议tcp/ip
  • 操作系统
    linux
  • 云平台
    阿里云
  • 服务器
    linux
  • AIGC
    gpu算力
创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

213人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

virtio-net的前后端分析

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

NCCL test源码分析

Nccl test有几个测试文件,每一个测试文件会单独生成一个测试程序,并以"_perf"为后缀生成可执行的文件。每个测试源码文件会和两个公共文件common.cu和timer.cc,以及nccl、cuda、mpi这三个lib一起编译生成可执行的文件。
原创
博文更新于 2024.09.14 ·
2871 阅读 ·
28 点赞 ·
3 评论 ·
34 收藏

网卡驱动收发包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 ·
2544 阅读 ·
38 点赞 ·
0 评论 ·
26 收藏

网卡RSS功能

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

linux内核网卡checksum卸载功能

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

NVMEoF 内核initiator端实现源码分析

这个实现是在nvme-cli模块内部实现的,跟一个discovery控制器连接,获取可以连接的所有的nvme子系统的信息,可能会有多个。如下的示例中,只有一个nvme subsystem可以连接:nqn.2016-06.io.spdk:cnode1。具体命令如下:portid: 0。
原创
博文更新于 2024.06.14 ·
1365 阅读 ·
26 点赞 ·
1 评论 ·
12 收藏

DPDK内存管理分析

DPDK的内存管理框架,从底层往上依次为:大页系统。获取系统的大页信息。包括各种大页类型,及其可用大页的数目。获取大页文件系统mount的目录(可以参数指定,--huge-dir ),将要创建的大页文件的前缀(可以参数指定,--file-prefix)每个大页文件系统指定的页的大小是固定的,因此不同页大小的大页,mount的目录是不一样的。
原创
博文更新于 2024.05.20 ·
3119 阅读 ·
49 点赞 ·
0 评论 ·
39 收藏

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

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

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.28 ·
548 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏