On 8.3.2009 04:09, Bob Copeland wrote:
At this point, I guess the best way forward is to have a special debug patch for when we pass an skb up the stack, when it gets allocated, and what is in the descriptors.
Yes, I have been thinking about some (ring buffer) array which would store address-desc_status pairs (even few megs in a vmalloc area) and pointer (not modulo-ed counter) to this array (index would be modulo-ed, indeed). From poison output we know the address, so we can then instruct ath5k to dump the buffer and see what happens :), what was in the status when we freed the skb.
Maybe some additional info may be needed, as you suggest.
Jiri, I really think we should implement that better check for the self linked descriptor using the rxdp register.
As I stated a while ago, definitely!
bf_last is no longer a valid marker for the self-linked descriptor at the end of the loop since we re-add the just-processed descriptor every time through the loop (or am I missing something?)...
Why? bf_last is snapshotted before the loop. And when we see this bf while processing, we stop. In the next round we check if bf->next is done. If yes, we move on.
If you want I'll cook up a patch for that too.
If you like, feel free to kick it off. Remember to remove bf->flags completely, so that we save another bunch of memory ;).
-- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html