Hi Yi,

Thanks for putting this patch-set together.

On Wed, Jul 01, 2020 at 05:15:29PM +0800, yang_y...@163.com wrote:
> From: Yi Yang <yangy...@inspur.com>
> 
> For multi-seg mbuf, pkt_len isn't equal to data_len,
> data_len is data_len of the first seg, pkt_len is
> sum of data_len of all the segs, so for such packets,
> dp_packet_set_size shouldn't change data_len.
> 
> Signed-off-by: Yi Yang <yangy...@inspur.com>
> ---
>  lib/dp-packet.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/dp-packet.h b/lib/dp-packet.h
> index 0430cca..070d111 100644
> --- a/lib/dp-packet.h
> +++ b/lib/dp-packet.h
> @@ -575,7 +575,9 @@ dp_packet_set_size(struct dp_packet *b, uint32_t v)
>       * (and thus 'v') will always be <= UINT16_MAX; this means that there is 
> no
>       * loss of accuracy in assigning 'v' to 'data_len'.
>       */
> -    b->mbuf.data_len = (uint16_t)v;  /* Current seg length. */
> +    if (b->mbuf.nb_segs <= 1) {
> +        b->mbuf.data_len = (uint16_t)v;  /* Current seg length. */
> +    }
>      b->mbuf.pkt_len = v;             /* Total length of all segments linked 
> to
>                                        * this segment. */
>  }

Currently OVS doesn't support multi-seg mbuf, so although
this patch wouldn't break anything it doesn't sound correct
as it is.  It seems incomplete/limited as well.

I think at least the patch should add a comment explaining
why and when that is needed. 

Another thing is that this change alone has no users.  Usually
we do changes along with the first user. I am still reviewing
the following patches, but I suspect this change is for GRO/GSO,
so in my opinion it makes sense to be part of one of them.
Doing so helps to backtrack the reason for a specific change.

I think we should prioritize single mbuf as they carry less
data, so OVS has less time to process them. Therefore, it
seems appropriate to use OVS_LIKELY().

-- 
fbl
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to