diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2008-03-17 22:59:49 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-03-25 23:16:16 -0400 |
commit | 05aaa02d799e8e9548d57ac92fcb05e783027341 (patch) | |
tree | becfc839727f798364c13549e332de0830d7676f /drivers/net/netxen/netxen_nic.h | |
parent | 443be7960be77f3345b44491c700ae4471b0fe57 (diff) |
netxen: napi and irq cleanup
o separate and simpler irq handler for msi interrupts, avoids few checks
than legacy mode.
o avoid redudant tx_has_work() and rx_has_work() checks in interrupt
and napi, which can uncork irq based on racy (lockless) access to tx
and rx ring indices. If we get interrupt, there's sufficient reason to
schedule napi.
o replenish rx ring more often, remove self-imposed threshold rcv_free
that prevents posting rx desc to card. This improves performance in
low memory.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Tested-by: Vernon Mauery <mauery@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
-rw-r--r-- | drivers/net/netxen/netxen_nic.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index 876cd0635f2e..8b6546ccb47b 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
@@ -842,7 +842,6 @@ struct netxen_rcv_desc_ctx { | |||
842 | u32 flags; | 842 | u32 flags; |
843 | u32 producer; | 843 | u32 producer; |
844 | u32 rcv_pending; /* Num of bufs posted in phantom */ | 844 | u32 rcv_pending; /* Num of bufs posted in phantom */ |
845 | u32 rcv_free; /* Num of bufs in free list */ | ||
846 | dma_addr_t phys_addr; | 845 | dma_addr_t phys_addr; |
847 | struct pci_dev *phys_pdev; | 846 | struct pci_dev *phys_pdev; |
848 | struct rcv_desc *desc_head; /* address of rx ring in Phantom */ | 847 | struct rcv_desc *desc_head; /* address of rx ring in Phantom */ |
@@ -1076,12 +1075,10 @@ void netxen_tso_check(struct netxen_adapter *adapter, | |||
1076 | struct cmd_desc_type0 *desc, struct sk_buff *skb); | 1075 | struct cmd_desc_type0 *desc, struct sk_buff *skb); |
1077 | int netxen_nic_hw_resources(struct netxen_adapter *adapter); | 1076 | int netxen_nic_hw_resources(struct netxen_adapter *adapter); |
1078 | void netxen_nic_clear_stats(struct netxen_adapter *adapter); | 1077 | void netxen_nic_clear_stats(struct netxen_adapter *adapter); |
1079 | int netxen_nic_rx_has_work(struct netxen_adapter *adapter); | ||
1080 | int netxen_nic_tx_has_work(struct netxen_adapter *adapter); | ||
1081 | void netxen_watchdog_task(struct work_struct *work); | 1078 | void netxen_watchdog_task(struct work_struct *work); |
1082 | void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, | 1079 | void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, |
1083 | u32 ringid); | 1080 | u32 ringid); |
1084 | int netxen_process_cmd_ring(unsigned long data); | 1081 | int netxen_process_cmd_ring(struct netxen_adapter *adapter); |
1085 | u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max); | 1082 | u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max); |
1086 | void netxen_nic_set_multi(struct net_device *netdev); | 1083 | void netxen_nic_set_multi(struct net_device *netdev); |
1087 | int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); | 1084 | int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); |