On Wed, 12 Jun 2024 19:37:44 +0200 Stefano Brivio <sbrivio(a)redhat.com> wrote:On Wed, 12 Jun 2024 19:16:17 +0200 Stefano Brivio <sbrivio(a)redhat.com> wrote:Ouch, sorry, bad bisect, I forgot to rebuild at every step. The actual issue seems to be in 1/8 (details as a reply to that one): $ git bisect bad fa462103eb219dfb8e6fe7bb25d1707d8a82b2a2 is the first bad commit commit fa462103eb219dfb8e6fe7bb25d1707d8a82b2a2 Author: Laurent Vivier <lvivier(a)redhat.com> Date: Wed Jun 12 17:47:27 2024 +0200 tcp: extract buffer management from tcp_send_flag() This commit isolates the internal data structure management used for storing data (e.g., tcp4_l2_flags_iov[], tcp6_l2_flags_iov[], tcp4_flags_ip[], tcp4_flags[], ...) from the tcp_send_flag() function. The extracted functionality is relocated to a new function named tcp_fill_flag_header(). tcp_fill_flag_header() is now a generic function that accepts parameters such as struct tcphdr and a data pointer. tcp_send_flag() utilizes this parameter to pass memory pointers from tcp4_l2_flags_iov[] and tcp6_l2_flags_iov[]. This separation sets the stage for utilizing tcp_fill_flag_header() to set the memory provided by the guest via vhost-user in future developments. Signed-off-by: Laurent Vivier <lvivier(a)redhat.com> Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com> tcp.c | 72 ++++++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 48 insertions(+), 24 deletions(-) -- StefanoOn Wed, 12 Jun 2024 17:47:26 +0200 Laurent Vivier <lvivier(a)redhat.com> wrote:$ git bisect good 3c6a20486425ed00ba5b631bea11135045794dc2 is the first bad commit commit 3c6a20486425ed00ba5b631bea11135045794dc2 Author: Laurent Vivier <lvivier(a)redhat.com> Date: Wed Jun 12 17:47:34 2024 +0200 tap: use in->buf_size rather than sizeof(pkt_buf) buf_size is set to sizeof(pkt_buf) by default. And it seems more correct to provide the actual size of the buffer. Later a buf_size of 0 will allow vhost-user mode to detect guest memory buffers. Signed-off-by: Laurent Vivier <lvivier(a)redhat.com> Reviewed-by: David Gibson <david(a)gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com> tap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) ...checking that patch now.Extract buffers management code from tcp.c and move it to tcp_buf.c tcp.c keeps all the generic code and will be also used by the vhost-user functions. Also compare mode to MODE_PASTA, as we will manage vhost-user mode (MODE_VU) like MODE_PASST.Something in this series breaks the pasta_podman/bats test, number 19 in that script (Single TCP port forwarding, IPv4, tap). I'm bisecting now...