eql: dont rely on HZ=100
HZ is more likely to be 1000 these days. timer handlers are run from softirq, no need to disable bh skb priority 1 is TC_PRIO_FILLER Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
819a100846
commit
09e79d6ea6
2 changed files with 5 additions and 4 deletions
|
@ -125,6 +125,7 @@
|
||||||
#include <linux/if.h>
|
#include <linux/if.h>
|
||||||
#include <linux/if_arp.h>
|
#include <linux/if_arp.h>
|
||||||
#include <linux/if_eql.h>
|
#include <linux/if_eql.h>
|
||||||
|
#include <linux/pkt_sched.h>
|
||||||
|
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
|
|
||||||
|
@ -143,7 +144,7 @@ static void eql_timer(unsigned long param)
|
||||||
equalizer_t *eql = (equalizer_t *) param;
|
equalizer_t *eql = (equalizer_t *) param;
|
||||||
struct list_head *this, *tmp, *head;
|
struct list_head *this, *tmp, *head;
|
||||||
|
|
||||||
spin_lock_bh(&eql->queue.lock);
|
spin_lock(&eql->queue.lock);
|
||||||
head = &eql->queue.all_slaves;
|
head = &eql->queue.all_slaves;
|
||||||
list_for_each_safe(this, tmp, head) {
|
list_for_each_safe(this, tmp, head) {
|
||||||
slave_t *slave = list_entry(this, slave_t, list);
|
slave_t *slave = list_entry(this, slave_t, list);
|
||||||
|
@ -157,7 +158,7 @@ static void eql_timer(unsigned long param)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&eql->queue.lock);
|
spin_unlock(&eql->queue.lock);
|
||||||
|
|
||||||
eql->timer.expires = jiffies + EQL_DEFAULT_RESCHED_IVAL;
|
eql->timer.expires = jiffies + EQL_DEFAULT_RESCHED_IVAL;
|
||||||
add_timer(&eql->timer);
|
add_timer(&eql->timer);
|
||||||
|
@ -341,7 +342,7 @@ static netdev_tx_t eql_slave_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *slave_dev = slave->dev;
|
struct net_device *slave_dev = slave->dev;
|
||||||
|
|
||||||
skb->dev = slave_dev;
|
skb->dev = slave_dev;
|
||||||
skb->priority = 1;
|
skb->priority = TC_PRIO_FILLER;
|
||||||
slave->bytes_queued += skb->len;
|
slave->bytes_queued += skb->len;
|
||||||
dev_queue_xmit(skb);
|
dev_queue_xmit(skb);
|
||||||
dev->stats.tx_packets++;
|
dev->stats.tx_packets++;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#define EQL_DEFAULT_SLAVE_PRIORITY 28800
|
#define EQL_DEFAULT_SLAVE_PRIORITY 28800
|
||||||
#define EQL_DEFAULT_MAX_SLAVES 4
|
#define EQL_DEFAULT_MAX_SLAVES 4
|
||||||
#define EQL_DEFAULT_MTU 576
|
#define EQL_DEFAULT_MTU 576
|
||||||
#define EQL_DEFAULT_RESCHED_IVAL 100
|
#define EQL_DEFAULT_RESCHED_IVAL HZ
|
||||||
|
|
||||||
#define EQL_ENSLAVE (SIOCDEVPRIVATE)
|
#define EQL_ENSLAVE (SIOCDEVPRIVATE)
|
||||||
#define EQL_EMANCIPATE (SIOCDEVPRIVATE + 1)
|
#define EQL_EMANCIPATE (SIOCDEVPRIVATE + 1)
|
||||||
|
|
Loading…
Reference in a new issue