Date: Wed, 12 Sep 2012 10:43:50 -0700 From: Adrian Chadd <adrian@freebsd.org> To: freebsd-wireless@freebsd.org Subject: [CFT] ath_rate_sample fixes for 11n Message-ID: <CAJ-VmokCNZcFvbL4KkWsn8YZr4TEFpzop1zpaPrCcoyTt6p5vA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--047d7b15ae55d38b6104c984bbc0 Content-Type: text/plain; charset=ISO-8859-1 Hi all, Now that I have a live, convenient way of visualising the rate control data, I decided to do a bit of digging into why HT rate recovery is so slow. Here's what I've found: * the default EWMA smoothing rate (95) is resistant to change - both temporary hiccups in the environment AND sudden improvements in the environment; * the sampling was occuring across the whole set of MCS rates - and there's potentially a LOT of them!; * i was avoiding sampling rates that were failing (but not enough to fail the WHOLE aggregate frame) - which unfortunately meant that it would take up to 10 seconds to start considering sampling those rates and I'd only ever sample them once every 10 seconds. The last one is the kicker. I inserted some logic to delay sampling HT rates whose average TX time were 10% higher than the current best HT rate. Unfortunately this meant I only sampled it once every 10 seconds and would do that until the average TX time dropped to with 10% of the best rate. This could take a looong time. So, with this patch, HT rate control seems to behave slightly more usefully in changing environments. It may not "stay" on a high rate in the face of temporary interference but it's likely "good enough" for most situations. It definitely fixes the HT rate _recovery_ issues that I see. Now if you really _DO_ want the rate control code to stick with a higher rate in the face of some errors and get that little bit more TCP/UDP throughput, please help me test this and then I'll give you some little tasks to research and code up. Barring any real significant performance drops in my testing over the next couple days or any weird reports from you users, I plan on committing this rate control change by the weekend. Thanks, Adrian --047d7b15ae55d38b6104c984bbc0 Content-Type: application/octet-stream; name="20120912-sample-ht-fixes.diff" Content-Disposition: attachment; filename="20120912-sample-ht-fixes.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h70q0k6i0 SW5kZXg6IGRldi9hdGgvYXRoX3JhdGUvc2FtcGxlL3NhbXBsZS5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRl di9hdGgvYXRoX3JhdGUvc2FtcGxlL3NhbXBsZS5jCShyZXZpc2lvbiAyNDAzMzMpCisrKyBkZXYv YXRoL2F0aF9yYXRlL3NhbXBsZS9zYW1wbGUuYwkod29ya2luZyBjb3B5KQpAQCAtMjkzLDI3ICsy OTMsMTcgQEAKIAkJfQogCiAJCS8qCi0JCSAqIFdoZW4gZG9pbmcgYWdncmVnYXRpb24sIHN1Y2Nl c3NpdmUgZmFpbHVyZXMgZG9uJ3QgaGFwcGVuCi0JCSAqIGFzIG9mdGVuLCBhcyBzb21ldGltZXMg c29tZSBvZiB0aGUgc3ViLWZyYW1lcyBnZXQgdGhyb3VnaC4KLQkJICoKLQkJICogSWYgdGhlIHNh bXBsZSByaXggYXZlcmFnZSB0eCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiB0aGUKLQkJICogYXZlcmFn ZSB0eCB0aW1lIG9mIHRoZSBjdXJyZW50IHJpeCwgZG9uJ3QgaW1tZWRpYXRlbHkgdXNlCi0JCSAq IHRoZSByYXRlIGZvciBzYW1wbGluZy4KKwkJICogRm9yIEhULCBvbmx5IHNhbXBsZSBhIGZldyBy YXRlcyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUKKwkJICogY3VycmVudCByaXg7IHRoZXJlJ3MgcXVp dGUgbGlrZWx5IGEgbG90IG9mIHRoZW0uCiAJCSAqLwogCQlpZiAoYW4tPmFuX25vZGUubmlfZmxh Z3MgJiBJRUVFODAyMTFfTk9ERV9IVCkgewotCQkJaWYgKChzbi0+c3RhdHNbc2l6ZV9iaW5dW3Jp eF0uYXZlcmFnZV90eF90aW1lICogMTAgPgotCQkJICAgIHNuLT5zdGF0c1tzaXplX2Jpbl1bY3Vy cmVudF9yaXhdLmF2ZXJhZ2VfdHhfdGltZSAqIDkpICYmCi0JCQkgICAgKHRpY2tzIC0gc24tPnN0 YXRzW3NpemVfYmluXVtyaXhdLmxhc3RfdHggPCBzc2MtPnN0YWxlX2ZhaWx1cmVfdGltZW91dCkp IHsKKwkJCWlmIChyaXggPCAoY3VycmVudF9yaXggLSAzKSB8fAorCQkJICAgIHJpeCA+IChjdXJy ZW50X3JpeCArIDMpKSB7CiAJCQkJbWFzayAmPSB+KCh1aW50NjRfdCkgMTw8cml4KTsKIAkJCQln b3RvIG5leHRyYXRlOwogCQkJfQogCQl9CiAKLQkJLyoKLQkJICogWFhYIFRPRE8KLQkJICogRm9y IEhULCBsaW1pdCBzYW1wbGUgc29tZWhvdz8KLQkJICovCi0KIAkJLyogRG9uJ3Qgc2FtcGxlIG1v cmUgdGhhbiAyIHJhdGVzIGhpZ2hlciBmb3IgcmF0ZXMgPiAxMU0gZm9yIG5vbi1IVCByYXRlcyAq LwogCQlpZiAoISAoYW4tPmFuX25vZGUubmlfZmxhZ3MgJiBJRUVFODAyMTFfTk9ERV9IVCkpIHsK IAkJCWlmIChET1QxMVJBVEUocml4KSA+IDIqMTEgJiYgcml4ID4gY3VycmVudF9yaXggKyAyKSB7 CkBAIC0xNDIwLDcgKzE0MTAsNyBAQAogCWlmIChzc2MgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CiAJc3NjLT5hcmMuYXJjX3NwYWNlID0gc2l6ZW9mKHN0cnVjdCBzYW1wbGVfbm9kZSk7Ci0Jc3Nj LT5zbW9vdGhpbmdfcmF0ZSA9IDk1OwkJLyogZXdtYSBwZXJjZW50YWdlIChbMC4uOTldKSAqLwor CXNzYy0+c21vb3RoaW5nX3JhdGUgPSA3NTsJCS8qIGV3bWEgcGVyY2VudGFnZSAoWzAuLjk5XSkg Ki8KIAlzc2MtPnNtb290aGluZ19taW5wYWNrZXRzID0gMTAwIC8gKDEwMCAtIHNzYy0+c21vb3Ro aW5nX3JhdGUpOwogCXNzYy0+c2FtcGxlX3JhdGUgPSAxMDsJCQkvKiAldGltZSB0byB0cnkgZGlm ZiB0eCByYXRlcyAqLwogCXNzYy0+bWF4X3N1Y2Nlc3NpdmVfZmFpbHVyZXMgPSAzOwkvKiB0aHJl c2hvbGQgZm9yIHJhdGUgc2FtcGxpbmcqLwo= --047d7b15ae55d38b6104c984bbc0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokCNZcFvbL4KkWsn8YZr4TEFpzop1zpaPrCcoyTt6p5vA>