BareMetal
BareMetal copied to clipboard
Zero-copy in the network stack
http://en.wikipedia.org/wiki/Zero-copy
This is partially implemented.
b_net_tx
forwards the memory location of the packet directly to the network driver and the hardware handles it. No time is spent by the CPU to copy anything.
b_net_rx
does one copy (from the OS packet buffer to the requested memory address) via a nasty rep movsb
so that will need to be adjusted in the network drivers.
On startup a default OS buffer location will be configured. Via a system call an application will be allowed to modify this to suit its own location.