On Sat, 2013-05-25 at 10:04 +0200, Stéphane Glondu wrote: > Le 24/05/2013 18:07, Ben Hutchings a écrit : > >> With Linux 3.8, my computer starts (after some time) flooding its > >> network interface with pause packets, effectively freezing it and > >> other network-dependent computers connected to the same switch.
This is still the important issue, and regardless of whether pause frames are being handled properly it sounds like the hardware RX path may be locking up and that causes it to generate them continuously. I don't know how to investigate that, so this message is going to the e1000e developers. > > Switches should normally be configured to generate but not respond > > to pause frames. I don't know how unmanaged switches are typically > > configured. What do ethtool (no options and 'ethtool -a' report for > > this device? > > The other frozen computers are connected via an unmanaged switch. > > # ethtool eth0 > Settings for eth0: > Supported ports: [ TP ] > Supported link modes: 10baseT/Half 10baseT/Full > 100baseT/Half 100baseT/Full > 1000baseT/Full > Supported pause frame use: No > Supports auto-negotiation: Yes > Advertised link modes: 10baseT/Half 10baseT/Full > 100baseT/Half 100baseT/Full > 1000baseT/Full > Advertised pause frame use: No > Advertised auto-negotiation: Yes I forgot, e1000e still doesn't report autoneg state completely through ethtool. How about 'mii-tool -v eth0'? > Speed: 100Mb/s > Duplex: Full > Port: Twisted Pair > PHYAD: 2 > Transceiver: internal > Auto-negotiation: on > MDI-X: off > Supports Wake-on: pumbg > Wake-on: g > Current message level: 0x00000001 (1) > drv > Link detected: yes > # ethtool -a eth0 > Pause parameters for eth0: > Autonegotiate: on > RX: on > TX: on > > >> When I connect directly my laptop to the computer, and run tcpdump on > >> the laptop, I see: > >> [...] > > There seems to be a bug in your laptop's network driver, because pause > > frames should not be passed to the kernel. (Usually they are > > discarded by the MAC.) > > Even in promiscuous mode? [...] MAC control frames, which include pause frames, should never be passed to the host (specified in IEEE 802.3 clause 31.3). In case the hardware still delivers them to the host, it's the driver's responsibility to discard them. This is the same as for frames that have an error at the Ethernet level, e.g. bad CRC. Ben. -- Ben Hutchings Computers are not intelligent. They only think they are.
signature.asc
Description: This is a digitally signed message part