aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2025-03-12 13:18:37 +1100
committerStefano Brivio <sbrivio@redhat.com>2025-03-12 23:08:33 +0100
commitb6945e055376be944867479dcd8deb77e47b1fa4 (patch)
treec8069d011aac5e034415c60545a8d8fcbbeb1673
parentc4bfa3339cea586172d4b0fcd613b5638498651e (diff)
downloadpasst-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.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/passt.h b/passt.h
index 6b24805..8f45091 100644
--- a/passt.h
+++ b/passt.h
@@ -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))