Kan Yan writes:
> Patchset v6 works for me with ath10k driver. AQL does its job as
> expected and tests show very significant reduction in latency in
> congested environment. The txq stuck issue in patchset v4 got fixed.
Awesome! Thank you for testing!
> However, the device's total pending
Kan Yan writes:
>> > Given the fact that AQL is only tested in very limited platforms,
>> > should we set the default to disabled by removing this change in the
>> > next update?
>> >
>> > - local->airtime_flags = AIRTIME_USE_TX | AIRTIME_USE_RX;
>> > +
>> > + local->airtime_flags =
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
be usable in mac80211
From: Toke Høiland-Jørgensen
The previous commit added the ability to throttle stations when they queue
too much airtime in the hardware. This commit enables the functionality by
calculating the expected airtime usage of each packet that is dequeued from
the TXQs in mac80211, and accounting
From: Toke Høiland-Jørgensen
In ieee80211_tx_status() we don't have an sdata struct when looking up the
destination sta. Instead, we just do a lookup by the vif addr that is the
source of the packet being completed. Factor this out into a new sta_info
getter helper, since we need to use
commit msg ]
Signed-off-by: Toke Høiland-Jørgensen
---
include/net/cfg80211.h |7
include/net/mac80211.h | 12 ++
net/mac80211/debugfs.c | 85
net/mac80211/debugfs_sta.c | 43 +-
net/mac80211/ieee80211_i.h |
eader size into
ieee80211_calc_expected_tx_airtime()
v2:
- Integrate Kan's approach to airtime throttling.
- Hopefully fix the cb struct alignment on big-endian architectures.
---
Kan Yan (1):
mac80211: Implement Airtime-based Queue Limit (AQL)
Toke Høiland-Jørgensen (3):
mac80211: Add new sta_i
Kan Yan writes:
>> +static inline u16
>> +ieee80211_info_set_tx_time_est(struct ieee80211_tx_info *info, u16
>> tx_time_est)
>> +{
>> + /* We only have 10 bits in tx_time_est, so store airtime
>> +* in increments of 4us and clamp the maximum to 2**12-1
>> +*/
>> +
From: Toke Høiland-Jørgensen
In ieee80211_tx_status() we don't have an sdata struct when looking up the
destination sta. Instead, we just do a lookup by the vif addr that is the
source of the packet being completed. Factor this out into a new sta_info
getter helper, since we need to use
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
be usable in mac80211
AQL)
Toke Høiland-Jørgensen (3):
mac80211: Add new sta_info getter by sta/vif addrs
mac80211: Import airtime calculation code from mt76
mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue
include/net/cfg80211.h |7 +
include/net/mac80211.h | 57
Johannes Berg writes:
> On Wed, 2019-10-23 at 11:59 +0200, Toke Høiland-Jørgensen wrote:
>>
>> +if (info->tx_time_est) {
>> +struct sta_info *sta = NULL, *s;
>> +struct rhlist_head *tmp;
>> +
>> +rcu_read_lock
Johannes Berg writes:
> On Wed, 2019-10-23 at 11:59 +0200, Toke Høiland-Jørgensen wrote:
>>
>>
>> +void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
>> + struct sta_info *sta, u8 ac,
>> +
Johannes Berg writes:
> On Wed, 2019-10-23 at 11:59 +0200, Toke Høiland-Jørgensen wrote:
>> From: Toke Høiland-Jørgensen
>>
>> Felix recently added code to calculate airtime of packets to the mt76
>> driver. Import this into mac80211 so we can use it for airtime
Johannes Berg writes:
> On Fri, 2019-11-08 at 11:56 +0100, Toke Høiland-Jørgensen wrote:
>> Johannes Berg writes:
>>
>> > On Wed, 2019-10-23 at 11:59 +0200, Toke Høiland-Jørgensen wrote:
>> > >
>> > > +void ieee80211_sta_upda
Justin Capella writes:
> Would it make sense to consider skb->priority / QoS in the Access
> Classifier selection?
Erm, what? Not sure I understand what you're asking here...
-Toke
___
ath10k mailing list
ath10k@lists.infradead.org
Johannes Berg writes:
> I'm going to assume that Toke will review all of this and there will be
> changes, so you'd resend anyway ...
Yeah, this series doesn't even apply in its current form. I'll try to
fix that, and do a few other updates that are needed while I'm at it.
And to answer your
From: Toke Høiland-Jørgensen
To implement airtime queue limiting, we need to keep a running account of
the estimated airtime of all skbs queued into the device. Do to this
correctly, we need to store the airtime estimate into the skb so we can
decrease the outstanding balance when the skb
.
---
Kan Yan (1):
mac80211: Implement Airtime-based Queue Limit (AQL)
Toke Høiland-Jørgensen (3):
mac80211: Shrink the size of ack_frame_id to make room for tx_time_est
mac80211: Import airtime calculation code from mt76
mac80211: Use Airtime-based Queue Limits (AQL
commit msg ]
Signed-off-by: Toke Høiland-Jørgensen
---
include/net/cfg80211.h |7
include/net/mac80211.h | 12 +++
net/mac80211/debugfs.c | 78
net/mac80211/debugfs_sta.c | 43 +++-
net/mac80211/ieee80211_
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations later.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
use mac80211 data
From: Toke Høiland-Jørgensen
The previous commit added the ability to throttle stations when they queue
too much airtime in the hardware. This commit enables the functionality by
calculating the expected airtime usage of each packet that is dequeued from
the TXQs in mac80211, and accounting
Kan Yan writes:
>> + if (local->airtime_flags & AIRTIME_USE_AQL) {
>> + airtime = ieee80211_calc_expected_tx_airtime(hw, vif,
>> txq->sta,
>> +skb->len);
>> + if (airtime) {
>> +
Johannes Berg writes:
> On Fri, 2019-10-18 at 16:01 +0200, Toke Høiland-Jørgensen wrote:
>
>> Right. Well in that case, let's try it. As long as we fail in a
>> reasonable way, we can just see if we run into anything that breaks? I
>> guess in this case that means
Johannes Berg writes:
> On Fri, 2019-10-18 at 15:31 +0200, Toke Høiland-Jørgensen wrote:
>
>> Well, let's try to do the actual math... A full-size (1538 bytes) packet
>> takes ~2050 microseconds to transmit at 6 Mbps. Adding in overhead, it's
>> certainly still less
Kan Yan writes:
> The "tx_time_est" field, shared by control and status, is not able to
> survive until the skb returns to the mac80211 layer in some
> architectures. The same space is defined as driver_data and some
> wireless drivers use it for other purposes, as the cb in the sk_buff
> is
Johannes Berg writes:
> On Fri, 2019-10-18 at 12:15 +0200, Toke Høiland-Jørgensen wrote:
>
>> However, there's a nice juicy 'u16 ack_frame_id' at the start of
>> ieee80211_tx_info. Could we potentially use that? We could use the top
>> bit as a disambiguation flag; I
Kalle Valo writes:
> (please don't top post)
>
> Kan Yan writes:
>
>> I believe Toke will integrate this with his version and move the
>> estimating pending airtime part to mac80211, so maybe in the next
>> version, ath10k change is no longer required.
>
> What do you mean? Are you saying that
to the
lower layer to form 1-2 large aggregations to keep hardware fully utilized
and keep the rest of frames in mac80211 layer to be controlled by the CoDel
algorithm.
Signed-off-by: Kan Yan
[ Toke: Get rid of the driver API to set pending airtime ]
Signed-off-by: Toke Høiland-Jørgensen
---
include
From: Toke Høiland-Jørgensen
To implement airtime queue limiting, we need to keep a running account of
the estimated airtime of all skbs queued into the device. Do to this
correctly, we need to store the airtime estimate into the skb so we can
decrease the outstanding balance when the skb
/git/toke/linux.git/log/?h=mac80211-aql-02
Changelog:
v2:
- Integrate Kan's approach to airtime throttling.
- Hopefully fix the cb struct alignment on big-endian architectures.
---
Kan Yan (1):
mac80211: Implement Airtime-based Queue Limit (AQL)
Toke Høiland-Jørgensen (3):
mac80211
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations later.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
use mac80211 data
From: Toke Høiland-Jørgensen
The previous commit added the ability to throttle stations when they queue
too much airtime in the hardware. This commit enables the functionality by
calculating the expected airtime usage of each packet that is dequeued from
the TXQs in mac80211, and accounting
Kan Yan writes:
>> + if (ieee80211_is_data_qos(hdr->frame_control)) {
>> + qc = ieee80211_get_qos_ctl(hdr);
>> + tid = qc[0] & 0xf;
>> + ac = ieee80211_ac_from_tid(tid);
>> + } else {
>> +
commit msg ]
Signed-off-by: Toke Høiland-Jørgensen
---
include/net/cfg80211.h |7
include/net/mac80211.h | 12 +++
net/mac80211/debugfs.c | 78
net/mac80211/debugfs_sta.c | 43 +++-
net/mac80211/ieee80211_
From: Toke Høiland-Jørgensen
The previous commit added the ability to throttle stations when they queue
too much airtime in the hardware. This commit enables the functionality by
calculating the expected airtime usage of each packet that is dequeued from
the TXQs in mac80211, and accounting
From: Toke Høiland-Jørgensen
To implement airtime queue limiting, we need to keep a running account of
the estimated airtime of all skbs queued into the device. Do to this
correctly, we need to store the airtime estimate into the skb so we can
decrease the outstanding balance when the skb
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations later.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
use mac80211 data
):
mac80211: Implement Airtime-based Queue Limit (AQL)
Toke Høiland-Jørgensen (3):
mac80211: Shrink the size of ack_frame_id to make room for tx_time_est
mac80211: Import airtime calculation code from mt76
mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue
Kan Yan writes:
>> + if (ieee80211_is_data_qos(hdr->frame_control)) {
>> + qc = ieee80211_get_qos_ctl(hdr);
>> + tid = qc[0] & 0xf;
>> + ac = ieee80211_ac_from_tid(tid);
>> + } else {
>> +
Toke Høiland-Jørgensen writes:
> Kan Yan writes:
>
>>> >> + if (ieee80211_is_data_qos(hdr->frame_control)) {
>>> >> + qc = ieee80211_get_qos_ctl(hdr);
>>> >> + tid = qc[0] & 0xf;
into
ieee80211_calc_expected_tx_airtime()
v2:
- Integrate Kan's approach to airtime throttling.
- Hopefully fix the cb struct alignment on big-endian architectures.
---
Kan Yan (1):
mac80211: Implement Airtime-based Queue Limit (AQL)
Toke Høiland-Jørgensen (3):
mac80211: Shrink the size of ack_frame_id to make
From: Toke Høiland-Jørgensen
To implement airtime queue limiting, we need to keep a running account of
the estimated airtime of all skbs queued into the device. Do to this
correctly, we need to store the airtime estimate into the skb so we can
decrease the outstanding balance when the skb
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations later.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
use mac80211 data
commit msg ]
Signed-off-by: Toke Høiland-Jørgensen
---
include/net/cfg80211.h |7
include/net/mac80211.h | 12 +++
net/mac80211/debugfs.c | 78
net/mac80211/debugfs_sta.c | 43 +++-
net/mac80211/ieee80211_
From: Toke Høiland-Jørgensen
The previous commit added the ability to throttle stations when they queue
too much airtime in the hardware. This commit enables the functionality by
calculating the expected airtime usage of each packet that is dequeued from
the TXQs in mac80211, and accounting
Kan Yan writes:
>>
>> Aha! Turns out I was doing the sta lookup completely wrong in
>> ieee80211_report_used_skb(); so anything frames that were dropped and
>> went through there would not get its airtime subtracted correctly. Will
>> send a v6 with a fix :)
>
> Awesome, thanks! That looks very
Johannes Berg writes:
> On Fri, 2019-10-18 at 16:01 +0200, Toke Høiland-Jørgensen wrote:
>>
>> > We can also play with the units of the airtime, e.g. making that a
>> > multiple of 2 or 4 us? Seems unlikely to matter much?
>>
>> Sure, that's a good point!
to the
lower layer to form 1-2 large aggregations to keep hardware fully utilized
and keep the rest of frames in mac80211 layer to be controlled by the CoDel
algorithm.
Signed-off-by: Kan Yan
[ Toke: Get rid of the driver API to set pending airtime ]
Signed-off-by: Toke Høiland-Jørgensen
---
include
From: Toke Høiland-Jørgensen
Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations later.
The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
use mac80211 data
From: Toke Høiland-Jørgensen
To implement airtime queue limiting, we need to keep a running account of
the estimated airtime of all skbs queued into the device. Do to this
correctly, we need to store the airtime estimate into the skb so we can
decrease the outstanding balance when the skb
to airtime throttling.
- Hopefully fix the cb struct alignment on big-endian architectures.
---
Kan Yan (1):
mac80211: Implement Airtime-based Queue Limit (AQL)
Toke Høiland-Jørgensen (3):
mac80211: Shrink the size of ack_frame_id to make room for tx_time_est
mac80211: Import
From: Toke Høiland-Jørgensen
The previous commit added the ability to throttle stations when they queue
too much airtime in the hardware. This commit enables the functionality by
calculating the expected airtime usage of each packet that is dequeued from
the TXQs in mac80211, and accounting
Kan Yan writes:
> Hi Toke,
>
> Thanks for getting this done! I will give it a try in the next few
> days. A few comments:
>
>> The estimated airtime for each skb is stored in the tx_info, so we can
>> subtract the same amount from the running total when the skb is freed or
>> recycled.
>
>
Sebastian Moeller writes:
>> On Oct 17, 2019, at 11:44, Toke Høiland-Jørgensen wrote:
>>
>> Kan Yan writes:
>>
>>> Hi Toke,
>>>
>>> Thanks for getting this done! I will give it a try in the next few
>>> days. A few comm
Kan Yan writes:
>> >> + if (ieee80211_is_data_qos(hdr->frame_control)) {
>> >> + qc = ieee80211_get_qos_ctl(hdr);
>> >> + tid = qc[0] & 0xf;
>> >> + ac = ieee80211_ac_from_tid(tid);
>> >> + } else {
>>
Yibo Zhao writes:
> In a loop txqs dequeue scenario, if the first txq in the rbtree gets
> removed from rbtree immediately in the ieee80211_return_txq(), the
> loop will break soon in the ieee80211_next_txq() due to schedule_pos
> not leading to the second txq in the rbtree. Thus, defering the
>
Yibo Zhao writes:
> Not long after the start of multi-clients test, not a single station is
> an eligible candidate for transmission since global virtual time(g_vt) is
> smaller than the virtual airtime(s_vt) of all the stations. As a result,
> the Tx has been blocked and throughput is quite
Yibo Zhao writes:
> On 2019-09-21 22:00, Toke Høiland-Jørgensen wrote:
>> Yibo Zhao writes:
>>
>>> On 2019-09-21 21:02, Toke Høiland-Jørgensen wrote:
>>>> Yibo Zhao writes:
>>>>
>>>>> On 2019-09-21 19:27, Toke Høiland-Jørgensen
Johannes Berg writes:
> Hi,
>
> A couple of points...
>
> First, I'd like Toke to review & ack this if possible :-)
Sure, I'll look at it. I'm away the rest of this week, but should
hopefully get some more time next week. It may be that it will take the
form of another submission that
Johannes Berg writes:
> On Wed, 2019-12-18 at 18:12 +0800, yi...@codeaurora.org wrote:
>>
>> Yes, this is a fix to the first patch. Actually, the rest of two patches
>> are also serve the same. So, are you suggesting to merge them to the
>> first patch?
>
> Yes.
>
>> Previouly, I had added
Justin Capella writes:
> Is there a risk of division by zero?
No, weights are always positive.
> I'm curious about IEEE80211_AIRTIME_QUANTUM in this multiple sta
> scenario, should weight maybe be the depth of the queue or something
> like that? Using real time delta I assume is not
Pali Rohár writes:
> On Monday 10 August 2020 11:01:26 Pali Rohár wrote:
>> Hello!
>>
>> ESET engineers on their blog published some information about new
>> security vulnerability CVE-2020-3702 in ath9k wifi cards:
>>
Sven Eckelmann writes:
> Hi,
>
> I was asked what parts are currently missing for (a better) airtime fairness
> with ath10k. I know that the AQL were merged and enabled for ath10k (and
> mt76). But there was also the virtual time-based airtime scheduler [1] which
> was proposed. I think the
Sven Eckelmann writes:
> Hi,
>
> thanks for the reply. I will forward the information.
>
> On Tuesday, 1 December 2020 11:56:57 CET Toke Høiland-Jørgensen wrote:
>> I did recently rebase that patch to the current mac80211-next, actually.
>> Sent it off to Felix for s
change it is
> possible to trigger PCI_EXP_LNKCTL_RL bit without causing issues on
> problematic Atheros QCA98xx cards.
>
> Currently only PCIe ASPM kernel code triggers this PCI_EXP_LNKCTL_RL bit,
> so quirk check is added only into pcie/aspm.c file.
>
> Signed-off-by: Pali Rohár
&g
Linus Lüssing writes:
> On 19/07/2022 17:03, Adrian Chadd wrote:
>> Hi!
>>
>> It's not a hardware bug. Dating back to the original AR5416 11n chip,
>> most flags aren't valid for subframes in an aggregate. Only the final
>> frame has valid flags. This was explicitly covered internally way back
101 - 167 of 167 matches
Mail list logo