kern/165903: mbuf leak

Jeremy Chadwick jdc at koitsu.org
Sun Apr 14 00:29:21 UTC 2013


On Sun, Apr 14, 2013 at 12:02:56AM +0000, Chris Forgeron wrote:
> Interesting about the drivers - I will look into that tomorrow, I could be on an older version. I started down that path a little while ago, but when pkng wasn't quite ready, I just reverted to the old ways/ommands that seemed to work. 
> 
> Here is the dump of the requested commands. I will point out the most interesting one first: dmsg
> 
> It's flooded with:
> 
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> arp: 43:05:43:05:00:00 is multicast
> 
> Checking an older 9.0-STABLE from july, I see the same message flood in dmesg, but these machines are not exhausting mbuf.
> 
> Perhaps there is a leak in handling this condition?
> 
> Please note: I will also have this problem with the vmware VMXNET3 driver using vmware's official tools, so it's not just em at fault. 
> 
> Here is the rest. I left pciconf verbose
> 
> Thanks. 
> 
> 
> root at test:/usr/home/aatech # sysctl -a dev.em.0 
> dev.em.0.%desc: Intel(R) PRO/1000 Legacy Network Connection 1.0.5
> dev.em.0.%driver: em
> dev.em.0.%location: slot=0 function=0 handle=\_SB_.PCI0.P2P0.S1F0
> dev.em.0.%pnpinfo: vendor=0x8086 device=0x100f subvendor=0x15ad subdevice=0x0750 class=0x020000
> dev.em.0.%parent: pci2
> dev.em.0.nvm: -1
> dev.em.0.rx_int_delay: 0
> dev.em.0.tx_int_delay: 66
> dev.em.0.rx_abs_int_delay: 66
> dev.em.0.tx_abs_int_delay: 66
> dev.em.0.rx_processing_limit: 100
> dev.em.0.flow_control: 3
> dev.em.0.mbuf_alloc_fail: 0
> dev.em.0.cluster_alloc_fail: 0
> dev.em.0.dropped: 0
> dev.em.0.tx_dma_fail: 0
> dev.em.0.tx_desc_fail1: 0
> dev.em.0.tx_desc_fail2: 0
> dev.em.0.rx_overruns: 0
> dev.em.0.watchdog_timeouts: 0
> dev.em.0.device_control: 1086325321
> dev.em.0.rx_control: 32770
> dev.em.0.fc_high_water: 47104
> dev.em.0.fc_low_water: 45604
> dev.em.0.fifo_workaround: 0
> dev.em.0.fifo_reset: 0
> dev.em.0.txd_head: 23
> dev.em.0.txd_tail: 24
> dev.em.0.rxd_head: 138
> dev.em.0.rxd_tail: 137
> dev.em.0.mac_stats.excess_coll: 0
> dev.em.0.mac_stats.single_coll: 0
> dev.em.0.mac_stats.multiple_coll: 0
> dev.em.0.mac_stats.late_coll: 0
> dev.em.0.mac_stats.collision_count: 0
> dev.em.0.mac_stats.symbol_errors: 0
> dev.em.0.mac_stats.sequence_errors: 0
> dev.em.0.mac_stats.defer_count: 0
> dev.em.0.mac_stats.missed_packets: 0
> dev.em.0.mac_stats.recv_no_buff: 0
> dev.em.0.mac_stats.recv_undersize: 0
> dev.em.0.mac_stats.recv_fragmented: 0
> dev.em.0.mac_stats.recv_oversize: 0
> dev.em.0.mac_stats.recv_jabber: 0
> dev.em.0.mac_stats.recv_errs: 0
> dev.em.0.mac_stats.crc_errs: 0
> dev.em.0.mac_stats.alignment_errs: 0
> dev.em.0.mac_stats.coll_ext_errs: 0
> dev.em.0.mac_stats.xon_recvd: 0
> dev.em.0.mac_stats.xon_txd: 0
> dev.em.0.mac_stats.xoff_recvd: 0
> dev.em.0.mac_stats.xoff_txd: 0
> dev.em.0.mac_stats.total_pkts_recvd: 73008
> dev.em.0.mac_stats.good_pkts_recvd: 49029
> dev.em.0.mac_stats.bcast_pkts_recvd: 0
> dev.em.0.mac_stats.mcast_pkts_recvd: 0
> dev.em.0.mac_stats.rx_frames_64: 0
> dev.em.0.mac_stats.rx_frames_65_127: 45990
> dev.em.0.mac_stats.rx_frames_128_255: 2446
> dev.em.0.mac_stats.rx_frames_256_511: 592
> dev.em.0.mac_stats.rx_frames_512_1023: 1
> dev.em.0.mac_stats.rx_frames_1024_1522: 0
> dev.em.0.mac_stats.good_octets_recvd: 3809187
> dev.em.0.mac_stats.good_octets_txd: 441363
> dev.em.0.mac_stats.total_pkts_txd: 3497
> dev.em.0.mac_stats.good_pkts_txd: 3497
> dev.em.0.mac_stats.bcast_pkts_txd: 0
> dev.em.0.mac_stats.mcast_pkts_txd: 0
> dev.em.0.mac_stats.tx_frames_64: 418
> dev.em.0.mac_stats.tx_frames_65_127: 2678
> dev.em.0.mac_stats.tx_frames_128_255: 131
> dev.em.0.mac_stats.tx_frames_256_511: 213
> dev.em.0.mac_stats.tx_frames_512_1023: 49
> dev.em.0.mac_stats.tx_frames_1024_1522: 8
> dev.em.0.mac_stats.tso_txd: 0
> dev.em.0.mac_stats.tso_ctx_fail: 0
> dev.em.0.wake: 0
> 
> 
> 
> root at test:/usr/home/aatech # cat pciconf.txt
> hostb0 at pci0:0:0:0:      class=0x060000 card=0x197615ad chip=0x71908086 rev=0x01 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '440BX/ZX/DX - 82443BX/ZX/DX Host bridge'
>     class      = bridge
>     subclass   = HOST-PCI
> pcib1 at pci0:0:1:0:       class=0x060400 card=0x00000000 chip=0x71918086 rev=0x01 hdr=0x01
>     vendor     = 'Intel Corporation'
>     device     = '440BX/ZX/DX - 82443BX/ZX/DX AGP bridge'
>     class      = bridge
>     subclass   = PCI-PCI
> isab0 at pci0:0:7:0:       class=0x060100 card=0x197615ad chip=0x71108086 rev=0x08 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '82371AB/EB/MB PIIX4 ISA'
>     class      = bridge
>     subclass   = PCI-ISA
> atapci0 at pci0:0:7:1:     class=0x01018a card=0x197615ad chip=0x71118086 rev=0x01 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '82371AB/EB/MB PIIX4 IDE'
>     class      = mass storage
>     subclass   = ATA
>     bar   [20] = type I/O Port, range 32, base 0x10c0, size 16, enabled
> none0 at pci0:0:7:3:       class=0x068000 card=0x197615ad chip=0x71138086 rev=0x08 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '82371AB/EB/MB PIIX4 ACPI'
>     class      = bridge
> none1 at pci0:0:7:7:       class=0x088000 card=0x074015ad chip=0x074015ad rev=0x10 hdr=0x00
>     vendor     = 'VMware'
>     device     = 'Virtual Machine Communication Interface'
>     class      = base peripheral
>     bar   [10] = type I/O Port, range 32, base 0x1080, size 64, enabled
>     bar   [14] = type Memory, range 64, base 0xd0000000, size 8192, enabled
>     cap 05[40] = MSI supports 1 message, 64 bit 
>     cap 11[58] = MSI-X supports 2 messages in map 0x14
> vgapci0 at pci0:0:15:0:    class=0x030000 card=0x040515ad chip=0x040515ad rev=0x00 hdr=0x00
>     vendor     = 'VMware'
>     device     = 'SVGA II Adapter'
>     class      = display
>     subclass   = VGA
>     bar   [10] = type I/O Port, range 32, base 0x10d0, size 16, enabled
>     bar   [14] = type Prefetchable Memory, range 32, base 0xd8000000, size 67108864, enabled
>     bar   [18] = type Memory, range 32, base 0xd0800000, size 8388608, enabled
>     cap 09[40] = vendor (length 0)
> mpt0 at pci0:0:16:0:       class=0x010000 card=0x197615ad chip=0x00301000 rev=0x01 hdr=0x00
>     vendor     = 'LSI Logic / Symbios Logic'
>     device     = '53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI'
>     class      = mass storage
>     subclass   = SCSI
>     bar   [10] = type I/O Port, range 32, base 0x1400, size 256, enabled
>     bar   [14] = type Memory, range 64, base 0xd0040000, size 131072, enabled
>     bar   [1c] = type Memory, range 64, base 0xd0020000, size 131072, enabled
> pcib2 at pci0:0:17:0:      class=0x060401 card=0x079015ad chip=0x079015ad rev=0x02 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI bridge'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x079015ad
> pcib3 at pci0:0:21:0:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib4 at pci0:0:21:1:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib5 at pci0:0:21:2:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib6 at pci0:0:21:3:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib7 at pci0:0:21:4:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib8 at pci0:0:21:5:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib9 at pci0:0:21:6:      class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib10 at pci0:0:21:7:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib11 at pci0:0:22:0:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib12 at pci0:0:22:1:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib13 at pci0:0:22:2:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib14 at pci0:0:22:3:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib15 at pci0:0:22:4:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib16 at pci0:0:22:5:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib17 at pci0:0:22:6:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib18 at pci0:0:22:7:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib19 at pci0:0:23:0:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib20 at pci0:0:23:1:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib21 at pci0:0:23:2:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib22 at pci0:0:23:3:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib23 at pci0:0:23:4:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib24 at pci0:0:23:5:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib25 at pci0:0:23:6:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib26 at pci0:0:23:7:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib27 at pci0:0:24:0:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib28 at pci0:0:24:1:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib29 at pci0:0:24:2:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib30 at pci0:0:24:3:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib31 at pci0:0:24:4:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib32 at pci0:0:24:5:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib33 at pci0:0:24:6:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> pcib34 at pci0:0:24:7:     class=0x060400 card=0x07a015ad chip=0x07a015ad rev=0x01 hdr=0x01
>     vendor     = 'VMware'
>     device     = 'PCI Express Root Port'
>     class      = bridge
>     subclass   = PCI-PCI
>     cap 0d[40] = PCI Bridge card=0x07a015ad
>     cap 01[48] = powerspec 3  supports D0 D3  current D0
>     cap 10[50] = PCI-Express 2 root port slot max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[8c] = MSI supports 1 message, 64 bit, vector masks 
> em0 at pci0:2:0:0: class=0x020000 card=0x075015ad chip=0x100f8086 rev=0x01 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '82545EM Gigabit Ethernet Controller (Copper)'
>     class      = network
>     subclass   = ethernet
>     bar   [10] = type Memory, range 64, base 0xd1020000, size 131072, enabled
>     bar   [18] = type Memory, range 64, base 0xd1000000, size 65536, enabled
>     bar   [20] = type I/O Port, range 32, base 0x2000, size 64, enabled
>     cap 01[dc] = powerspec 2  supports D0 D3  current D0
>     cap 07[e4] = PCI-X 64-bit supports 133MHz, 2048 burst read, 1 split transaction
> uhci0 at pci0:2:2:0:       class=0x0c0300 card=0x197615ad chip=0x077415ad rev=0x00 hdr=0x00
>     vendor     = 'VMware'
>     device     = 'USB1.1 UHCI Controller'
>     class      = serial bus
>     subclass   = USB
>     bar   [20] = type I/O Port, range 32, base 0x2040, size 32, enabled
> ehci0 at pci0:2:3:0:       class=0x0c0320 card=0x077015ad chip=0x077015ad rev=0x00 hdr=0x00
>     vendor     = 'VMware'
>     device     = 'USB2 EHCI Controller'
>     class      = serial bus
>     subclass   = USB
>     bar   [10] = type Memory, range 32, base 0xd1010000, size 4096, enabled
> none2 at pci0:3:0:0:       class=0x020000 card=0x07b015ad chip=0x07b015ad rev=0x01 hdr=0x00
>     vendor     = 'VMware'
>     device     = 'VMXNET3 Ethernet Controller'
>     class      = network
>     subclass   = ethernet
>     bar   [10] = type Memory, range 32, base 0xd2404000, size 4096, enabled
>     bar   [14] = type Memory, range 32, base 0xd2403000, size 4096, enabled
>     bar   [18] = type Memory, range 32, base 0xd2400000, size 8192, enabled
>     bar   [1c] = type I/O Port, range 32, base 0x4000, size 16, enabled
>     cap 01[40] = powerspec 3  supports D0 D1 D2 D3  current D0
>     cap 10[48] = PCI-Express 2 endpoint max data 128(128) link x32(x32)
>                  speed 5.0(5.0)
>     cap 05[84] = MSI supports 1 message, 64 bit 
>     cap 11[9c] = MSI-X supports 25 messages in map 0x18
> ecap 0003[100] = Serial 1 ff5650003a0d80fe

The multicast messages are coming from src/sys/netinet/if_ether.c.
Reviewing that code:

http://svnweb.freebsd.org/base/stable/9/sys/netinet/if_ether.c

r241992 catches my eye, referring to the sysctl named
net.link.ether.inet.allow_multicast, which defaults to 0.  Note
the commit message, however:

Merge 240073 from head:
  Provide a sysctl switch that allows to install ARP entries
  with multicast bit set. FreeBSD refuses to install such
  entries since 9.0, and this broke installations running
  Microsoft NLB, which are violating standards.

  Tested by:    Tarasov Oleg <oleg_tarasov sg-tea.com>

The relevant logging line code is:

549         if (allow_multicast == 0 && ETHER_IS_MULTICAST(ar_sha(ah))) {
550                 log(LOG_NOTICE, "arp: %*D is multicast\n",
551                     ifp->if_addrlen, (u_char *)ar_sha(ah), ":");
552                 return;
553         }

Where allow_multicast correlates directly with the aforementioned
sysctl, and ETHER_IS_MULTICAST is a macro in src/sys/net/ethernet.h

 73 #define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */

I'm not familiar with what ar_sha() does, but the macro checks to see if
the dereferenced value has bit 0 set or not.

I do not think setting net.link.ether.inet.allow_multicast=1 would
alleviate the mbuf issue, based on the code I've looked at.  I do see
some code in src/sys/net/if_ethersubr.c that relates to mbufs and
ETHER_IS_MULTICAST() conditions, however.

I'm CC'ing the committer, Gleb Smirnoff, who might have some more
insights on what's going on here, where in the kernel the leak may be,
and/or how to track it down.

-- 
| Jeremy Chadwick                                   jdc at koitsu.org |
| UNIX Systems Administrator                http://jdc.koitsu.org/ |
| Mountain View, CA, US                                            |
| Making life hard for others since 1977.             PGP 4BD6C0CB |


More information about the freebsd-stable mailing list