On Tue, 2013-04-23 at 12:12 -0700, Ben Greear wrote: > It appears that ieee80211_tx_status also scales poorly > when using large numbers of virtual stations connected > to a single AP, due to for_each_sta_info(local, hdr->addr1, sta, tmp)... > > I'm going to try using the vif-hashing to make this faster, > but first a question: > > Since it matches on MAC addresses, should it > just return at the bottom of the loop since it has > found a match, and MACs are supposed to be unique? > > for_each_sta_info(local, hdr->addr1, sta, tmp) { > /* skip wrong virtual interface */ > if (!ether_addr_equal(hdr->addr2, sta->sdata->vif.addr)) > continue; > ... I think that'd be mostly safe, since we don't allow the same station to be added to multiple VLANs. However, I'm not entirely sure if it really is safe in the case of WDS interfaces. > If so, that would be a good improvement since the hash can easily > be turned into a linear search even in AP mode (without all of > my virtual-station scenarios)... I don't really see how the hash could be linear? When the low byte of MAC addresses is the same, but otherwise? johannes -- 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