[PATCH v3] mac80211: add an intermediate software queue implementation

2015-03-17 Thread Felix Fietkau
This allows drivers to request per-vif and per-sta-tid queues from which they can pull frames. This makes it easier to keep the hardware queues short, and to improve fairness between clients and vifs. The task of scheduling packet transmission is left up to the driver - queueing is controlled by

Re: [PATCH v3] mac80211: add an intermediate software queue implementation

2015-03-17 Thread Johannes Berg
On Tue, 2015-03-17 at 11:21 +0100, Felix Fietkau wrote: +/** + * DOC: mac80211 software tx queueing + * + * mac80211 provides an optional intermediate queueing implementation designed + * to allow the driver to keep hardware queues short and provide some fairness + * between different

Re: [PATCH v3] mac80211: add an intermediate software queue implementation

2015-03-17 Thread Felix Fietkau
On 2015-03-17 12:24, Johannes Berg wrote: On Tue, 2015-03-17 at 11:21 +0100, Felix Fietkau wrote: @@ -1257,6 +1284,8 @@ struct ieee80211_vif { u8 cab_queue; u8 hw_queue[IEEE80211_NUM_ACS]; +struct ieee80211_txq *txq; This is just one txq, the mcast one? Perhaps that should

Re: [PATCH v3] mac80211: add an intermediate software queue implementation

2015-03-17 Thread Johannes Berg
On Tue, 2015-03-17 at 13:04 +0100, Felix Fietkau wrote: @@ -1090,10 +1119,25 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta) [...] + drv_wake_tx_queue(local, txqi); + } + } This could be an interesting race. If you wake the queue, and then