213d74cfef
receive system: - on the receive side, attach the mapped buffer as external storage instead of copying it. As a mapped buffer may not live much longer, we have to deal with the fact that one page of buffer may containt several packets, and it's not possible to map them several times. Use a hashed list to keep track of mapped pages, and use reference counters. - on the transmit side, when MCLBYTES == PAGE_SIZE, give away the mbuf cluster page when possible instead of copying it. Keep a pool of physical pages to map in place of the page we give away. When copying, use a pool_cache(9) to manage copy buffers (use mclpool_cache when MCLBYTES == PAGE_SIZE, otherwise use a private pool/pool_cache) instead of a local list. This should reduce the number of hypercalls and MMU operations in the copy case as well. |
||
---|---|---|
.. | ||
compile | ||
conf | ||
i386 | ||
include | ||
x86 | ||
xen | ||
Makefile |