Re: ixgbe truesize underestimation fix missing?

From: Christian Brunner
Date: Mon Feb 13 2012 - 04:57:46 EST


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() ?

Thanks,
Christian
--
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/