| Summary: | Bridge stops working after some days | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Aiko Barz <aiko> |
| Component: | kern | Assignee: | freebsd-net (Nobody) <net> |
| Status: | Closed Overcome By Events | ||
| Severity: | Affects Some People | CC: | ae, erj, fk, kp, meyer.sydney, mops, pi |
| Priority: | --- | Keywords: | patch |
| Version: | 11.0-RELEASE | ||
| Hardware: | amd64 | ||
| OS: | Any | ||
| Attachments: | |||
|
Description
Aiko Barz
2017-03-07 09:08:24 UTC
I don't think you're running into the bridge memory leak that D7780 fixed. You'll want that patch, but I don't think that's the problem here. I also don't think that it's a pf problem, because bridge_pfil() doesn't pass ARP packets to pf, so if the problem were there ARP packets should still pass. Can you check if there's still free memory when you run into this problem? Being out of memory might explain it, but I don't see how bringing the interfaces down and up again would help. Today the other Bridge-Server had this issue.
But I forget to collect the memory situation before applying the workaround. :(
My current workaround:
$ ifconfig ix0 down
$ ifconfig ix0 up
$ ifconfig ix1 down
$ ifconfig ix1 up
This is the memory situation after applying the workaround:
$ sysctl hw | egrep 'hw.(phys|user|real)'
hw.physmem: 17095405568
hw.usermem: 14351601664
hw.realmem: 17179869184
$ grep memory /var/run/dmesg.boot
real memory = 17179869184 (16384 MB)
avail memory = 16531873792 (15766 MB)
$ freecolor -m -o
total used free shared buffers cached
Mem: 15866 2625 13240 0 0 0
Swap: 8192 0 8192
$ vmstat -s
1609035107 cpu context switches
3485091537 device interrupts
11107443 software interrupts
44940504 traps
55770968 system calls
25 kernel threads created
184620 fork() calls
35599 vfork() calls
4 rfork() calls
0 swap pager pageins
0 swap pager pages paged in
0 swap pager pageouts
0 swap pager pages paged out
64250 vnode pager pageins
64954 vnode pager pages paged in
1378 vnode pager pageouts
21763 vnode pager pages paged out
0 page daemon wakeups
297604 pages examined by the page daemon
0 pages reactivated
11889396 copy-on-write faults
6627 copy-on-write optimized faults
24742122 zero fill pages zeroed
0 zero fill pages prezeroed
663 intransit blocking page faults
41093137 total VM faults taken
63984 page faults requiring I/O
0 pages affected by kernel thread creation
7838450 pages affected by fork()
1220635 pages affected by vfork()
1524 pages affected by rfork()
0 pages cached
45799762 pages freed
0 pages freed by daemon
30066607 pages freed by exiting processes
2339 pages active
17759 pages inactive
0 pages in VM cache
669862 pages wired down
3371746 pages free
4096 bytes per page
38614188 total name lookups
cache hits (89% pos + 7% neg) system 0% per-directory
deletions 0%, falsehits 0%, toolong 0%
Those machines only run PF. Nothing else.
Kind regards,
Aiko
It doesn't look like it's running out of memory. It'd be good to confirm this when it's in the faulty state, just to be sure. Yesterday the other bridge stopped working. Here is the memory situation of the not working device:
$ sysctl hw | egrep 'hw.(phys|user|real)'
hw.physmem: 17095405568
hw.usermem: 14090272768
hw.realmem: 17179869184
$ freecolor -m -o
total used free shared buffers cached
Mem: 15866 2869 12996 0 0 0
Swap: 8192 0 8192
$ vmstat -s
40942340 cpu context switches
3153615407 device interrupts
19423182 software interrupts
74464970 traps
92413279 system calls
25 kernel threads created
301461 fork() calls
57826 vfork() calls
50 rfork() calls
0 swap pager pageins
0 swap pager pages paged in
0 swap pager pageouts
0 swap pager pages paged out
80151 vnode pager pageins
80933 vnode pager pages paged in
1378 vnode pager pageouts
21763 vnode pager pages paged out
0 page daemon wakeups
457328 pages examined by the page daemon
0 pages reactivated
19516079 copy-on-write faults
11506 copy-on-write optimized faults
40735110 zero fill pages zeroed
0 zero fill pages prezeroed
680 intransit blocking page faults
67500932 total VM faults taken
79873 page faults requiring I/O
0 pages affected by kernel thread creation
12810470 pages affected by fork()
1982627 pages affected by vfork()
19050 pages affected by rfork()
0 pages cached
75504128 pages freed
0 pages freed by daemon
49183950 pages freed by exiting processes
838 pages active
19799 pages inactive
0 pages in VM cache
733668 pages wired down
3307401 pages free
4096 bytes per page
64364542 total name lookups
cache hits (89% pos + 7% neg) system 0% per-directory
deletions 0%, falsehits 0%, toolong 0%
So long,
Aiko
Right, that confirms we're not dealing with a memory leak. I've had a quick look at the ixgbe/if_ix code. It resets the hardware if you bring it down, so one possible explanation is that there's something wrong in the ix driver itself, which causes this. I might be missing it, but I don't see anything in the bridge code that responds to bringing a member interface up/down, so right now I consider the ix driver to be the most likely suspect. I'm afraid I don't know anything about that hardware. It might be useful to have a look in dmesg to see if there's anything obvious, as well as list the exact hardware you have. Hardware: Dell PowerEdge R320
* Intel Xeon E5-2430 v2 (2,5GHz, 6C, 15MB Cache, 7,2GT/s QPI, 80W, Turbo)
* PowerEdge R320 Mainboard, TPM
* Intel Ethernet I350 DP 1Gbit/s Serveradapter, Low Profile
* Intel X520 DP 10Gbit/s DA/SFP+ Serveradapter <--- bridge0
* 10GbE SR SFP+ Transceiver, 10GB and 1GB compatible with Intel and Broadcom Serveradapter
This is the patched kernel as mentioned above. The other machine uses the vanilla kernel:
$ dmesg
Copyright (c) 1992-2016 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 11.0-RELEASE-p8 #0: Thu Mar 2 12:13:46 CET 2017
root@goldengate01:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0)
VT(vga): resolution 640x480
CPU: Intel(R) Xeon(R) CPU E5-2430 v2 @ 2.50GHz (2500.05-MHz K8-class CPU)
Origin="GenuineIntel" Id=0x306e4 Family=0x6 Model=0x3e Stepping=4
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x7fbee3ff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
AMD Features2=0x1<LAHF>
Structured Extended Features=0x281<FSGSBASE,SMEP,ERMS>
XSAVE Features=0x1<XSAVEOPT>
VT-x: (disabled in BIOS) PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr
TSC: P-state invariant, performance statistics
real memory = 17179869184 (16384 MB)
avail memory = 16531873792 (15766 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <DELL PE_SC3 >
FreeBSD/SMP: Multiprocessor System Detected: 12 CPUs
FreeBSD/SMP: 1 package(s) x 6 core(s) x 2 hardware threads
random: unblocking device.
ioapic1: Changing APIC ID to 1
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 32-55 on motherboard
random: entropy device external interface
kbd1 at kbdmux0
netmap: loaded module
module_register_init: MOD_LOAD (vesa, 0xffffffff8101d970, 0) error 19
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
vtvga0: <VT VGA driver> on motherboard
cryptosoft0: <software crypto> on motherboard
acpi0: <DELL PE_SC3> on motherboard
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
cpu4: <ACPI CPU> on acpi0
cpu5: <ACPI CPU> on acpi0
cpu6: <ACPI CPU> on acpi0
cpu7: <ACPI CPU> on acpi0
cpu8: <ACPI CPU> on acpi0
cpu9: <ACPI CPU> on acpi0
cpu10: <ACPI CPU> on acpi0
cpu11: <ACPI CPU> on acpi0
atrtc0: <AT realtime clock> port 0x70-0x7f irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x5f irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 350
Event timer "HPET1" frequency 14318180 Hz quality 340
Event timer "HPET2" frequency 14318180 Hz quality 340
Event timer "HPET3" frequency 14318180 Hz quality 340
Event timer "HPET4" frequency 14318180 Hz quality 340
Event timer "HPET5" frequency 14318180 Hz quality 340
Event timer "HPET6" frequency 14318180 Hz quality 340
Event timer "HPET7" frequency 14318180 Hz quality 340
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff numa-domain 0 on acpi0
pci0: <ACPI PCI bus> numa-domain 0 on pcib0
pcib1: <ACPI PCI-PCI bridge> irq 53 at device 1.0 numa-domain 0 on pci0
pci1: <ACPI PCI bus> numa-domain 0 on pcib1
mfi0: <Drake Skinny> port 0xfc00-0xfcff mem 0xd8ffc000-0xd8ffffff,0xd8f80000-0xd8fbffff irq 34 at device 0.0 numa-domain 0 on pci1
mfi0: Using MSI
mfi0: Megaraid SAS driver Ver 4.23
pcib2: <ACPI PCI-PCI bridge> irq 53 at device 3.0 numa-domain 0 on pci0
pci2: <ACPI PCI bus> numa-domain 0 on pcib2
ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 3.1.13-k> port 0xecc0-0xecdf mem 0xd9e80000-0xd9efffff,0xd9ff8000-0xd9ffbfff irq 48 at device 0.0 numa-domain 0 on pci2
ix0: Using MSIX interrupts with 9 vectors
ix0: Ethernet address: xx:xx:xx:xx:xx:xx
ix0: PCI Express Bus: Speed 5.0GT/s Width x8
ix0: netmap queues/slots: TX 8/2048, RX 8/2048
ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 3.1.13-k> port 0xece0-0xecff mem 0xd9f00000-0xd9f7ffff,0xd9ffc000-0xd9ffffff irq 52 at device 0.1 numa-domain 0 on pci2
ix1: Using MSIX interrupts with 9 vectors
ix1: Ethernet address: xx:xx:xx:xx:xx:xx
ix1: PCI Express Bus: Speed 5.0GT/s Width x8
ix1: netmap queues/slots: TX 8/2048, RX 8/2048
pcib3: <PCI-PCI bridge> irq 16 at device 17.0 numa-domain 0 on pci0
pci3: <PCI bus> numa-domain 0 on pcib3
pci0: <simple comms> at device 22.0 (no driver attached)
pci0: <simple comms> at device 22.1 (no driver attached)
ehci0: <Intel Patsburg USB 2.0 controller> mem 0xdd0fd000-0xdd0fd3ff irq 23 at device 26.0 numa-domain 0 on pci0
usbus0: EHCI version 1.0
usbus0 numa-domain 0 on ehci0
pcib4: <ACPI PCI-PCI bridge> at device 28.0 numa-domain 0 on pci0
pci4: <ACPI PCI bus> numa-domain 0 on pcib4
igb0: <Intel(R) PRO/1000 Network Connection, Version - 2.5.3-k> mem 0xdad00000-0xdadfffff,0xdaff8000-0xdaffbfff irq 16 at device 0.0 numa-domain 0 on pci4
igb0: Using MSIX interrupts with 9 vectors
igb0: Ethernet address: xx:xx:xx:xx:xx:xx
igb0: Bound queue 0 to cpu 0
igb0: Bound queue 1 to cpu 1
igb0: Bound queue 2 to cpu 2
igb0: Bound queue 3 to cpu 3
igb0: Bound queue 4 to cpu 4
igb0: Bound queue 5 to cpu 5
igb0: Bound queue 6 to cpu 6
igb0: Bound queue 7 to cpu 7
igb0: netmap queues/slots: TX 8/1024, RX 8/1024
igb1: <Intel(R) PRO/1000 Network Connection, Version - 2.5.3-k> mem 0xdae00000-0xdaefffff,0xdaffc000-0xdaffffff irq 17 at device 0.1 numa-domain 0 on pci4
igb1: Using MSIX interrupts with 9 vectors
igb1: Ethernet address: xx:xx:xx:xx:xx:xx
igb1: Bound queue 0 to cpu 8
igb1: Bound queue 1 to cpu 9
igb1: Bound queue 2 to cpu 10
igb1: Bound queue 3 to cpu 11
igb1: Bound queue 4 to cpu 0
igb1: Bound queue 5 to cpu 1
igb1: Bound queue 6 to cpu 2
igb1: Bound queue 7 to cpu 3
igb1: netmap queues/slots: TX 8/1024, RX 8/1024
pcib5: <ACPI PCI-PCI bridge> irq 16 at device 28.4 numa-domain 0 on pci0
pci5: <ACPI PCI bus> numa-domain 0 on pcib5
bge0: <Broadcom NetXtreme Gigabit Ethernet, ASIC rev. 0x5720000> mem 0xd50a0000-0xd50affff,0xd50b0000-0xd50bffff,0xd50c0000-0xd50cffff irq 16 at device 0.0 numa-domain 0 on pci5
bge0: APE FW version: NCSI v1.2.37.0
bge0: CHIP ID 0x05720000; ASIC REV 0x5720; CHIP REV 0x57200; PCI-E
miibus0: <MII bus> numa-domain 0 on bge0
brgphy0: <BCM5720C 1000BASE-T media interface> PHY 1 on miibus0
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
bge0: Using defaults for TSO: 65518/35/2048
bge0: Ethernet address: xx:xx:xx:xx:xx:xx
bge1: <Broadcom NetXtreme Gigabit Ethernet, ASIC rev. 0x5720000> mem 0xd50d0000-0xd50dffff,0xd50e0000-0xd50effff,0xd50f0000-0xd50fffff irq 17 at device 0.1 numa-domain 0 on pci5
bge1: APE FW version: NCSI v1.2.37.0
bge1: CHIP ID 0x05720000; ASIC REV 0x5720; CHIP REV 0x57200; PCI-E
miibus1: <MII bus> numa-domain 0 on bge1
brgphy1: <BCM5720C 1000BASE-T media interface> PHY 2 on miibus1
brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
bge1: Using defaults for TSO: 65518/35/2048
bge1: Ethernet address: xx:xx:xx:xx:xx:xx
pcib6: <ACPI PCI-PCI bridge> irq 19 at device 28.7 numa-domain 0 on pci0
pci6: <ACPI PCI bus> numa-domain 0 on pcib6
pcib7: <PCI-PCI bridge> at device 0.0 numa-domain 0 on pci6
pci7: <PCI bus> numa-domain 0 on pcib7
pcib8: <PCI-PCI bridge> at device 0.0 numa-domain 0 on pci7
pci8: <PCI bus> numa-domain 0 on pcib8
pcib9: <PCI-PCI bridge> at device 0.0 numa-domain 0 on pci8
pci9: <PCI bus> numa-domain 0 on pcib9
vgapci0: <VGA-compatible display> mem 0xd4000000-0xd4ffffff,0xdc7fc000-0xdc7fffff,0xdb800000-0xdbffffff irq 19 at device 0.0 numa-domain 0 on pci9
vgapci0: Boot video device
pcib10: <PCI-PCI bridge> at device 1.0 numa-domain 0 on pci7
pci10: <PCI bus> numa-domain 0 on pcib10
ehci1: <Intel Patsburg USB 2.0 controller> mem 0xdd0fe000-0xdd0fe3ff irq 22 at device 29.0 numa-domain 0 on pci0
usbus1: EHCI version 1.0
usbus1 numa-domain 0 on ehci1
pcib11: <PCI-PCI bridge> at device 30.0 numa-domain 0 on pci0
pci11: <PCI bus> numa-domain 0 on pcib11
isab0: <PCI-ISA bridge> at device 31.0 numa-domain 0 on pci0
isa0: <ISA bus> numa-domain 0 on isab0
ahci0: <Intel Patsburg AHCI SATA controller> port 0xdce8-0xdcef,0xdcf8-0xdcfb,0xdcf0-0xdcf7,0xdcfc-0xdcff,0xdcc0-0xdcdf mem 0xdd0ff000-0xdd0ff7ff irq 20 at device 31.2 numa-domain 0 on pci0
ahci0: AHCI v1.30 with 6 3Gbps ports, Port Multiplier not supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich4: <AHCI channel> at channel 4 on ahci0
ahciem0: <AHCI enclosure management bridge> on ahci0
pcib12: <ACPI Host-PCI bridge> numa-domain 0 on acpi0
pci12: <ACPI PCI bus> numa-domain 0 on pcib12
pcib13: <ACPI Host-PCI bridge> on acpi0
pci13: <ACPI PCI bus> on pcib13
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xc7fff,0xec000-0xeffff on isa0
ppc0: cannot reserve I/O port range
est0: <Enhanced SpeedStep Frequency Control> on cpu0
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est0 attach returned 6
est1: <Enhanced SpeedStep Frequency Control> on cpu1
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est1 attach returned 6
est2: <Enhanced SpeedStep Frequency Control> on cpu2
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est2 attach returned 6
est3: <Enhanced SpeedStep Frequency Control> on cpu3
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est3 attach returned 6
est4: <Enhanced SpeedStep Frequency Control> on cpu4
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est4 attach returned 6
est5: <Enhanced SpeedStep Frequency Control> on cpu5
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est5 attach returned 6
est6: <Enhanced SpeedStep Frequency Control> on cpu6
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est6 attach returned 6
est7: <Enhanced SpeedStep Frequency Control> on cpu7
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est7 attach returned 6
est8: <Enhanced SpeedStep Frequency Control> on cpu8
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f3900001c00
device_attach: est8 attach returned 6
est9: <Enhanced SpeedStep Frequency Control> on cpu9
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est9 attach returned 6
est10: <Enhanced SpeedStep Frequency Control> on cpu10
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est10 attach returned 6
est11: <Enhanced SpeedStep Frequency Control> on cpu11
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 1f6200001c00
device_attach: est11 attach returned 6
mfi0: 1288 (541774932s/0x0020/info) - Shutdown command received from host
mfi0: 1289 (boot + 3s/0x0020/info) - Firmware initialization started (PCI ID 0073/1000/1f51/1028)
mfi0: 1290 (boot + 3s/0x0020/info) - Firmware version 2.121.14-3416
mfi0: 1291 (boot + 5s/0x0020/info) - Package version 20.13.0-0007
mfi0: 1292 (boot + 5s/0x0020/info) - Board Revision A06
mfi0: 1293 (boot + 31s/0x0004/info) - Enclosure PD 20(c None/p1) communication restored
mfi0: 1294 (boot + 31s/0x0002/info) - Inserted: Encl PD 20
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
nvme cam probe device init
mfisyspd0 numa-domain 0 on mfi0
mfisyspd0: 286102MB (585937500 sectors) SYSPD volume (deviceid: 0)
mfisyspd0: SYSPD volume attached
mfisyspd1 numa-domain 0 on mfi0
mfisyspd1: 286102MB (585937500 sectors) SYSPD volume (deviceid: 1)
mfisyspd1: SYSPD volume attached
mfi0: 1295 (boot + 31s/0x0002/info) - Inserted: PD 20(c None/p1) Info: enclPd=20, scsiType=d, portMap=00, sasAddr=5d81f060f497d900,0000000000000000
mfi0: 1296 (boot + 31s/0x0002/info) - Inserted: PD 00(e0x20/s0)
mfi0: 1297 (boot + 31s/0x0002/info) - Inserted: PD 00(e0x20/s0) Info: enclPd=20, scsiType=0, portMap=00, sasAddr=500003957801561a,0000000000000000
mfi0: 1298 (boot + 31s/0x0002/info) - Inserted: PD 01(e0x20/s1)
mfi0: 1299 (boot + 31s/0x0002/info) - Inserted: PD 01(e0x20/s1) Info: enclPd=20, scsiType=0, portMap=01, sasAddr=50000395780155f6,0000000000000000
mfi0: 1300 (541774984s/0x0020/info) - Time established as 03/02/17 13:03:04; (43 seconds since power on)
mfi0: 1301 (541775071s/0x0020/info) - Host driver is loaded and operational
usbus0: 480Mbps High Speed USB v2.0
usbus1: 480Mbps High Speed USB v2.0
ugen0.1: <Intel> at usbus0
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
ugen1.1: <Intel> at usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ses0 at ahciem0 bus 0 scbus5 target 0 lun 0
ses0: <AHCI SGPIO Enclosure 1.00 0001> SEMB S-E-S 2.00 device
ses0: SEMB SES Device
SMP: AP CPU #1 Launched!
SMP: AP CPU #10 Launched!
SMP: AP CPU #8 Launched!
SMP: AP CPU #11 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #9 Launched!
SMP: AP CPU #7 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #6 Launched!
SMP: AP CPU #4 Launched!
SMP: AP CPU #5 Launched!
cd0 at ahcich4 bus 0 scbus4 target 0 lun 0
cd0: <HL-DT-ST DVD-ROM DU90N D300> Removable CD-ROM SCSI device
cd0: Serial Number KMJE3BL2145
cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Timecounter "TSC-low" frequency 1250026658 Hz quality 1000
Trying to mount root from zfs:zroot/ROOT/default []...
Root mount waiting for: usbus1 usbus0
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
Root mount waiting for: usbus1 usbus0
ugen0.2: <vendor 0x8087> at usbus0
uhub2: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus0
ugen1.2: <vendor 0x8087> at usbus1
uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus1
Root mount waiting for: usbus1 usbus0
uhub2: 6 ports with 6 removable, self powered
uhub3: 8 ports with 8 removable, self powered
ugen0.3: <no manufacturer> at usbus0
uhub4: <no manufacturer Gadget USB HUB, class 9/0, rev 2.00/0.00, addr 3> on usbus0
Root mount waiting for: usbus0
uhub4: 6 ports with 6 removable, self powered
ugen0.4: <Avocent> at usbus0
ukbd0: <Keyboard> on usbus0
kbd2 at ukbd0
bridge0: Ethernet address: xx:xx:xx:xx:xx:xx
ix0: link state changed to UP
ix0: link state changed to DOWN
ix0: link state changed to UP
ix1: link state changed to UP
bge0: link state changed to DOWN
ix0: promiscuous mode enabled
bridge0: link state changed to UP
ix1: promiscuous mode enabled
ix0: link state changed to DOWN
ix1: link state changed to DOWN
ix0: link state changed to UP
ix1: link state changed to UP
ums0: <Mouse> on usbus0
ums0: 3 buttons and [Z] coordinates ID=0
ums1: <Mouse REL> on usbus0
ums1: 3 buttons and [XYZ] coordinates ID=0
pflog0: promiscuous mode enabled
bge0: link state changed to UP
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
mfi0: 1302 (541911600s/0x0020/WARN) - Patrol Read can't be started, as PDs are either not ONLINE, or are in a VD with an active process, or are in an excluded VD
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
bridge0: promiscuous mode enabled
bridge0: promiscuous mode disabled
ix1: link state changed to DOWN
ix1: link state changed to UP
ix1: link state changed to DOWN
ix1: link state changed to UP
ix0: link state changed to DOWN
ix0: link state changed to UP
ix0: link state changed to DOWN
ix0: link state changed to UP
[zone: pf frag entries] PF frag entries limit reached
mfi0: 1303 (542516400s/0x0020/WARN) - Patrol Read can't be started, as PDs are either not ONLINE, or are in a VD with an active process, or are in an excluded VD
ix0: link state changed to DOWN
ix0: link state changed to UP
ix1: link state changed to DOWN
ix1: link state changed to UP
We have also faced such a problem. We do not use if_bridge, in our case the reason of the problem was determined as overheating of the card, after adding additional coolers to the server the problem is gone. (In reply to Andrey V. Elsukov from comment #7) We did not have those issues with 10.1. But I keep your advise in mind. I currently try to upgrade all those firmware-packages. Unfortunately the Dell Lifecycle controller is currently not able to upgrade the INTEL X520 firmware from 15.0.28 to 17.5.10. This seems to be a known issue. I will investigate that and report back later. So long, Aiko (In reply to Aiko Barz from comment #8) The Lifecycle method does not work at the moment. But I installed the firmware version 16.5.20 from 05/12/2016. That firmware was offered as a Redhat shell script package. Offtopic: I booted from a Centos ISO with a virtually mounted CD drive through the iDRAC web console hundreds of kilometers away from the physical machine. And it worked. Always weird and amazing. So let's see, what happens next… So long, Aiko One (possibly stupid) question: ifconfig does not list LRO. That means, it is not enabled on those cards. Right? sysctl lists some LRO values like lro_flushed and lro_queued. They are all zero though. I disabled TSO4 and TSO6 before opening my first request, which was listed by ifconfig. This is how it looks like now: $ ifconfig ix0 ix0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=e400bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6> ether ..:..:..:..:..:.. nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (10Gbase-SR <full-duplex>) status: active I just ask because there were some similar problems with Linux. The cards stopped doing TX after a couple of days. That is why I explicitly ask. Kind regards, Aiko I installed the latest firmware (17.5.10) on those Intel X520 10G cards today. Dell replied within 10 minutes(!) with a bootable ISO image, which was able to do those nasty firmware updates incrementally(!) and automatically. This is a known bug to them. I also had to do a cold reset to detect the newly installed firmware. The Dell technician actually was quite optimistic that my other problems might go away as well. I will tell you in a week. ;) Have a nice weekend, Aiko I am sorry… We had a spontaneous failover[1] at Saturday once more. Since I installed the latest firmware blobs for every piece of hardware, what can I do now? I don't find anything in the logs. It just stops passing traffic… So long, Aiko [1]: The failover gets handled by a different system. Those two bridges act alone without knowledge of each other. There's a uma-related regression in FreeBSD 11 that can result in somewhat similar symptoms. For details see #209680. You could check the vmstat -z output and try the patch: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209680#c2 which reverts some of the problematic commits (only in the tcp code, though). Apparently some of the other uma-consumers are affected as well: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209680#c10 and I'm wondering if if_bridge is one of them. You could try if it makes a difference if you let if_bridge set the UMA_ZONE_NOFREE flag and preallocate a couple of items. From your report it isn't obvious to me that your problem is uma-related so if you have other leads you may want to investigate them first. Maybe nothing you like to hear, but I tried the pufferfish. It is running for some days now without issues so far and it handles the workload quite well. We cannot utilize the full 10Gbit/s at the moment anyway because of other bottlenecks. So you might close the bug report because maybe it was just us. I don't know. Nevertheless I needed a solution right now. I'm sorry. Kind regards, Aiko See https://lists.freebsd.org/pipermail/freebsd-stable/2017-August/087723.html for another report which looks similar. Created attachment 185916 [details]
Set UMA_ZONE_NOFREE and preallocate zone item(s)
I've been using the attached workaround in ElectroBSD for a while
now and it seems to help (when combined with the other workarounds).
Hi there, we applied Fabian's patches for TCP and if_bridge (thanks!) but unfortunately the production server's jails came to a halt again last night. Depending on your point of view at a fortunate time of day (2am). The customers were hardly affected but the operator on duty might see that differently. ;-) Uptime of the system was roughly 10 days. The colleague was too tired when the alarm woke him to think of trying things like `/etc/rc.d/netif restart` or similar, so he just rebooted the system. Is there any way we could help to nail this and fix it? Some suggestions on a suitable course of action at the next incident would be greatly appreciated. Kind regards, Patrick I'm afraid I don't have any ideas at this point. I'd like an ix driver expert to take a look at this so I've cced erj. (In reply to Kristof Provost from comment #18) I don't really have any, either. :p @Fabian, can you report your system configuration (network card, OS, boot dmesg, driver versions), too? I'm going to assume it doesn't exactly match Aiko's. Created attachment 186372 [details] ElectroBSD r323013-16c8587cb1b5 dmesg on HP Proliant TL;DR: I'm attaching a dmesg output as requested but as it looks like the problems are unrelated the system differences are probably irrelevant. I currently don't use ix devices. As mentioned in comment #13 it's not obvious to me that Aiko's issue is uma related and I mainly mentioned the patches as the symptoms look somewhat similar and no other suggestions were made at the time. The fact that the uma patches didn't help on the punkt.de system(s) seems to indicate that it's another issue as well (but maybe the same as Aiko's). On my systems the uma regression resulted in established tcp connections getting terminated after a while. It could take days for the problem to occur so I've mostly noticed it with ssh connections. Terminated connections could be reestablished without restarting any interfaces and the problem didn't affect all connections at the same time either. I've created the if_bridge patches after noticing that ssh connections on a bhyve host to the bhyve vms got terminated a couple of times in a similar fashion. At the time the bhyve host and vms were running ElectroBSD based on FreeBSD stable/11 from March 2017 and already contained the other tcp regression fixes. The bhyve host is a HP DL120 G6 using a bridge1 between tap devices for vms with access to the Internet and bridge0 between tap devices from vms without access to the Internet. pf is being used to nat on bge0 to bridge1. After applying the if_bridge patches the local ssh connections to the bhyve vms stayed up so I haven't looked into this any further. I also didn't verify that removing the if_bridge patches reintroduces the problem again to confirm that there's indeed a causation (and the problem wasn't fixed by syncing with stable/11). Hi, all, to recapitulate, our symptoms are * no traffic reaching the jails and their epair(4) interfaces across the bridge, anymore * same for outbound traffic from the jails to the wire * network stack inside the jails looks fine, jail can reach it's own addresses on the epair(4) * traffic to and from the host is just fine, too * network connections cannot be re-established * ifconfig down/up does not help We will put igb(4) based network adapters into our hosts on the weekend and rewire the network connections accordingly. Just a desperate try ... Kind regards, Patrick (In reply to punkt.de Hosting Team from comment #21) That should tell us if the problem is specific to the ix cards, or not. If it's not it's most likely a bridge issue. It might be worth taking a look at what happens in the bridge code once it's in that state: sudo dtrace -n fbt:if_bridge:: That looks like this, on my nearly idle bridge: dtrace: description 'fbt:if_bridge::' matched 108 probes CPU ID FUNCTION:NAME 6 63915 bridge_transmit:entry 6 63814 bridge_broadcast:entry 6 63824 bridge_enqueue:entry 6 63825 bridge_enqueue:return 6 63824 bridge_enqueue:entry 6 63825 bridge_enqueue:return 6 63815 bridge_broadcast:return 6 63916 bridge_transmit:return 3 63915 bridge_transmit:entry ... Hey guys, it hit us again in production. Saturday night, 4am. Sorry - I missed that DTrace diagnose, but I can add two things at least: We are using igb(4) interfaces in that machine, not ix(4), so it seems not to be interface related. Doesn't come as a big surprise to me, because that would have been a gross layer violation. Again: the host system is communicating just fine! I did a `netstat -m` while the bridge was wedged as suggested by gnn. Doesn't look suspicious at all to me, but then I'm not a kernel developer. Please see attachment. What I am going to do now, probably: Set up an isolated test environment. Fire up some dozen jails or so. Generate artificial traffic through the bridge IF. A gigabit sustained bandwidth ... Wait for the bug to be triggered. Need to talk to my colleagues, tomorrow, but this will probably be our course of action. I can offer ssh access to that isolated system to anyone who requests it! Kind regards Patrick Created attachment 187001 [details]
`netstat -m` output while the bridge is in wedged state
Hey guys, I am trying to reproduce the problem on a not yet productive server. Un(?)fortunately this system is rock-stable for almost two weeks now. I just noticed that this test system runs 11.1p1 while the problematic server runs 11.0p10 - duh! So ... I'll attach a diff of if_bridge.c of the two releases. Looks like the areas changed cover locking, handling of fragments and handling of mbufs for fragments. Any qualified comment on what might have caused the problem in 11.0 that changed in 11.1? Thanks! Patrick Created attachment 187326 [details]
Diff of if_bridge.c for 11.0 and 11.1
(In reply to punkt.de Hosting Team from comment #25) I'd try reverting this: https://svnweb.freebsd.org/base?view=revision&revision=313050 and seeing if you can reproduce it then. I do not understand how it'd trigger this, but the other major commit (https://svnweb.freebsd.org/base?view=revision&revision=r306289) should only happen if you've got a filtering bridge and that's a fix for an mbuf leak. This doesn't look like an mbuf leak. That said, considering that 11.0 is going out of support in five days I'd recommend just upgrading the box to 11.1. It'll have to be done soon anyway. I guess someone with the necessary superpowers should close this. Correct? Kind regards, Patrick Given that there's been no further reports and that all versions mentioned here are long since out of support, yeah, we should just close this. The locking in the bridge code has also been completely changed, so even if something like this happens again it'd almost certainly be a different bug. |