Bug 12364 - TC Queueing rules doesn't work when using a 1000Mbit NIC
Summary: TC Queueing rules doesn't work when using a 1000Mbit NIC
Status: CLOSED CODE_FIX
Alias: None
Product: Networking
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 blocking
Assignee: Arnaldo Carvalho de Melo
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-05 07:07 UTC by Jorge Bastos
Modified: 2009-01-09 01:48 UTC (History)
0 users

See Also:
Kernel Version: 2.6.28
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Jorge Bastos 2009-01-05 07:07:03 UTC
Latest working kernel version:
none

Earliest failing kernel version:
2.6.28

Distribution:
Debian SID

Hardware Environment:
1x P4 3.2GHZ with SMC compiled.
3GB DDR2 RAM
SATA Disks

Software Environment:


Problem Description:
I've always used TC for my QoS configuration, and always used a 100Mbit Realtek 8139 card.
Now i changed my Switch to a 1000Mbit one, and started using the onboard Marvell NIC, with "sky2" driver, since then, the QoS just stoped working, and all my shaping rules, started to shape the traffic to 1/2 KB.


Steps to reproduce:
Below my TC rules, and i've always used and worked when i had the 100Mbit card.
I must remember, if i reinsert the 100Mbit card, the shaping works as expected.
-------

---
/sbin/tc qdisc del dev eth0 root
/sbin/tc qdisc add dev eth0 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8
/sbin/tc class change dev eth0 root cbq weight 10Mbit allot 1514

/sbin/tc class add dev eth0 parent 1: classid 1:1280 cbq bandwidth 100Mbit rate 200Kbit weight 6kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded isolated
/sbin/tc qdisc add dev eth0 parent 1:1280 handle 1280 tbf rate 200Kbit buffer 10Kb/8 limit 15Kb mtu 1500
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src 195.23.14.71 match ip sport 80 0xffff classid 1:1280
---
Comment 1 Jorge Bastos 2009-01-09 01:48:09 UTC
Disabling this parameters make it possible to work, due to:

ethtool -K eth0 gso off
ethtool -K eth0 sg off
ethtool -K eth0 tso off

Adicional info from the mailing list from another user:
Maybe in the future this will work, for now it's solved.


"In this case the issue is packet schedulers usually don't work with
gso/tso enabled, at least without some tweaking with mtu. Some qdisc
get inacurrate, others (like tbf) can drop too big packets (have a
look at "dropped" stats)."

Note You need to log in before you can comment on or make changes to this bug.