Page MenuHomeFreeBSD

e1000: Don't use 9k jumbo clusters
ClosedPublic

Authored by ryan_freqlabs.com on Jul 31 2018, 8:00 PM.

Details

Summary

Backported to 11-STABLE from 12-CURRENT.

Avoids the issue with 9k jumbo cluster fragmentation by maxing out at page size jumbo clusters for RX mbufs.

Test Plan

I've been stress testing between two laggs with igb on one end and em on the other end. I also tested briefly without the laggs and on some other em and igb hardware. The interfaces are all configured with MTU set to 9000. I have been copying files over NFS and piping data through SSH for almost 24 hours without a fault.

I am easily able to saturate the gigabit links with NFS or iperf3.
Monitoring netstat -w and netstat -i I see lots of packets and bytes but no errors*.
Monitoring netstat -m I see no 9k jumbo clusters in use, so no threat of having 9k jumbo clusters denied.

Here is the hardware I have:

(in a lagg)
igb0@pci0:3:0:0: class=0x020000 card=0x00a18086 chip=0x15218086 rev=0x01 hdr=0x00
igb1@pci0:3:0:1: class=0x020000 card=0x00a18086 chip=0x15218086 rev=0x01 hdr=0x00
igb2@pci0:3:0:2: class=0x020000 card=0x00a18086 chip=0x15218086 rev=0x01 hdr=0x00
igb3@pci0:3:0:3: class=0x020000 card=0x00a18086 chip=0x15218086 rev=0x01 hdr=0x00

(not in a lagg)
igb4@pci0:13:0:0: class=0x020000 card=0x153315d9 chip=0x15338086 rev=0x03 hdr=0x00

(in a lagg)
em0@pci0:2:0:0: class=0x020000 card=0x125e8086 chip=0x105e8086 rev=0x06 hdr=0x00
em1@pci0:2:0:1: class=0x020000 card=0x125e8086 chip=0x105e8086 rev=0x06 hdr=0x00

(not in a lagg)
em0@pci0:0:25:0: class=0x020000 card=0x153a15d9 chip=0x153a8086 rev=0x05 hdr=0x00

(not in a lagg)
em0@pci0:0:25:0: class=0x020000 card=0x05341028 chip=0x15028086 rev=0x04 hdr=0x00

  • The last two em devices actually do occasionally register an error, but they did that before, too. Perhaps related to the Intel ME? Anyway I would expect more severe problems if this patch were the cause.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mmacy accepted this revision.Jul 31 2018, 11:15 PM
This revision is now accepted and ready to land.Jul 31 2018, 11:15 PM
erj accepted this revision.Aug 1 2018, 7:52 PM
This revision was automatically updated to reflect the committed changes.