diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2009-04-28 13:43:42 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-28 13:43:42 +0200 |
commit | 6a321cb370ad3db4ba6e405e638b3a42c41089b0 (patch) | |
tree | 2e7c25cff76fc6b439afb04e24ab1133e42667b8 /net | |
parent | net: Fix ucc_geth.c handling of fixed-link w/o phy-connection-type property. (diff) | |
download | linux-6a321cb370ad3db4ba6e405e638b3a42c41089b0.tar.xz linux-6a321cb370ad3db4ba6e405e638b3a42c41089b0.zip |
net: netif_tx_queue_stopped too expensive
netif_tx_queue_stopped(txq) is most of the time false.
Yet its cost is very expensive on SMP.
static inline int netif_tx_queue_stopped(const struct netdev_queue *dev_queue)
{
return test_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
}
I saw this on oprofile hunting and bnx2 driver bnx2_tx_int().
We probably should split "struct netdev_queue" in two parts, one
being read mostly.
__netif_tx_lock() touches _xmit_lock & xmit_lock_owner, these
deserve a separate cache line.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions