Re: ixgbe truesize underestimation fix missing?

From: Eric Dumazet
Date: Mon Feb 13 2012 - 05:46:04 EST


Le lundi 13 fÃvrier 2012 Ã 10:57 +0100, Christian Brunner a Ãcrit :
> 2012/2/13 Eric Dumazet <eric.dumazet@xxxxxxxxx>:
> > Le lundi 13 fÃvrier 2012 Ã 09:45 +0100, Christian Brunner a Ãcrit :
> >> Back in Oktober, there was a patch by Eric Dumazet for the ixgbe
> >> driver to fix the skb truesize underestimation (commit
> >> 98130646770db42cd14c44ba0d7f2d0eb8078820). It changed only one line in
> >> ixgbe_main.c:
> >>
> >> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> >> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> >> @@ -1326,7 +1326,7 @@ static bool ixgbe_clean_rx_irq(struct
> >> ixgbe_q_vector *q_vector,
> >> skb->len += upper_len;
> >> skb->data_len += upper_len;
> >> - skb->truesize += upper_len;
> >> + skb->truesize += PAGE_SIZE / 2;
> >> } i++;
> >>
> >>
> >> But when I look at the current code (3.2.5 or 3.3rc), skb->truesize is
> >> still increased by the same value as skb->data_len.
> >>
> >> 1228 skb->data_len += frag_list_size;
> >> 1229 skb->truesize += frag_list_size;
> >>
> >> Is it posible that there was a merge conflict, or am I missing something here?
> >
> > Maybe a problem in your local tree ?
> >
> > I can see proper fix in current tree.
>
> Ahh... Sorry. I Was looking at the wrong place -
> ixgbe_transform_rsc_queue() has code that is quite similar.
>
> This however makes me wonder, why we are using "skb->len" for
> increasing the frag_list_size, as skb->len might be smaller than
> skb->truesize.
>
> Shouldn't we add a frag_list_truesize counter in ixgbe_transform_rsc_queue() ?

Probably, but you should raise this discussion on netdev, not lkml, and
based on net-next tree, as ixgbe_transform_rsc_queue() doesnt exist
anymore ;)

Note that in this case (RSC) truesize underestimation is small since
typical segment size is very close to PAGE_SIZE/2



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/