* [Make-wifi-fast] How to figure out Linux wifi queue and ath10k queue scheduling? @ 2017-11-22 11:58 Louie Lu 2017-11-22 14:25 ` Toke Høiland-Jørgensen 0 siblings, 1 reply; 4+ messages in thread From: Louie Lu @ 2017-11-22 11:58 UTC (permalink / raw) To: Make-wifi-fast Hi all, I'm a graduate student in NCTU, Taiwan. I'm working on making VoWIFI performance more better on ath10k driver, my first thought is that I can modify queue scheduling algorithm inside ath10k. After tracking the commit log, it seems currently ath10k is using mac80211 as an intermidieate queue[1][2], and as [2] indicate, ath10k is not able to do airtime fairness now. After reading the source code and [2], what I think about the queue in Linux to ath10k is: 1. Mac layer queue (mac80211) 2. ath10k 802.11e priority queues (4 queues, with different 802.11e ToS level) 3. ath10k firmware (HW) queue Am I right on this? Also, I saw the make-wifi-fast google docs[3], it has a plan for obsolete VO queue, is that still in the roadmap, or it is implemented, if not, where can I help for it? Thanks, Louie. [1]: https://www.linuxplumbersconf.org/2016/ocw/system/presentations/3963/original/linuxplumbers_wifi_latency-3Nov.pdf [2]: https://arxiv.org/abs/1703.00064 [3]: https://docs.google.com/document/d/1Se36svYE1Uzpppe1HWnEyat_sAGghB3kE285LElJBW4/edit# ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Make-wifi-fast] How to figure out Linux wifi queue and ath10k queue scheduling? 2017-11-22 11:58 [Make-wifi-fast] How to figure out Linux wifi queue and ath10k queue scheduling? Louie Lu @ 2017-11-22 14:25 ` Toke Høiland-Jørgensen 2017-11-22 15:35 ` Louie Lu 0 siblings, 1 reply; 4+ messages in thread From: Toke Høiland-Jørgensen @ 2017-11-22 14:25 UTC (permalink / raw) To: Louie Lu, Make-wifi-fast Hi Louie > I'm working on making VoWIFI performance more better on ath10k driver, > my first thought is that I can modify queue scheduling algorithm > inside ath10k. Sounds awesome! What kind of VoIP traffic are you working with, and what aspect of performance are you looking to improve? :) > After tracking the commit log, it seems currently ath10k is using > mac80211 as an intermidieate queue[1][2], and as [2] indicate, ath10k > is not able to do airtime fairness now. Yup, that's about right. We're working on the airtime fairness part, though; see my recent presentation at Netdev a few weeks ago for an updated status on previous and ongoing work [1]. > After reading the source code and [2], what I think about the queue in > Linux to ath10k is: > > 1. Mac layer queue (mac80211) > 2. ath10k 802.11e priority queues (4 queues, with different 802.11e ToS level) > 3. ath10k firmware (HW) queue > > Am I right on this? More or less (I don't know enough about how ath10k works internally to tell you exactly how the internal queueing in the driver works). Ideally, the lower-level queues (2 and 3) should be as empty as possible, but no one ever got around to working on improving that. There was an aborted attempt to apply the dynamic queue limit code[2] to ath10k a while ago, but it was never completed. The WiP commit is here: [3]. > Also, I saw the make-wifi-fast google docs[3], it has a plan for > obsolete VO queue, is that still in the roadmap, or it is implemented, > if not, where can I help for it? The work on the different QoS levels has mostly been on the idea stage so far. My presentation[1] has some ideas related to this as well, but nothing has been implemented thus far. What's on the roadmap depends mostly on what people go ahead and implement ;) -Toke [1] https://www.netdevconf.org/2.2/session.html?jorgensen-wifistack-talk [2] https://lwn.net/Articles/454390/ [3] https://github.com/kazikcz/linux/commit/1486ffbafdb4dd433203c35c694b7443fa769210 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Make-wifi-fast] How to figure out Linux wifi queue and ath10k queue scheduling? 2017-11-22 14:25 ` Toke Høiland-Jørgensen @ 2017-11-22 15:35 ` Louie Lu 2017-11-22 16:10 ` Toke Høiland-Jørgensen 0 siblings, 1 reply; 4+ messages in thread From: Louie Lu @ 2017-11-22 15:35 UTC (permalink / raw) To: Toke Høiland-Jørgensen; +Cc: Make-wifi-fast 2017-11-22 22:25 GMT+08:00 Toke Høiland-Jørgensen <toke@toke.dk>: > Hi Louie > >> I'm working on making VoWIFI performance more better on ath10k driver, >> my first thought is that I can modify queue scheduling algorithm >> inside ath10k. > > Sounds awesome! What kind of VoIP traffic are you working with, and what > aspect of performance are you looking to improve? :) We are working on 802.11ac with telecom operator's VoWIFI (through ePDG), but much more focus on the phone to AP jitter, latency and TXOP when AP has multiple stations (10+) traffic. >> After tracking the commit log, it seems currently ath10k is using >> mac80211 as an intermidieate queue[1][2], and as [2] indicate, ath10k >> is not able to do airtime fairness now. > > Yup, that's about right. We're working on the airtime fairness part, > though; see my recent presentation at Netdev a few weeks ago for an > updated status on previous and ongoing work [1]. Thanks for the update, I'll take a look at this. Also, is "airetime fairness" a concept as fair TXOP to each station? I'm not sure if I get this right. >> After reading the source code and [2], what I think about the queue in >> Linux to ath10k is: >> >> 1. Mac layer queue (mac80211) >> 2. ath10k 802.11e priority queues (4 queues, with different 802.11e ToS level) >> 3. ath10k firmware (HW) queue >> >> Am I right on this? > > More or less (I don't know enough about how ath10k works internally to > tell you exactly how the internal queueing in the driver works). > Ideally, the lower-level queues (2 and 3) should be as empty as > possible, but no one ever got around to working on improving that. There > was an aborted attempt to apply the dynamic queue limit code[2] to > ath10k a while ago, but it was never completed. The WiP commit is here: > [3]. Thanks for the information, I'll take a look at it. >> Also, I saw the make-wifi-fast google docs[3], it has a plan for >> obsolete VO queue, is that still in the roadmap, or it is implemented, >> if not, where can I help for it? > > The work on the different QoS levels has mostly been on the idea stage > so far. My presentation[1] has some ideas related to this as well, but > nothing has been implemented thus far. What's on the roadmap depends > mostly on what people go ahead and implement ;) Got it, but are there any udpate about the make-wifi-fast google docs? Or this is the latest version of it. Beside patchwork, is there an issue tracker or just mailing list to get the latest information? Thanks, Louie. > -Toke > > [1] https://www.netdevconf.org/2.2/session.html?jorgensen-wifistack-talk > [2] https://lwn.net/Articles/454390/ > [3] https://github.com/kazikcz/linux/commit/1486ffbafdb4dd433203c35c694b7443fa769210 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Make-wifi-fast] How to figure out Linux wifi queue and ath10k queue scheduling? 2017-11-22 15:35 ` Louie Lu @ 2017-11-22 16:10 ` Toke Høiland-Jørgensen 0 siblings, 0 replies; 4+ messages in thread From: Toke Høiland-Jørgensen @ 2017-11-22 16:10 UTC (permalink / raw) To: Louie Lu; +Cc: Make-wifi-fast Louie Lu <nctu@louie.lu> writes: > 2017-11-22 22:25 GMT+08:00 Toke Høiland-Jørgensen <toke@toke.dk>: >> Hi Louie >> >>> I'm working on making VoWIFI performance more better on ath10k driver, >>> my first thought is that I can modify queue scheduling algorithm >>> inside ath10k. >> >> Sounds awesome! What kind of VoIP traffic are you working with, and what >> aspect of performance are you looking to improve? :) > > We are working on 802.11ac with telecom operator's VoWIFI (through > ePDG), Ah, right, so this is the same technology as VoLTE, but offloaded to WiFi? Is that a weird proprietary protocol, or is it similar to standard ones like RTP? > but much more focus on the phone to AP jitter, latency and TXOP when > AP has multiple stations (10+) traffic. Right. Well, with the 802.11 MAC there's only so much you can do about that (since there's no central controller); especially jitter is probably hard to kill entirely. What bounds on latency and jitter are you targeting? >>> After tracking the commit log, it seems currently ath10k is using >>> mac80211 as an intermidieate queue[1][2], and as [2] indicate, ath10k >>> is not able to do airtime fairness now. >> >> Yup, that's about right. We're working on the airtime fairness part, >> though; see my recent presentation at Netdev a few weeks ago for an >> updated status on previous and ongoing work [1]. > > Thanks for the update, I'll take a look at this. Also, is "airetime > fairness" a concept as fair TXOP to each station? I'm not sure if I > get this right. By "airtime fairness" we simply mean a network state where each station gets the same total amount of transmission time (as opposed to the default 802.11 behaviour which gives "throughput fairness", where slow stations take up more airtime than fast stations, slowing the whole network down). This is explained in detail in section 2.2 of the paper you already found on arxiv (the final version is published in USENIX ATC[1]; I don't recall if that is one of the sections we updated). This general behaviour of the 802.11 MAC was first described way back in 2001 and is referred to as the "performance anomaly"[2]. Since there's no central scheduling in 802.11, the way we implement airtime fairness is basically by throttling stations that take up too much airtime. This is fairly straight forward to do in the AP->station direction, since the AP controls transmissions. In the other direction there is no direct control, but by counting the receive airtime towards that station and then throttling its traffic from the AP. This works because most traffic is TCP. Currently, throttling takes place after the fact (i.e., we don't adjust the length of the transmissions). The idea of making TXOPs smaller as the number of stations goes up has been discussed on this list before (and is mentioned on slide 15 of the talk I linked to before), but we haven't gotten around to implementing it yet. And since ath10k does aggregation and rate control in firmware, I'm not sure if it's possible to do at the driver level there... >> The work on the different QoS levels has mostly been on the idea stage >> so far. My presentation[1] has some ideas related to this as well, but >> nothing has been implemented thus far. What's on the roadmap depends >> mostly on what people go ahead and implement ;) > > Got it, but are there any udpate about the make-wifi-fast google docs? > Or this is the latest version of it. Beside patchwork, is there an > issue tracker or just mailing list to get the latest information? Not really, no. You've already found the mailing list; most things take place here (and on linux-wireless, but I at least try to CC both lists in the stuff I post). Looking through the mailing list archive can be a source of ideas, or just posting and soliciting feedback :) -Toke [1] https://www.usenix.org/conference/atc17/technical-sessions/presentation/hoilan-jorgesen [2] http://ieeexplore.ieee.org/abstract/document/1208921/?reload=true ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-11-22 16:11 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-11-22 11:58 [Make-wifi-fast] How to figure out Linux wifi queue and ath10k queue scheduling? Louie Lu 2017-11-22 14:25 ` Toke Høiland-Jørgensen 2017-11-22 15:35 ` Louie Lu 2017-11-22 16:10 ` Toke Høiland-Jørgensen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox