On Wed, Nov 18, 2009 at 01:11:22PM -0800, Johannes Berg wrote: > On Wed, 2009-11-18 at 13:06 -0800, Luis R. Rodriguez wrote: > > > OK, but can't you still have a driver spam mac80211 with a lot of > > ieee80211_tx_status_irqsafe() calls in soft irq context with the final > > skb requiring the tx complete, in that case the queue *will* get stuffed > > and you could potentially free more if so desired. > > But it'll get stuffed one by one, and we free them as we stuff the > queue, so it can't ever loop :) Ah yes, I see... :) > > Also, if our goal is to just avoid adding the skb if it does not require > > a tx complete and our queue size is too large > > > > if (!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS) && > > num + 1 > IEEE80211_TX_STATUS_QUEUE_LIMIT) > > dev_kfree_skb_irq(skb); > > else > > skb_queue_tail(&local->skb_queue) > > No, we actually want to drop the older ones in that case. Got it.. some info added behind this logic might help. > > > However ... right now we never use _any_ unreliable at all, but I > > > suspect we will want to change that again at some point. > > > > Just curious -- what would be a use case for that? > > Any time we don't need TX status for rate control it'd be OK to drop > frames that we don't need the status for. For example the hw-rc case my > patch from yesterday introduced. Oh, haven't gotten to TX just yet, thanks this will probaby help. Luis -- 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