O NetDMA (e o Direct Cache Access?) foram removidos do Windows 8 / Server 2012. Por quê?

0

A página do MSDN em Acesso direto ao cache (DCA) ) , que faz parte do NetDMA, afirma

The NetDMA interface is not supported in Windows 8 and later.

Então eu acho que tanto o NetDMA quanto o DCA acabaram. Como ambos pareciam ter boas ideias de desempenho e eram relativamente novos, minha pergunta é:

Alguém sabe por que o MS o removeu ou por que a remoção desse recurso teria feito sentido?

    
por Eugene Beresovsky 26.05.2015 / 15:48

1 resposta

4

De acordo com a postagem no fórum o NetDMA foi removido da janela 8 e do servidor 2012/2012 R2 devido a não está realmente reduzindo o uso da CPU:

Jeffrey Tippet [MSFT]
[email protected]


> Any clue why was this feature not supported Win 8 on wards?

I removed NetDMA in Windows 8. Hopefully, I have slightly more than a clue :)

The purpose of NetDMA was to reduce CPU usage by offloading memcpy to a generic offload engine.

But in networking, we tend to handle fairly small buffers. A typical network buffer tends to not be larger than 1500 bytes. (Yes we can do LSOs of many kilobytes, but NetDMA was limited to only 2 pages of memory per transaction, so at most NetDMA should be compared to an 8kb buffer.)

Which uses less CPU:

  1. Setting up a DMA offload to the hardware & continuing when the hardware interrupts its completion
  2. memcpy 1500 bytes on the CPU

With newer CPUs, the answer tends to be #2.

Since the whole purpose of NetDMA was to reduce CPU usage, and it wasn't even providing a clear CPU reduction, that makes NetDMA a dubious benefit. Add to that it had low adoption (not many vendors implemented a NetDMA provider), and the value of keeping the feature wasn't there. Its competitor, memcpy, is simpler, better-supported, easier to debug, and is sometimes even faster.

                ⋮

    
por 28.05.2015 / 22:54