Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bda8adda authored by Ben Greear's avatar Ben Greear Committed by John W. Linville
Browse files

ath9k: Add counters to distinquish AMPDU enqueues.



Show counters for pkts sent directly to hardware and
those queued in software.

Signed-off-by: default avatarBen Greear <greearb@candelatech.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 082f6536
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -628,7 +628,8 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
	PR("MPDUs Queued:    ", queued);
	PR("MPDUs Queued:    ", queued);
	PR("MPDUs Completed: ", completed);
	PR("MPDUs Completed: ", completed);
	PR("Aggregates:      ", a_aggr);
	PR("Aggregates:      ", a_aggr);
	PR("AMPDUs Queued:   ", a_queued);
	PR("AMPDUs Queued HW:", a_queued_hw);
	PR("AMPDUs Queued SW:", a_queued_sw);
	PR("AMPDUs Completed:", a_completed);
	PR("AMPDUs Completed:", a_completed);
	PR("AMPDUs Retried:  ", a_retries);
	PR("AMPDUs Retried:  ", a_retries);
	PR("AMPDUs XRetried: ", a_xretries);
	PR("AMPDUs XRetried: ", a_xretries);
+4 −2
Original line number Original line Diff line number Diff line
@@ -89,7 +89,8 @@ struct ath_interrupt_stats {
 * @queued: Total MPDUs (non-aggr) queued
 * @queued: Total MPDUs (non-aggr) queued
 * @completed: Total MPDUs (non-aggr) completed
 * @completed: Total MPDUs (non-aggr) completed
 * @a_aggr: Total no. of aggregates queued
 * @a_aggr: Total no. of aggregates queued
 * @a_queued: Total AMPDUs queued
 * @a_queued_hw: Total AMPDUs queued to hardware
 * @a_queued_sw: Total AMPDUs queued to software queues
 * @a_completed: Total AMPDUs completed
 * @a_completed: Total AMPDUs completed
 * @a_retries: No. of AMPDUs retried (SW)
 * @a_retries: No. of AMPDUs retried (SW)
 * @a_xretries: No. of AMPDUs dropped due to xretries
 * @a_xretries: No. of AMPDUs dropped due to xretries
@@ -112,7 +113,8 @@ struct ath_tx_stats {
	u32 queued;
	u32 queued;
	u32 completed;
	u32 completed;
	u32 a_aggr;
	u32 a_aggr;
	u32 a_queued;
	u32 a_queued_hw;
	u32 a_queued_sw;
	u32 a_completed;
	u32 a_completed;
	u32 a_retries;
	u32 a_retries;
	u32 a_xretries;
	u32 a_xretries;
+2 −1
Original line number Original line Diff line number Diff line
@@ -1341,7 +1341,6 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
	struct list_head bf_head;
	struct list_head bf_head;


	bf->bf_state.bf_type |= BUF_AMPDU;
	bf->bf_state.bf_type |= BUF_AMPDU;
	TX_STAT_INC(txctl->txq->axq_qnum, a_queued);


	/*
	/*
	 * Do not queue to h/w when any of the following conditions is true:
	 * Do not queue to h/w when any of the following conditions is true:
@@ -1357,6 +1356,7 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
		 * Add this frame to software queue for scheduling later
		 * Add this frame to software queue for scheduling later
		 * for aggregation.
		 * for aggregation.
		 */
		 */
		TX_STAT_INC(txctl->txq->axq_qnum, a_queued_sw);
		list_add_tail(&bf->list, &tid->buf_q);
		list_add_tail(&bf->list, &tid->buf_q);
		ath_tx_queue_tid(txctl->txq, tid);
		ath_tx_queue_tid(txctl->txq, tid);
		return;
		return;
@@ -1370,6 +1370,7 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
		ath_tx_addto_baw(sc, tid, fi->seqno);
		ath_tx_addto_baw(sc, tid, fi->seqno);


	/* Queue to h/w without aggregation */
	/* Queue to h/w without aggregation */
	TX_STAT_INC(txctl->txq->axq_qnum, a_queued_hw);
	bf->bf_lastbf = bf;
	bf->bf_lastbf = bf;
	ath_buf_set_rate(sc, bf, fi->framelen);
	ath_buf_set_rate(sc, bf, fi->framelen);
	ath_tx_txqaddbuf(sc, txctl->txq, &bf_head);
	ath_tx_txqaddbuf(sc, txctl->txq, &bf_head);