Commit 3db2c560 authored by Felix Fietkau's avatar Felix Fietkau Committed by Johannes Berg

wifi: 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: default avatarFelix Fietkau <nbd@nbd.name>
Acked-by: default avatarToke Høiland-Jørgensen <toke@toke.dk>
Link: https://lore.kernel.org/r/20220625212411.36675-6-nbd@nbd.nameSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 8e4bac06
...@@ -201,6 +201,36 @@ static const struct file_operations airtime_flags_ops = { ...@@ -201,6 +201,36 @@ static const struct file_operations airtime_flags_ops = {
.llseek = default_llseek, .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, static ssize_t aql_txq_limit_read(struct file *file,
char __user *user_buf, char __user *user_buf,
size_t count, size_t count,
...@@ -631,6 +661,7 @@ void debugfs_hw_add(struct ieee80211_local *local) ...@@ -631,6 +661,7 @@ void debugfs_hw_add(struct ieee80211_local *local)
DEBUGFS_ADD(hw_conf); DEBUGFS_ADD(hw_conf);
DEBUGFS_ADD_MODE(force_tx_status, 0600); DEBUGFS_ADD_MODE(force_tx_status, 0600);
DEBUGFS_ADD_MODE(aql_enable, 0600); DEBUGFS_ADD_MODE(aql_enable, 0600);
DEBUGFS_ADD(aql_pending);
if (local->ops->wake_tx_queue) if (local->ops->wake_tx_queue)
DEBUGFS_ADD_MODE(aqm, 0600); DEBUGFS_ADD_MODE(aqm, 0600);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment