diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2025-03-12 13:18:37 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2025-03-12 23:08:33 +0100 |
commit | b6945e055376be944867479dcd8deb77e47b1fa4 (patch) | |
tree | c8069d011aac5e034415c60545a8d8fcbbeb1673 | |
parent | c4bfa3339cea586172d4b0fcd613b5638498651e (diff) | |
download | passt-b6945e055376be944867479dcd8deb77e47b1fa4.tar passt-b6945e055376be944867479dcd8deb77e47b1fa4.tar.gz passt-b6945e055376be944867479dcd8deb77e47b1fa4.tar.bz2 passt-b6945e055376be944867479dcd8deb77e47b1fa4.tar.lz passt-b6945e055376be944867479dcd8deb77e47b1fa4.tar.xz passt-b6945e055376be944867479dcd8deb77e47b1fa4.tar.zst passt-b6945e055376be944867479dcd8deb77e47b1fa4.zip |
Simplify sizing of pkt_buf
We define the size of pkt_buf as large enough to hold 128 maximum size
packets. Well, approximately, since we round down to the page size. We
don't have any specific reliance on how many packets can fit in the buffer,
we just want it to be big enough to allow reasonable batching. The
current definition relies on the confusingly named ETH_MAX_MTU and adds
in sizeof(uint32_t) rather non-obviously for the pseudo-physical header
used by the qemu socket (passt mode) protocol.
Instead, just define it to be 8MiB, which is what that complex calculation
works out to.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r-- | passt.h | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -69,8 +69,8 @@ union epoll_ref { static_assert(sizeof(union epoll_ref) <= sizeof(union epoll_data), "epoll_ref must have same size as epoll_data"); -#define PKT_BUF_BYTES \ - ROUND_DOWN(((ETH_MAX_MTU + sizeof(uint32_t)) * 128), PAGE_SIZE) +/* Large enough for ~128 maximum size frames */ +#define PKT_BUF_BYTES (8UL << 20) #define TAP_MSGS \ DIV_ROUND_UP(PKT_BUF_BYTES, ETH_ZLEN - 2 * ETH_ALEN + sizeof(uint32_t)) |