Re: 3.3.0-rc5: OOps in dql_completed (Broadcom tg3 driver)

From: Tom Herbert
Date: Tue Mar 06 2012 - 00:14:20 EST


BQL implementation for tg3 does not handle multi queue correctly.
Will have a fix for that momentarily.

Tom

On Fri, Mar 2, 2012 at 9:23 AM, Tom Herbert <therbert@xxxxxxxxxx> wrote:
> Hi Christoph, Eric,
>
> Looks like we're hitting BUG_ON(count > dql->num_queued -
> dql->num_completed).  This is indicative of mis-accounting occurring
> between netdev_sent_queue and netdev_completed_queue.  I don't
> immediately see how this could happen here in the tg3_tso_bug path,
> this is still using the same calls to transmit and complete as other
> paths.  I suppose it's possible that skb_gso_segment is somehow
> munging skb->len in segments.
>
> I'll try to reproduce this.
>
>> In case we hit BQL limit in one of the tg3_start_xmit() calls, we should
>> 'abort' the following ones, dont you think ?
>
> I'm not sure what you mean Eric.  It should be okay to exceed the BQL
> limit up to the point that num_queued rolls over (probably should be a
> BUG_ON for that).  This is a much greater number than could ever be
> queued to tg3.
>
> Thanks,
> Tom
>
>>
>> Or maybe thats irrelevant, and only dql_queued() comment is wrong.
>>
>> Thanks
>>
>>
--
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/