summaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorMichael Brown2012-07-08 18:14:08 +0200
committerMichael Brown2012-07-08 18:54:53 +0200
commit4a8a7bd91a6911779e3972a6d00d5a25bd7c0367 (patch)
treed793f7afd35e41b7a05df35ef272ba8a6717f344 /src/net
parent[netdevice] Process all received packets in net_poll() (diff)
downloadipxe-4a8a7bd91a6911779e3972a6d00d5a25bd7c0367.tar.gz
ipxe-4a8a7bd91a6911779e3972a6d00d5a25bd7c0367.tar.xz
ipxe-4a8a7bd91a6911779e3972a6d00d5a25bd7c0367.zip
[iobuf] Allocate I/O buffer descriptor separately to conserve aligned memory
I/O buffers are allocated on aligned boundaries. The I/O buffer descriptor (the struct io_buffer) is currently attached to the end of the I/O buffer. When the size of the buffer is close to its alignment, this can waste large amounts of aligned memory. For example, a network card using 2048-byte receive buffers will end up allocating 2072 bytes on a 2048-byte boundary. This effectively wastes 50% of the available memory. Improve the situation by allocating the descriptor separately from the main I/O buffer if inline allocation would cause the total allocated size to cross the alignment boundary. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net')
0 files changed, 0 insertions, 0 deletions