mirror of
https://github.com/ipxe/ipxe
synced 2025-12-25 00:17:57 +03:00
[iobuf] Relax alignment requirement for small I/O buffers
iPXE currently aligns all I/O buffers on a 2kB boundary. This is overkill for transmitted packets, which are typically much smaller than 2kB. Align I/O buffers on their own size. This reduces the alignment requirement for small buffers, while preserving the guarantee that I/O buffers will never cross boundaries that might cause problems for some DMA engines. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -13,17 +13,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
#include <assert.h>
|
||||
#include <ipxe/list.h>
|
||||
|
||||
/**
|
||||
* I/O buffer alignment
|
||||
*
|
||||
* I/O buffers allocated via alloc_iob() are guaranteed to be
|
||||
* physically aligned to this boundary. Some cards cannot DMA across
|
||||
* a 4kB boundary. With a standard Ethernet MTU, aligning to a 2kB
|
||||
* boundary is sufficient to guarantee no 4kB boundary crossings. For
|
||||
* a jumbo Ethernet MTU, a packet may be larger than 4kB anyway.
|
||||
*/
|
||||
#define IOB_ALIGN 2048
|
||||
|
||||
/**
|
||||
* Minimum I/O buffer length
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user