> Actually, I think that all you need to do is disable NETIF_F_SG, > and things will work, no?I think that this is not so simple, if I understand correctly, by disabling NETIF_F_SG we will never receive a chained skbs to transmit, but we still have more functionality to address, for example: * The TX timeouts. * Guest GSO/big MTU (without VIRTIO_NET_F_MRG_RXBUF?), we can't chain page size buffers anymore.> Alvaro, can you try?It won't matter at the moment, we'll get TX timeout after the first tx packet, we need to address this part as well.
On Mon, Apr 17, 2023 at 06:38:43AM +0000, Alvaro Karsz wrote:> > Actually, I think that all you need to do is disable NETIF_F_SG, > > and things will work, no? > > I think that this is not so simple, if I understand correctly, by disabling NETIF_F_SG we will never receive a chained skbs to transmit, but we still have more functionality to address, for example: > * The TX timeouts.I don't get it. With a linear skb we can transmit it as long as there's space for 2 entries in the vq: header and data. What's the source of the timeouts?> * Guest GSO/big MTU (without VIRTIO_NET_F_MRG_RXBUF?), we can't chain page size buffers anymore.I think we can. mergeable_min_buf_len will just be large.> > Alvaro, can you try? > > It won't matter at the moment, we'll get TX timeout after the first tx packet, we need to address this part as well.
On Mon, 17 Apr 2023 06:38:43 +0000, Alvaro Karsz <alvaro.karsz at solid-run.com> wrote:> > Actually, I think that all you need to do is disable NETIF_F_SG, > > and things will work, no? > > I think that this is not so simple, if I understand correctly, by disabling NETIF_F_SG we will never receive a chained skbs to transmit, but we still have more functionality to address, for example: > * The TX timeouts.Why tx timeout without frags?> * Guest GSO/big MTU (without VIRTIO_NET_F_MRG_RXBUF?), we can't chain page size buffers anymore.Or, we disable the GUEST_GSO, HOST_GSO...... Thanks.> > > Alvaro, can you try? > > It won't matter at the moment, we'll get TX timeout after the first tx packet, we need to address this part as well.