netdev
[Top] [All Lists]

[PATCH 2.6 4/9] ixgb: Include Tx workdone in deciding when to quit polli

To: "jgarzik@xxxxxxxxx" <jgarzik@xxxxxxxxx>
Subject: [PATCH 2.6 4/9] ixgb: Include Tx workdone in deciding when to quit polling, Robert Olsson's fix for NAPI quit condition, avoid polling routine racing with the interface down routine
From: Ganesh Venkatesan <ganesh.venkatesan@xxxxxxxxx>
Date: Thu, 6 Jan 2005 17:25:12 -0800 (PST)
Cc: netdev <netdev@xxxxxxxxxxx>
Replyto: "Ganesh Venkatesan" <ganesh.venkatesan@intel.com>
Sender: netdev-bounce@xxxxxxxxxxx
Signed-off-by: Ganesh Venkatesan <ganesh.venkatesan@xxxxxxxxx>
diff -up net-drivers-2.6/drivers/net/ixgb/ixgb_main.c 
net-drivers-2.6/drivers/net/ixgb.new/ixgb_main.c
--- net-drivers-2.6/drivers/net/ixgb/ixgb_main.c        2005-01-05 
17:13:27.000000000 -0800
+++ net-drivers-2.6/drivers/net/ixgb.new/ixgb_main.c    2005-01-05 
17:13:29.000000000 -0800
@@ -1701,22 +1701,27 @@ ixgb_clean(struct net_device *netdev, in
 {
        struct ixgb_adapter *adapter = netdev->priv;
        int work_to_do = min(*budget, netdev->quota);
+       int tx_cleaned;
        int work_done = 0;
+       
+       if (!netif_carrier_ok(netdev))
+               goto quit_polling;
 
-       ixgb_clean_tx_irq(adapter);
+       tx_cleaned = ixgb_clean_tx_irq(adapter);
        ixgb_clean_rx_irq(adapter, &work_done, work_to_do);
 
        *budget -= work_done;
        netdev->quota -= work_done;
-
-       if (work_done < work_to_do || !netif_running(netdev)) {
-               netif_rx_complete(netdev);
-               /* RAIDC will be automatically restarted by irq_enable */
+       
+       /* if cleanup and not enough Rx work done, exit the polling mode */
+       if((!tx_cleaned && (work_done < work_to_do)) || 
+                               !netif_running(netdev)) {
+quit_polling:  netif_rx_complete(netdev);
                ixgb_irq_enable(adapter);
                return 0;
        }
 
-       return (work_done >= work_to_do);
+       return 1;
 }
 #endif
 




<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH 2.6 4/9] ixgb: Include Tx workdone in deciding when to quit polling, Robert Olsson's fix for NAPI quit condition, avoid polling routine racing with the interface down routine, Ganesh Venkatesan <=