mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
6d49a25804
This reverts the airtime scheduler back from the virtual-time based scheduler to the deficit round robin scheduler implementation. This reduces burstiness and improves fairness by improving interaction with AQL. Signed-off-by: Felix Fietkau <nbd@nbd.name>
59 lines
1.7 KiB
Diff
59 lines
1.7 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Sat, 25 Jun 2022 21:25:40 +0200
|
|
Subject: [PATCH] mac80211: add debugfs file to display per-phy AQL pending
|
|
airtime
|
|
|
|
Now that the global pending airtime is more relevant for airtime fairness,
|
|
it makes sense to make it accessible via debugfs for debugging
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/net/mac80211/debugfs.c
|
|
+++ b/net/mac80211/debugfs.c
|
|
@@ -201,6 +201,36 @@ static const struct file_operations airt
|
|
.llseek = default_llseek,
|
|
};
|
|
|
|
+static ssize_t aql_pending_read(struct file *file,
|
|
+ char __user *user_buf,
|
|
+ size_t count, loff_t *ppos)
|
|
+{
|
|
+ struct ieee80211_local *local = file->private_data;
|
|
+ char buf[400];
|
|
+ int len = 0;
|
|
+
|
|
+ len = scnprintf(buf, sizeof(buf),
|
|
+ "AC AQL pending\n"
|
|
+ "VO %u us\n"
|
|
+ "VI %u us\n"
|
|
+ "BE %u us\n"
|
|
+ "BK %u us\n"
|
|
+ "total %u us\n",
|
|
+ atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_VO]),
|
|
+ atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_VI]),
|
|
+ atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_BE]),
|
|
+ atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_BK]),
|
|
+ atomic_read(&local->aql_total_pending_airtime));
|
|
+ return simple_read_from_buffer(user_buf, count, ppos,
|
|
+ buf, len);
|
|
+}
|
|
+
|
|
+static const struct file_operations aql_pending_ops = {
|
|
+ .read = aql_pending_read,
|
|
+ .open = simple_open,
|
|
+ .llseek = default_llseek,
|
|
+};
|
|
+
|
|
static ssize_t aql_txq_limit_read(struct file *file,
|
|
char __user *user_buf,
|
|
size_t count,
|
|
@@ -628,6 +658,7 @@ void debugfs_hw_add(struct ieee80211_loc
|
|
DEBUGFS_ADD(hw_conf);
|
|
DEBUGFS_ADD_MODE(force_tx_status, 0600);
|
|
DEBUGFS_ADD_MODE(aql_enable, 0600);
|
|
+ DEBUGFS_ADD(aql_pending);
|
|
|
|
if (local->ops->wake_tx_queue)
|
|
DEBUGFS_ADD_MODE(aqm, 0600);
|