On Wed, Jan 29, 2020 at 08:15:11PM -0300, Flavio Leitner wrote: > Usually TSO packets are close to 50k, 60k bytes long, so to > to copy less bytes when receiving a packet from the kernel > change the approach. Instead of extending the MTU sized > packet received and append with remaining TSO data from > the TSO buffer, allocate a TSO packet with enough headroom > to prepend the std packet data. > > Suggested-by: Ben Pfaff <b...@ovn.org> > Signed-off-by: Flavio Leitner <f...@sysclose.org>
Did you test this with TSO packets? I think I see an inconsistency. netdev_linux_rxq_recv() constructs dp_packets like this with a size of 0 (and a tailroom of data_len): > + rx->aux_bufs[i] = dp_packet_new_with_headroom(data_len, std_len); and then later on dp_packet_size() on the aux_bufs should report 0, which won't work properly: > + if (iovlen == IOV_TSO_SIZE) { > + iovs[i][IOV_AUXBUF].iov_base = dp_packet_data(rx->aux_bufs[i]); > + iovs[i][IOV_AUXBUF].iov_len = dp_packet_size(rx->aux_bufs[i]); > + } I think that the above should use dp_packet_tailroom() instead, and the inconsistency makes me nervous. Thanks, Ben. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev