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);
 | 
