Networking 大多数现代内核是否将DMA用于带有通用以太网控制器的网络IO?

Networking 大多数现代内核是否将DMA用于带有通用以太网控制器的网络IO?,networking,io,kernel,Networking,Io,Kernel,在大多数现代操作系统(如Linux和Windows)中,网络IO通常使用DMA完成吗?这涉及通用以太网控制器;我不是问那些需要特殊驱动程序的事情(比如很多无线网卡,至少在Linux中是这样)。我想答案是“是的”,但我对任何源代码(特别是Linux内核)以及提供更多一般信息的资源都感兴趣。谢谢。我不知道真的存在通用网络接口控制器,但我所知道的最近的东西——由大量廉价控制器实现的接口规范——似乎至少有一些有限的DMA支持,更复杂的控制器可能包含更复杂的功能。我不知道真的存在通用网络接口控制器,但我所

在大多数现代操作系统(如Linux和Windows)中,网络IO通常使用DMA完成吗?这涉及通用以太网控制器;我不是问那些需要特殊驱动程序的事情(比如很多无线网卡,至少在Linux中是这样)。我想答案是“是的”,但我对任何源代码(特别是Linux内核)以及提供更多一般信息的资源都感兴趣。谢谢。

我不知道真的存在通用网络接口控制器,但我所知道的最近的东西——由大量廉价控制器实现的接口规范——似乎至少有一些有限的DMA支持,更复杂的控制器可能包含更复杂的功能。

我不知道真的存在通用网络接口控制器,但我所知道的最接近的东西是接口规范,由大量廉价控制器实现——似乎至少有一些有限的DMA支持,更复杂的控制器可能包含更复杂的功能。

问题应该有所不同:

典型的网络适配器有dma吗 船上的控制员


在找到这个问题的答案后(我猜99.9%的答案是肯定的),你应该询问每张卡的具体驱动程序。我假设任何合适的驱动程序都会充分利用硬件功能(即在我们的例子中的DMA支持),但有关操作系统的问题并不重要,因为没有操作系统可以强制驱动程序实现DMA支持。像Windows和Linux这样的高级操作系统提供了简化DMA实现的原语,但实现是驱动程序的责任

问题应该有点不同:

典型的网络适配器有dma吗 船上的控制员

在找到这个问题的答案后(我猜99.9%的答案是肯定的),你应该询问每张卡的具体驱动程序。我假设任何合适的驱动程序都会充分利用硬件功能(即在我们的例子中的DMA支持),但有关操作系统的问题并不重要,因为没有操作系统可以强制驱动程序实现DMA支持。像Windows和Linux这样的高级操作系统提供了简化DMA实现的原语,但实现是驱动程序的责任