AQL and the ath10k is *lovely*

Yup, that's the idea. With the caveat that there is not always a direct relation between bandwidth ratios and airtime ratios (that's the whole point with having the fairness scheduler in the first place). However, if your laptops are relatively comparable and we thus tacitly assume that they are running at the same phy rate, then it does translate, and your results look promising. At least the aptch doesn't obviously break anything, which is a good start :wink:

Thanks a lot for testing! I'll submit the patch to upstream once the merge window is over, and we'll see if it can get some more testing that way round...

No worries! Glad to be of help =)

In your own testing, have you seen any scenarios where there's a substantial difference in the performance between the default DRR and virtual airtime? From what I remember virtual airtime was supposed to limit the amount of throttling of slow stations.

No, the virtual airtime scheduler is mostly a code reorganisation thing that means we don't have to rely on the round-robin scheduling to advance station's deficit. This can be a benefit for making the scheduler interact better with other things such as AQL; but the virtual airtime scheduler in itself is not supposed to change the observed behaviour at the macro level. So from that perspective "no change" is good :slight_smile:

Ok, thanks for clearing that up!

All this looks really promising... but are you also testing the target 10ms patch and the patch ripping out the adjustment to the codel target at +5 stations?

No, these test were carried out with stock AQL settings. It would probably be a good idea to run some tests with the other patches as well. The problem is that I don't have enough clients to run tests with the patch that changes the 5+ clients logic.

I'd settle for merely a before/after on the change to 10ms from 20ms as per your excellent tests above.

So the same test just this time comparing the 10 ms target with the 20 ms target while running Toke's patch on both?

yep. please. pretty please? sugar on top?

the flent.gz files also?

A last test, with ecn enabled on both sides, with a packet capture, would also be really excellent. :slight_smile: I'm weird, I use the ecn CE marks to show when the AQM is kicking in, and there is so much jitter in wifi in the first place.....

OSX no longer has a reliable means of enabling ecn, but on linux

sudo sysctl -w net.ipv4.tcp_ecn=1  

I've compiled two builds, and I'll run some tests tomorrow when I have time. Unfortunately, I won't be able to run a test with a packet capture since I don't have a third client to do the capture.

capturing on either host is fine. in one way you would see ece the other ce. No biggie, by eye the difference between 10 and 20 ought to stand out. if any.

Ok, I think I actually managed to confuse capturing airtime statistics and running a packet capture =) I can probably make that work. Do you know if the netperf-eu.bufferbloat.net server has ECN enabled? That's the one I run my tests against.

yes ecn is enabled on that server. I note that until now I'd thought you were just testing the wifi, not also your connection to the internet.

Ok, good!

I'm forced to use that server in order to run the tests since I lack a third machine to act as a server. It's not ideal, but I make sure that the network is as quiet as possible during the tests to not affect the results.

I should also be clear that ripping out the stations limitation is important also, because if you have more than 5 stations on the network, even if inactive, it bumps the target up.

The test setup was the same as in the previous test. I ran one test with a codel target of 10 ms and another with 20 ms, and both builds had Toke's virtual airtime patch applied. Since the laptops had almost identical signal strengths I gave the first an airtime weight of 768 while the other kept the default 256. This was to make sure that airtime fairness was actually working during the tests. In addition I made sure that ECN was enabled on both laptops, and that Cake was disabled so it couldn't interfere with the ECN markings.

Looking at the results there doesn't seem to be much of a difference between the two targets:

First laptop (airtime weight 768)

Second latop (airtime weight 256)

All of the flent files can be found here (airtime weight and codel target is in the name): https://www.dropbox.com/sh/xkznnbh8saqkp2e/AACLJ9qqva018Q72ZTzj9sdNa?dl=0

And the packet captures are here (airtime weight and codel target is in the name): https://www.dropbox.com/sh/y4v86z35wl8iw0x/AABecDQEeYuzvlJVnlZdA1hEa?dl=0

I only had two stations connected during the tests, but for good measure I ripped out the multistation logic in both builds and replaced it with the respective codel target as per:
www.taht.net/~d/982-do-codel-right.patch

thx for such wonderful data. I have to go think about why the results were so similar. Hard. @tohojo ?

I run my tests in conditions that have much lower throughput than the other tests in this thread (very poor signal). Could that have something to do with it?