On Thu, Jul 31, 2008 at 9:23 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Thu, 2008-07-31 at 21:14 +0300, Tomas Winkler wrote: >> On Thu, Jul 31, 2008 at 4:05 PM, Johannes Berg >> <johannes@xxxxxxxxxxxxxxxx> wrote: >> > On Wed, 2008-07-30 at 19:08 +0300, Tomas Winkler wrote: >> > >> >> > Can you explain how starvation happens? In what scenarios? With or >> >> > without aggregation? >> >> >> >> for (queue = 0; queue < QD_NUM(hw); queue++) >> >> >> >> This always starts 0 prioritize dequeue the first frame. But what we >> >> need is RR and let HW to prioritize the transmission according AC >> > >> > That's from the old code not having real MQ though, right? I'm totally >> > not concerned about that. >> >> Correct. The bottom line is that correct behavior MQ would be shift >> scheduling decision to the HW. > > Right. Which brings us back to the original point, why does the hw need > to make the scheduling decision between agg and non-agg? There is no scheduling between aag and legacy queue in the sense of qdisc .The aggregation need to be taken from single stream as explained before, Iwlwifi has HW support for it that that's the whole story we just need queueing support from the software buffering stopping and starting queue and last but not least there is a classification just an extension of the regular AC scheduling. The fairness between legacy and agg queue must be provided by actually 'not scheduling' If you don't want to experiment but provide QoS by spec the scheduling is best to leave to HW. Thanks Tomas -- 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