On Thu, Oct 14, 2010 at 6:51 AM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Wed, 2010-10-13 at 15:13 -0700, Paul Stewart wrote: >> Called from a work proc, this examines the last transmit rate change >> to see if it warrants an event transmission. > >> + list_for_each_entry(sdata, &local->interfaces, list) { >> + if (!netif_running(sdata->dev) || > > ieee80211_sdata_running > >> + if (!(ifmgd->flags & IEEE80211_STA_TX_RATE_CHANGED) || >> + bss_conf->cqm_bitrate_thold == 0) >> + continue; > > why would this work item even be running with a threshold of zero? This would be in the case where the userspace reset the threshold back to zero (no longer interested in bitrate change events) but a work task was already scheduled it's a small window and I can remove that conditional if it suits. > Again, this won't compile without the next patch. I'll fix. > However, I think all of this is really expensive. For many devices, > you'll effectively be triggering an evaluation of the bitrate for every > packet. This will work well with minstrel, since it properly uses and > advertises the "best throughput" rate, but not necessarily with other > algorithms. I could throttle-down the execution rate of this work proc to a minimum periodicity, at the expense of timely information. Is this along the lines of what you'd like done? -- Paul -- 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