ixgbe: Use packets to track Tx completions instead of a seperate value
authorAlexander Duyck <alexander.h.duyck@intel.com>
Wed, 8 Feb 2012 07:50:51 +0000 (07:50 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sat, 17 Mar 2012 08:06:59 +0000 (01:06 -0700)
A separate value was added to track Tx completions in order to determine if
the Tx unit was hung.  However we can do the same thing using the number of
packets completed without having to add another stat to the Tx ring.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe.h
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index b1e3baf8d450755ea17630132aa42418cbd5dd40..6d4ef1a30890664e6d43dd23f53b570f8ca95606 100644 (file)
@@ -173,7 +173,6 @@ struct ixgbe_queue_stats {
 struct ixgbe_tx_queue_stats {
        u64 restart_queue;
        u64 tx_busy;
-       u64 completed;
        u64 tx_done_old;
 };
 
index efce423586d496ed9a689e4c548c921ebfa20aca..832a9fc3ad57fbe1aa70c56b650a244d77494140 100644 (file)
@@ -661,7 +661,7 @@ static void ixgbe_update_xoff_received(struct ixgbe_adapter *adapter)
 
 static u64 ixgbe_get_tx_completed(struct ixgbe_ring *ring)
 {
-       return ring->tx_stats.completed;
+       return ring->stats.packets;
 }
 
 static u64 ixgbe_get_tx_pending(struct ixgbe_ring *ring)
@@ -760,9 +760,6 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
                if (!(eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)))
                        break;
 
-               /* count the packet as being completed */
-               tx_ring->tx_stats.completed++;
-
                /* clear next_to_watch to prevent false hangs */
                tx_buffer->next_to_watch = NULL;