gpt4 book ai didi

linux - Linux中套接字缓冲区(skb)中数据的DMA

转载 作者:太空宇宙 更新时间:2023-11-04 09:41:14 25 4
gpt4 key购买 nike

我在最新的 linux 内核中经历了数据包传输和数据包接收的过程。我可以看到,skb 中有一个框架,它支持“线性”数据和“分页”数据。

它有一个名为 skb_shared_info 的单独结构来表示页面片段。

现在我的疑问是,设备如何对数据包的全部内容进行 DMA?它不会散落在内存中吗?

谢谢 child

最佳答案

这取决于网络硬件的能力。大多数“现代”NIC 可以收集/分散 DMA 并处理将数据包传输到多个不连续的缓冲区中,但如果 NETIF_F_SG 已设置(表示设备可以处理分散/聚集)。如果设备驱动程序设置了 NETIF_F_SG,那么它会告诉堆栈它可以处理每个数据包的多个物理缓冲区。

关于linux - Linux中套接字缓冲区(skb)中数据的DMA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com