From owner-freebsd-bugs@freebsd.org Mon Oct 2 23:46:44 2017 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D999E2A4EE for ; Mon, 2 Oct 2017 23:46:44 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0BC7A802AF for ; Mon, 2 Oct 2017 23:46:44 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v92NkhK7032051 for ; Mon, 2 Oct 2017 23:46:43 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 222744] Issues with Intel EM(4) drivers and iflib updates working with netmap Date: Mon, 02 Oct 2017 23:46:44 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: mshirk@daemon-security.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Oct 2017 23:46:44 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D222744 Bug ID: 222744 Summary: Issues with Intel EM(4) drivers and iflib updates working with netmap Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: mshirk@daemon-security.com Tested on 12-CURRENT=20 pciconf em0@pci0:1:0:0: class=3D0x020000 card=3D0x115e8086 chip=3D0x105e8086 rev=3D= 0x06 hdr=3D0x00 vendor =3D 'Intel Corporation'=20=20 device =3D '82571EB Gigabit Ethernet Controller'=20=20 class=3D network=20=20 subclass=3D ethernet I wanted to document this issue as things are being updated for the "iflib" improvements in CURRENT. Up until the following commits, doing things with netmap would cause a kernel panic on this intel nic. https://reviews.freebsd.org/D12140 After this commit, it appeared that I could put this Intel 82571EB NIC into netmap mode with something like tcpdump and see packet data: tcpdump -i netmap:em0 -nns 0 However, tcpdump only logs 1024 packets, and then just stops logging packet= s. I tested with another application that puts the interface in netmap mode (lb = from the netmap github repo) and it also load balances until it forwards 1024 packets and stops forwarding. In fact, when running the lb app again, and hitting +C the box panicked. 90% of the time I get a kernel panic, especially if I output the packet data to STDOUT. If I do something like the following, tcpdump will never finish as the count will never reach 1025.=20 tcpdump -i netmap:em0 -n -c 1025=20 truss output from the pid for tcpdump: poll({ 3/POLLIN },1,1000) =3D 0 (0x0) ... Run the same thing again, there are also these interesting NULL frames inserted, this second run lead to a panic: poll({ 3/POLLIN },1,1000)=3D 1 (0x1)=20 write(1,"23:41:37.192324 00:00:00:00:00:0"...,122) =3D 122 (0x7a)=20=20 write(1,"\t0x0000: 0000 0000 0000 0000 0"...,68) =3D 68 (0x44)=20 write(1,"\t0x0010: 0000 0000 0000 0000 0"...,68) =3D 68 (0x44)=20 write(1,"\t0x0020: 0000 0000 0000 0000 0"...,68) =3D 68 (0x44)=20 write(1,"\t0x0030: 0000 0000 0000 0000 0"...,68) =3D 68 (0x44)=20 write(1,"\t0x0040: 0000 0000 0000 0000 0"...,68) =3D 68 (0x44)=20 write(1,"\t0x0050: 0000 "...,54) =3D 54 (0x36)=20 poll({ 3/POLLIN },1,1000)=3D 1 (0x1)=20 write(1,"23:41:37.218808 IP xx.xxx.xxx.xx"...,119) =3D 119 (0x77)=20=20 poll({ 3/POLLIN },1,1000)=3D 1 (0x1) I am working on getting a textdump of the panic, but the backtrace was the following: em_isc_rxd_pkt_get() at em_isc_rxd_pkt_get+0xf1 iflib_netmap_rxsysnc() at iflib_netmap_rxsync+0x235 netmap_poll() at netmap_poll+0x79c freebsd_netmap_poll() at freebsd_netmap_poll+0x32 devfs_poll_f() at devfs_poll_f+0x7f systl for hw.em and dev.em.0 hw.em.max_interrupt_rate: 8000=20=20 hw.em.eee_setting: 1 hw.em.rx_process_limit: -1 hw.em.sbp: 1=20=20 hw.em.smart_pwr_down: 0 hw.em.rx_abs_int_delay: 66 hw.em.tx_abs_int_delay: 66 hw.em.rx_int_delay: 0=20=20 hw.em.tx_int_delay: 66=20 hw.em.disable_crc_stripping: 0=20 dev.em.0.wake: 0=20 dev.em.0.interrupts.rx_overrun: 0=20=20 dev.em.0.interrupts.rx_desc_min_thresh: 0 dev.em.0.interrupts.tx_queue_min_thresh: 0=20=20 dev.em.0.interrupts.tx_queue_empty: 0=20 dev.em.0.interrupts.tx_abs_timer: 0 dev.em.0.interrupts.tx_pkt_timer: 0 dev.em.0.interrupts.rx_abs_timer: 0 dev.em.0.interrupts.rx_pkt_timer: 23343=20=20 dev.em.0.interrupts.asserts: 71321923=20 dev.em.0.mac_stats.tso_ctx_fail: 0=20 dev.em.0.mac_stats.tso_txd: 0 dev.em.0.mac_stats.tx_frames_1024_1522: 0 dev.em.0.mac_stats.tx_frames_512_1023: 0=20 dev.em.0.mac_stats.tx_frames_256_511: 0=20=20 dev.em.0.mac_stats.tx_frames_128_255: 0=20=20 dev.em.0.mac_stats.tx_frames_65_127: 0 dev.em.0.mac_stats.tx_frames_64: 0=20 dev.em.0.mac_stats.mcast_pkts_txd: 0=20=20 dev.em.0.mac_stats.bcast_pkts_txd: 0=20=20 dev.em.0.mac_stats.good_pkts_txd: 0 dev.em.0.mac_stats.total_pkts_txd: 0=20=20 dev.em.0.mac_stats.good_octets_txd: 0=20 dev.em.0.mac_stats.good_octets_recvd: 175021103382 dev.em.0.mac_stats.rx_frames_1024_1522: 110020952=20 dev.em.0.mac_stats.rx_frames_512_1023: 3556274=20 dev.em.0.mac_stats.rx_frames_256_511: 4759999=20=20 dev.em.0.mac_stats.rx_frames_128_255: 9906052=20=20 dev.em.0.mac_stats.rx_frames_65_127: 20994339=20=20 dev.em.0.mac_stats.rx_frames_64: 32014796 dev.em.0.mac_stats.mcast_pkts_recvd: 7805 dev.em.0.mac_stats.bcast_pkts_recvd: 10=20=20 dev.em.0.mac_stats.good_pkts_recvd: 181252412=20=20 dev.em.0.mac_stats.total_pkts_recvd: 181878781=20 dev.em.0.mac_stats.xoff_txd: 0=20=20 dev.em.0.mac_stats.xoff_recvd: 0 dev.em.0.mac_stats.xon_txd: 0 dev.em.0.mac_stats.xon_recvd: 0=20 dev.em.0.mac_stats.coll_ext_errs: 0 dev.em.0.mac_stats.alignment_errs: 0=20=20 dev.em.0.mac_stats.crc_errs: 0=20=20 dev.em.0.mac_stats.recv_errs: 0=20 dev.em.0.mac_stats.recv_jabber: 0=20=20 dev.em.0.mac_stats.recv_oversize: 0 dev.em.0.mac_stats.recv_fragmented: 0=20 dev.em.0.mac_stats.recv_undersize: 0=20=20 dev.em.0.mac_stats.recv_no_buff: 126=20=20 dev.em.0.mac_stats.missed_packets: 626369 dev.em.0.mac_stats.defer_count: 0=20=20 dev.em.0.mac_stats.sequence_errors: 0=20 dev.em.0.mac_stats.symbol_errors: 0 dev.em.0.mac_stats.collision_count: 0=20 dev.em.0.mac_stats.late_coll: 0=20 dev.em.0.mac_stats.multiple_coll: 0 dev.em.0.mac_stats.single_coll: 0=20=20 dev.em.0.mac_stats.excess_coll: 0=20=20 dev.em.0.queue_rx_0.rx_irq: 0 dev.em.0.queue_rx_0.rxd_tail: 650=20=20 dev.em.0.queue_rx_0.rxd_head: 652=20=20 dev.em.0.queue_tx_0.tx_irq: 0 dev.em.0.queue_tx_0.txd_tail: 0=20 dev.em.0.queue_tx_0.txd_head: 0=20 dev.em.0.fc_low_water: 21028=20 dev.em.0.fc_high_water: 22528 dev.em.0.rx_control: 100892734=20=20 dev.em.0.device_control: 787009=20 dev.em.0.watchdog_timeouts: 0 dev.em.0.rx_overruns: 0 dev.em.0.tx_dma_fail: 0 dev.em.0.mbuf_defrag_fail: 0=20 dev.em.0.link_irq: 0 dev.em.0.dropped: 0=20 dev.em.0.eee_control: 1 dev.em.0.itr: 488 dev.em.0.tx_abs_int_delay: 66 dev.em.0.rx_abs_int_delay: 66 dev.em.0.tx_int_delay: 66=20 dev.em.0.rx_int_delay: 0=20=20 dev.em.0.rs_dump: 0=20 dev.em.0.reg_dump: General Registers=20=20 CTRL 000c0241=20 STATUS00080383=20 CTRL_EXIT 101400c0=20=20 Interrupt Registers=20 ICR00000000=20 RX Registers=20=20 RCTL 0603803e=20 RDLEN 00004000=20 RDH0000028c=20 RDT0000028a=20 RXDCTL00010000=20 RDBAL 029a8000=20 RDBAH 00000000=20 TX Registers=20=20 TCTL 3103f0fa=20 TDBAL 056dc000=20 TDBAH 00000000=20 TDLEN 00004000=20 TDH00000000=20 TDT00000000=20 TXDCTL0341011f=20 TDFH 00001000=20 TDFT 00001000=20 TDFHS 00001000=20 TDFPC 00000000=20 dev.em.0.fc: 3 dev.em.0.debug: -1=20=20 dev.em.0.nvm: -1=20 dev.em.0.iflib.rxq0.rxq_fl0.credits: 1023 dev.em.0.iflib.rxq0.rxq_fl0.cidx: 652=20 dev.em.0.iflib.rxq0.rxq_fl0.pidx: 651=20 dev.em.0.iflib.txq0.r_abdications: 0=20=20 dev.em.0.iflib.txq0.r_restarts: 0=20=20 dev.em.0.iflib.txq0.r_stalls: 0=20 dev.em.0.iflib.txq0.r_starts: 0=20 dev.em.0.iflib.txq0.r_drops: 0=20=20 dev.em.0.iflib.txq0.r_enqueues: 0=20=20 dev.em.0.iflib.txq0.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.em.0.iflib.txq0.txq_cleaned: 0=20 dev.em.0.iflib.txq0.txq_processed: 0=20=20 dev.em.0.iflib.txq0.txq_in_use: 0=20=20 dev.em.0.iflib.txq0.txq_cidx_processed: 0 dev.em.0.iflib.txq0.txq_cidx: 0=20 dev.em.0.iflib.txq0.txq_pidx: 0=20 dev.em.0.iflib.txq0.no_tx_dma_setup: 0 dev.em.0.iflib.txq0.txd_encap_efbig: 0 dev.em.0.iflib.txq0.tx_map_failed: 0=20=20 dev.em.0.iflib.txq0.no_desc_avail: 0=20=20 dev.em.0.iflib.txq0.mbuf_defrag_failed: 0 dev.em.0.iflib.txq0.m_pullups: 0 dev.em.0.iflib.txq0.mbuf_defrag: 0=20 dev.em.0.iflib.override_nrxds: 0 dev.em.0.iflib.override_ntxds: 0 dev.em.0.iflib.disable_msix: 0=20=20 dev.em.0.iflib.override_qs_enable: 0=20=20 dev.em.0.iflib.override_nrxqs: 0 dev.em.0.iflib.override_ntxqs: 0 dev.em.0.iflib.driver_version: 7.6.1-k dev.em.0.%parent: pci1=20 dev.em.0.%pnpinfo: vendor=3D0x8086 device=3D0x105e subvendor=3D0x8086 subdevice=3D0x115e class=3D0x020000 dev.em.0.%location: slot=3D0 function=3D0 dbsf=3Dpci0:1:0:0 handle=3D\_SB_.PCI0.PEG0.PEGP=20=20 dev.em.0.%driver: em dev.em.0.%desc: Intel(R) PRO/1000 Network Connection dmesg: [1] em0: port 0xe020-0xe03f mem 0xf7da0000-0xf7dbffff,0xf7d80000-0xf7d9ffff irq 16 at device 0.0 on pci1 [1] em0: attach_pre capping queues at 1=20=20 [1] em0: using 1024 tx descriptors and 1024 rx descriptors=20 [1] em0: msix_init qsets capped at 1=20=20 [1] em0: PCIY_MSIX capability not found; or rid 0 =3D=3D 0.=20 [1] em0: Using an MSI interrupt=20 [1] em0: allocated for 1 tx_queues=20 [1] em0: allocated for 1 rx_queues=20 [1] taskqgroup_attach: setaffinity failed: 3 [1] taskqgroup_attach: setaffinity failed: 3 [1] em0: Ethernet address: 68:05:ca:33:42:f0 [1] em0: netmap queues/slots: TX 1/1024, RX 1/1024 --=20 You are receiving this mail because: You are the assignee for the bug.=