Why can't socketing improve performance without DMA?

In Wikipedia's entry into the splice , I found:

When using splice () with sockets, the network controller (NIC) must support DMA.

When the network adapter does not support DMA, then splice () will not provide any performance improvement. The reason for this is because each page pipe will simply fill in the frame size (1460 bytes of available 4096 bytes per page).

From what I understand, splicing improves performance because:

  • less context switching
  • it minimizes the number of copies (at least two copies of DMA)

If the NIC does not support DMA copying, we use a copy of the CPU. This is still better than regular copies that should go into user space.

So, I donโ€™t understand why on Wikipedia there are no performance improvements without DMA support in NIC.

+4
source share
1 answer

Maybe Wikipedia is wrong? This article is already marked as light on quotes ...

0
source

Source: https://habr.com/ru/post/1385235/


All Articles