Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Nov 2011 14:46:03 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r227340 - head/sys/dev/ath/ath_rate/sample
Message-ID:  <201111081446.pA8Ek3EP035822@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Tue Nov  8 14:46:03 2011
New Revision: 227340
URL: http://svn.freebsd.org/changeset/base/227340

Log:
  Some cosmetic fixes to ath_rate_sample.
  
  * Use 64 bit integer types for the sample rate statistics.
    When TX'ing 11n aggregates, a 32 bit counter will overflow in a few
    hours due to the high packet throughput.
  
  * Create a default label of "" rather than defaulting to "Mb" - that way
    if a rate hasn't yet been selected, it won't say "-1 Mb".
  
  Sponsored by:	Hobnob, Inc.

Modified:
  head/sys/dev/ath/ath_rate/sample/sample.c
  head/sys/dev/ath/ath_rate/sample/sample.h

Modified: head/sys/dev/ath/ath_rate/sample/sample.c
==============================================================================
--- head/sys/dev/ath/ath_rate/sample/sample.c	Tue Nov  8 14:34:01 2011	(r227339)
+++ head/sys/dev/ath/ath_rate/sample/sample.c	Tue Nov  8 14:46:03 2011	(r227340)
@@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
  */
 #include "opt_inet.h"
 #include "opt_wlan.h"
+#include "opt_ah.h"
 
 #include <sys/param.h>
 #include <sys/systm.h> 
@@ -146,6 +147,8 @@ ath_rate_node_cleanup(struct ath_softc *
 static int
 dot11rate(const HAL_RATE_TABLE *rt, int rix)
 {
+	if (rix < 0)
+		return -1;
 	return rt->info[rix].phy == IEEE80211_T_HT ?
 	    rt->info[rix].dot11Rate : (rt->info[rix].dot11Rate & IEEE80211_RATE_VAL) / 2;
 }
@@ -153,6 +156,8 @@ dot11rate(const HAL_RATE_TABLE *rt, int 
 static const char *
 dot11rate_label(const HAL_RATE_TABLE *rt, int rix)
 {
+	if (rix < 0)
+		return "";
 	return rt->info[rix].phy == IEEE80211_T_HT ? "MCS" : "Mb ";
 }
 
@@ -903,13 +908,14 @@ sample_stats(void *arg, struct ieee80211
 		for (y = 0; y < NUM_PACKET_SIZE_BINS; y++) {
 			if (sn->stats[y][rix].total_packets == 0)
 				continue;
-			printf("[%2u %s:%4u] %8d:%-8d (%3d%%) T %8d F %4d avg %5u last %u\n",
+			printf("[%2u %s:%4u] %8ju:%-8ju (%3d%%) T %8ju F %4d avg %5u last %u\n",
 			    dot11rate(rt, rix), dot11rate_label(rt, rix),
 			    bin_to_size(y),
-			    sn->stats[y][rix].total_packets,
-			    sn->stats[y][rix].packets_acked,
-			    (100*sn->stats[y][rix].packets_acked)/sn->stats[y][rix].total_packets,
-			    sn->stats[y][rix].tries,
+			    (uintmax_t) sn->stats[y][rix].total_packets,
+			    (uintmax_t) sn->stats[y][rix].packets_acked,
+			    (int) ((sn->stats[y][rix].packets_acked * 100ULL) /
+			     sn->stats[y][rix].total_packets),
+			    (uintmax_t) sn->stats[y][rix].tries,
 			    sn->stats[y][rix].successive_failures,
 			    sn->stats[y][rix].average_tx_time,
 			    ticks - sn->stats[y][rix].last_tx);

Modified: head/sys/dev/ath/ath_rate/sample/sample.h
==============================================================================
--- head/sys/dev/ath/ath_rate/sample/sample.h	Tue Nov  8 14:34:01 2011	(r227339)
+++ head/sys/dev/ath/ath_rate/sample/sample.h	Tue Nov  8 14:46:03 2011	(r227340)
@@ -57,9 +57,9 @@ struct sample_softc {
 struct rate_stats {	
 	unsigned average_tx_time;
 	int successive_failures;
-	int tries;
-	int total_packets;
-	int packets_acked;
+	uint64_t tries;
+	uint64_t total_packets;	/* pkts total since assoc */
+	uint64_t packets_acked;	/* pkts acked since assoc */
 	unsigned perfect_tx_time; /* transmit time for 0 retries */
 	int last_tx;
 };



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201111081446.pA8Ek3EP035822>