can't add tc multiq
Subsystems (3)
Hello all!
kernel 2.6.28.4
iproute2 - last git
Can't use multiq qdisc. How to fix this?
Thanks!
slavon ~ # tc qdisc add dev eth0 root handle 1: multiq RTNETLINK answers: Invalid argument
slavon ~ # tc qdisc add dev eth1 root handle 1: multiq RTNETLINK answers: Invalid argument
# lsmod Module Size Used by sch_multiq 9472 0 8021q 23200 0 xt_tcpudp 7040 0 iptable_filter 6784 0 ip_tables 15120 1 iptable_filter x_tables 17028 2 xt_tcpudp,ip_tables usbmouse 8064 0 usbhid 37728 2 ehci_hcd 38284 0 snd_hda_intel 409776 6 uhci_hcd 26380 0 snd_pcm 72196 2 snd_hda_intel usbcore 133136 7 usbmouse,usbhid,ehci_hcd,uhci_hcd snd_timer 23304 2 snd_pcm snd_page_alloc 12296 2 snd_hda_intel,snd_pcm thermal 19356 0 snd_hwdep 11140 1 snd_hda_intel processor 37024 1 thermal i2c_i801 12944 0 snd 52516 14 snd_hda_intel,snd_pcm,snd_timer,snd_hwdep r8169 36100 0 i2c_core 24724 1 i2c_i801 fglrx 1905884 3 e1000 123076 0 rng_core 8196 0 mii 8704 1 r8169 thermal_sys 15144 2 thermal,processor button 10128 0
Quoted 34 lines · On Mon, 09 Feb 2009 11:43:26 +0300 Badalian Vyacheslav <[email protected]>…
Hello all!
kernel 2.6.28.4
iproute2 - last git
Can't use multiq qdisc. How to fix this?
Thanks!slavon ~ # tc qdisc add dev eth0 root handle 1: multiq RTNETLINK answers: Invalid argument
slavon ~ # tc qdisc add dev eth1 root handle 1: multiq RTNETLINK answers: Invalid argument# lsmod Module Size Used by sch_multiq 9472 0 8021q 23200 0 xt_tcpudp 7040 0 iptable_filter 6784 0 ip_tables 15120 1 iptable_filter x_tables 17028 2 xt_tcpudp,ip_tables usbmouse 8064 0 usbhid 37728 2 ehci_hcd 38284 0 snd_hda_intel 409776 6 uhci_hcd 26380 0 snd_pcm 72196 2 snd_hda_intel usbcore 133136 7 usbmouse,usbhid,ehci_hcd,uhci_hcd snd_timer 23304 2 snd_pcm snd_page_alloc 12296 2 snd_hda_intel,snd_pcm thermal 19356 0 snd_hwdep 11140 1 snd_hda_intel processor 37024 1 thermal i2c_i801 12944 0 snd 52516 14 snd_hda_intel,snd_pcm,snd_timer,snd_hwdep
Quoted 8 lines
r8169 36100 0 i2c_core 24724 1 i2c_i801 fglrx 1905884 3 e1000 123076 0 rng_core 8196 0 mii 8704 1 r8169 thermal_sys 15144 2 thermal,processor button 10128 0
You need hardware with multiple transmit queues. Neither e1000 or r8169 has this.
Stephen Hemminger wrote, On 02/09/2009 05:15 PM:
Quoted 11 lines
Quoted 8 lines · On Mon, 09 Feb 2009 11:43:26 +0300 Badalian Vyacheslav <[email protected]>…
Hello all!
kernel 2.6.28.4
iproute2 - last git
Can't use multiq qdisc. How to fix this?
Thanks!slavon ~ # tc qdisc add dev eth0 root handle 1: multiq RTNETLINK answers: Invalid argument
...
Quoted 2 lines
You need hardware with multiple transmit queues. Neither e1000 or r8169 has this.
------------------->pkt_sched: sch_multiq: Warn on non-multiqueue devices.
Current "RTNETLINK answers: Invalid argument" warning, while trying to add multiq qdisc to non-multiqueue device, isn't very helpful and some of these devs can be changed btw., so let's add a small printk.
With feedback from Stephen Hemminger <[email protected]>
---
net/sched/sch_multiq.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
net/sched/sch_multiq.c +4 -1
@@ -201,8 +201,11 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt)struct tc_multiq_qopt *qopt;int i; -if (!netif_is_multiqueue (qdisc_dev (sch))) +if (!netif_is_multiqueue (qdisc_dev (sch))) { +printk (KERN_WARNING "multiq: dev %s isn't multiqueue.\n" , +qdisc_dev (sch)->name);return -EINVAL ; + }if (nla_len (opt) <sizeof (*qopt))return -EINVAL ;
Quoted 37 lines · On Mon, 9 Feb 2009 22:44:47 +0100 Jarek Poplawski <[email protected]> wrote:
Stephen Hemminger wrote, On 02/09/2009 05:15 PM:
Quoted 11 lines
Quoted 8 lines · On Mon, 09 Feb 2009 11:43:26 +0300 Badalian Vyacheslav <[email protected]>…
Hello all!
kernel 2.6.28.4
iproute2 - last git
Can't use multiq qdisc. How to fix this?
Thanks!slavon ~ # tc qdisc add dev eth0 root handle 1: multiq RTNETLINK answers: Invalid argument
...
Quoted 2 lines
You need hardware with multiple transmit queues. Neither e1000 or r8169 has this.
------------------->
pkt_sched:sch_multiq: Warn on non-multiqueue devices.Current "RTNETLINK answers: Invalid argument" warning, while trying to add multiq qdisc to non-multiqueue device, isn't very helpful and some of these devs can be changed btw., so let's add a small printk.
With feedback from Stephen Hemminger <[email protected]>
Reported-by Badalian Vyacheslav <[email protected]>Signed-off-by Jarek Poplawski <[email protected]>---
net/sched/sch_multiq.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)net/sched/sch_multiq.c +0
-0
net/sched/sch_multiq.c static int multiq_tune(struct Qdisc *sch, struct nlattr *opt) · line 207
Quoted 8 lines
net/sched/sch_multiq.c +3
-1@@ -201,8 +201,11 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt)struct tc_multiq_qopt *qopt;int i; -if (!netif_is_multiqueue (qdisc_dev (sch))) +if (!netif_is_multiqueue (qdisc_dev (sch))) { +printk (KERN_WARNING "multiq: dev %s isn't multiqueue.\n" , +qdisc_dev (sch)->name);return -EINVAL ;
Rather than warning which will buried off on some console that user will never see (and can cause DoS overload). A better errno should be chosen.
On Mon, Feb 09, 2009 at 02:40:52PM -0800, Stephen Hemminger wrote:
...
Quoted 2 lines
Rather than warning which will buried off on some console that user will never see (and can cause DoS overload). A better errno should be chosen.
I think admins are used to reading console messages, but we can try with a better errno too.
Thanks,
Jarek P.
-------------------> take 2
pkt_sched: sch_multiq: Change errno on non-multiqueue devices use.
Current "RTNETLINK answers: Invalid argument" warning, while trying to add multiq qdisc to non-multiqueue device, isn't very helpful and some of these devs can be changed btw., so let's use a better errno.
With feedback from Stephen Hemminger <[email protected]>
---
net/sched/sch_multiq.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
net/sched/sch_multiq.c +1 -1
@@ -202,7 +202,7 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt)int i;if (!netif_is_multiqueue (qdisc_dev (sch))) -return -EINVAL ; +return -EOPNOTSUPP ;if (nla_len (opt) <sizeof (*qopt))return -EINVAL ;
From: Jarek Poplawski <[email protected]>
Date: Tue, 10 Feb 2009 07:41:54 +0000
Quoted 10 lines
pkt_sched:sch_multiq: Change errno on non-multiqueue devices use.Current "RTNETLINK answers: Invalid argument" warning, while trying to add multiq qdisc to non-multiqueue device, isn't very helpful and some of these devs can be changed btw., so let's use a better errno.
With feedback from Stephen Hemminger <[email protected]>
Reported-by Badalian Vyacheslav <[email protected]>Signed-off-by Jarek Poplawski <[email protected]>
Applied, thanks everyone.
Thanks all! i will go to buy e1000e.
Quoted 44 lines · Stephen Hemminger
...
Quoted 3 lines
Rather than warning which will buried off on some console that user will never see (and can cause DoS overload). A better errno should be chosen.
I think admins are used to reading console messages, but we can try with a better errno too.
Thanks,
Jarek P.
-------------------> take 2
pkt_sched:sch_multiq: Change errno on non-multiqueue devices use.Current "RTNETLINK answers: Invalid argument" warning, while trying to add multiq qdisc to non-multiqueue device, isn't very helpful and some of these devs can be changed btw., so let's use a better errno.
With feedback from Stephen Hemminger <[email protected]>
Reported-by Badalian Vyacheslav <[email protected]>Signed-off-by Jarek Poplawski <[email protected]>---
net/sched/sch_multiq.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)net/sched/sch_multiq.c +1
-1@@ -202,7 +202,7 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt)int i;if (!netif_is_multiqueue (qdisc_dev (sch))) -return -EINVAL ; +return -EOPNOTSUPP ;if (nla_len (opt) <sizeof (*qopt))return -EINVAL ;
Sorry. I have 2 different e1000e and its also can't apply multiq. How get number of hardware queues of device?
Thanks
Quoted 56 lines
Quoted 34 lines · On Mon, 09 Feb 2009 11:43:26 +0300 Badalian Vyacheslav <[email protected]>…
Hello all!
kernel 2.6.28.4
iproute2 - last git
Can't use multiq qdisc. How to fix this?
Thanks!slavon ~ # tc qdisc add dev eth0 root handle 1: multiq RTNETLINK answers: Invalid argument
slavon ~ # tc qdisc add dev eth1 root handle 1: multiq RTNETLINK answers: Invalid argument# lsmod Module Size Used by sch_multiq 9472 0 8021q 23200 0 xt_tcpudp 7040 0 iptable_filter 6784 0 ip_tables 15120 1 iptable_filter x_tables 17028 2 xt_tcpudp,ip_tables usbmouse 8064 0 usbhid 37728 2 ehci_hcd 38284 0 snd_hda_intel 409776 6 uhci_hcd 26380 0 snd_pcm 72196 2 snd_hda_intel usbcore 133136 7 usbmouse,usbhid,ehci_hcd,uhci_hcd snd_timer 23304 2 snd_pcm snd_page_alloc 12296 2 snd_hda_intel,snd_pcm thermal 19356 0 snd_hwdep 11140 1 snd_hda_intel processor 37024 1 thermal i2c_i801 12944 0 snd 52516 14 snd_hda_intel,snd_pcm,snd_timer,snd_hwdepQuoted 9 lines
r8169 36100 0 i2c_core 24724 1 i2c_i801 fglrx 1905884 3 e1000 123076 0 rng_core 8196 0 mii 8704 1 r8169 thermal_sys 15144 2 thermal,processor button 10128 0You need hardware with multiple transmit queues. Neither e1000 or r8169 has this.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 1 line · Badalian Vyacheslav
Thanks all! i will go to buy e1000e.
Try to grep in drivers/net for 'alloc_etherdev_mq' to find multiqueue NICs/drivers.
Jarek P.
Ohh... so small. e1000 and e1000e not have hw queues in life or its simple not have implementation in driver?
Thanks again and again!
Quoted 11 lines · Badalian Vyacheslav
Quoted 3 lines
Thanks all! i will go to buy e1000e.
Try to grep in
drivers/netfor 'alloc_etherdev_mq' to find multiqueue NICs/drivers.Jarek P.
Quoted 1 line · Badalian Vyacheslav
Ohh... so small.
Yes. (I hope you didn't forget -R with grep.)
Quoted 2 lines
e1000 and e1000e not have hw queues in life or its simple not have implementation in driver?
I don't know.
Jarek P.
Jarek Poplawski пишет:
Quoted 7 lines · Badalian Vyacheslav
Quoted 3 lines
Ohh... so small.
Yes. (I hope you didn't forget -R with grep.)
yep
Quoted 7 lines
Quoted 4 lines
e1000 and e1000e not have hw queues in life or its simple not have implementation in driver?
I don't know.
Thanks for all!
Quoted 3 lines
Jarek P.
Quoted 3 lines · On Tue, 10 Feb 2009 14:37:18 +0300 Badalian Vyacheslav <[email protected]>…
Sorry. I have 2 different e1000e and its also can't apply multiq. How get number of hardware queues of device?
e1000e is not multiqueue either, the only intel 1G card that does multiqueue is the 82575/82576 gigabit ethernet family which uses the "igb" driver.