From nobody Tue Oct 19 07:51:07 2021 X-Original-To: bugs@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 06B0017F75E4 for ; Tue, 19 Oct 2021 07:51:07 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HYQsk6jBgz3JT3 for ; Tue, 19 Oct 2021 07:51:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C669A10460 for ; Tue, 19 Oct 2021 07:51:06 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 19J7p6hA043768 for ; Tue, 19 Oct 2021 07:51:06 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 19J7p64h043767 for bugs@FreeBSD.org; Tue, 19 Oct 2021 07:51:06 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 259263] ixgbe flag changing performance problem Date: Tue, 19 Oct 2021 07:51:07 +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: 12.2-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: ozkan.kirik@gmail.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: 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 List-Id: Bug reports List-Archive: https://lists.freebsd.org/archives/freebsd-bugs List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-bugs@freebsd.org MIME-Version: 1.0 X-ThisMailContainsUnwantedMimeParts: N https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D259263 Bug ID: 259263 Summary: ixgbe flag changing performance problem Product: Base System Version: 12.2-STABLE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: ozkan.kirik@gmail.com Hi,=20 I'm using FreeBSD stable/12-n234161-c60b5d477cb4 compiled at Oct 13 12:18:51 +03 2021. Changing flags of ix0 takes too long (~15 seconds). Opening the hardware rings using netmap takes too long also. Is it possible to optimize the time to finish job? How to reproduce: /usr/bin/time ifconfig ix0 promisc -tso -lro -rxcsum -txcsum -tso6 -rxcsum -txcsum -tso6 -rxcsum6 -txcsum6 -vlanhwtag -vlanhwcsum -vlanhwtso 14.71 real 0.00 user 14.71 sys ix0@pci0:3:0:0: class=3D0x020000 card=3D0x15ad15d9 chip=3D0x15ad8086 rev=3D= 0x00 hdr=3D0x00 vendor =3D 'Intel Corporation' device =3D 'Ethernet Connection X552/X557-AT 10GBASE-T' class =3D network subclass =3D ethernet # sysctl dev.ix.0. dev.ix.0.phy.overtemp_occurred: 0 dev.ix.0.phy.temp: 60 dev.ix.0.wufc: 2 dev.ix.0.wol_enable: 1 dev.ix.0.dmac: 0 dev.ix.0.fw_version: eTrack 0x800003e7 PHY FW V512 dev.ix.0.advertise_speed: 6 dev.ix.0.fc: 3 dev.ix.0.mac_stats.tx_frames_1024_1522: 0 dev.ix.0.mac_stats.tx_frames_512_1023: 0 dev.ix.0.mac_stats.tx_frames_256_511: 0 dev.ix.0.mac_stats.tx_frames_128_255: 0 dev.ix.0.mac_stats.tx_frames_65_127: 0 dev.ix.0.mac_stats.tx_frames_64: 0 dev.ix.0.mac_stats.management_pkts_txd: 0 dev.ix.0.mac_stats.mcast_pkts_txd: 0 dev.ix.0.mac_stats.bcast_pkts_txd: 0 dev.ix.0.mac_stats.good_pkts_txd: 0 dev.ix.0.mac_stats.total_pkts_txd: 0 dev.ix.0.mac_stats.good_octets_txd: 0 dev.ix.0.mac_stats.checksum_errs: 0 dev.ix.0.mac_stats.management_pkts_drpd: 0 dev.ix.0.mac_stats.management_pkts_rcvd: 0 dev.ix.0.mac_stats.recv_jabberd: 0 dev.ix.0.mac_stats.recv_oversized: 0 dev.ix.0.mac_stats.recv_fragmented: 0 dev.ix.0.mac_stats.recv_undersized: 0 dev.ix.0.mac_stats.rx_frames_1024_1522: 0 dev.ix.0.mac_stats.rx_frames_512_1023: 0 dev.ix.0.mac_stats.rx_frames_256_511: 35 dev.ix.0.mac_stats.rx_frames_128_255: 2 dev.ix.0.mac_stats.rx_frames_65_127: 36 dev.ix.0.mac_stats.rx_frames_64: 3 dev.ix.0.mac_stats.bcast_pkts_rcvd: 76 dev.ix.0.mac_stats.mcast_pkts_rcvd: 0 dev.ix.0.mac_stats.good_pkts_rcvd: 76 dev.ix.0.mac_stats.total_pkts_rcvd: 392 dev.ix.0.mac_stats.good_octets_rcvd: 16468 dev.ix.0.mac_stats.total_octets_rcvd: 226473 dev.ix.0.mac_stats.xoff_recvd: 0 dev.ix.0.mac_stats.xoff_txd: 0 dev.ix.0.mac_stats.xon_recvd: 0 dev.ix.0.mac_stats.xon_txd: 0 dev.ix.0.mac_stats.rx_missed_packets: 0 dev.ix.0.mac_stats.rec_len_errs: 0 dev.ix.0.mac_stats.remote_faults: 0 dev.ix.0.mac_stats.local_faults: 68 dev.ix.0.mac_stats.short_discards: 0 dev.ix.0.mac_stats.byte_errs: 0 dev.ix.0.mac_stats.ill_errs: 0 dev.ix.0.mac_stats.crc_errs: 0 dev.ix.0.mac_stats.rx_errs: 0 dev.ix.0.queue3.rx_discarded: 0 dev.ix.0.queue3.rx_copies: 0 dev.ix.0.queue3.rx_bytes: 11970 dev.ix.0.queue3.rx_packets: 35 dev.ix.0.queue3.rxd_tail: 128 dev.ix.0.queue3.rxd_head: 0 dev.ix.0.queue3.irqs: 35 dev.ix.0.queue3.interrupt_rate: 31250 dev.ix.0.queue3.tx_packets: 0 dev.ix.0.queue3.tso_tx: 0 dev.ix.0.queue3.txd_tail: 0 dev.ix.0.queue3.txd_head: 0 dev.ix.0.queue2.rx_discarded: 0 dev.ix.0.queue2.rx_copies: 0 dev.ix.0.queue2.rx_bytes: 0 dev.ix.0.queue2.rx_packets: 0 dev.ix.0.queue2.rxd_tail: 128 dev.ix.0.queue2.rxd_head: 0 dev.ix.0.queue2.irqs: 0 dev.ix.0.queue2.interrupt_rate: 31250 dev.ix.0.queue2.tx_packets: 0 dev.ix.0.queue2.tso_tx: 0 dev.ix.0.queue2.txd_tail: 0 dev.ix.0.queue2.txd_head: 0 dev.ix.0.queue1.rx_discarded: 0 dev.ix.0.queue1.rx_copies: 0 dev.ix.0.queue1.rx_bytes: 0 dev.ix.0.queue1.rx_packets: 0 dev.ix.0.queue1.rxd_tail: 128 dev.ix.0.queue1.rxd_head: 0 dev.ix.0.queue1.irqs: 0 dev.ix.0.queue1.interrupt_rate: 31250 dev.ix.0.queue1.tx_packets: 0 dev.ix.0.queue1.tso_tx: 0 dev.ix.0.queue1.txd_tail: 0 dev.ix.0.queue1.txd_head: 0 dev.ix.0.queue0.rx_discarded: 0 dev.ix.0.queue0.rx_copies: 0 dev.ix.0.queue0.rx_bytes: 4194 dev.ix.0.queue0.rx_packets: 41 dev.ix.0.queue0.rxd_tail: 128 dev.ix.0.queue0.rxd_head: 0 dev.ix.0.queue0.irqs: 41 dev.ix.0.queue0.interrupt_rate: 31250 dev.ix.0.queue0.tx_packets: 0 dev.ix.0.queue0.tso_tx: 0 dev.ix.0.queue0.txd_tail: 0 dev.ix.0.queue0.txd_head: 0 dev.ix.0.link_irq: 5 dev.ix.0.watchdog_events: 0 dev.ix.0.dropped: 0 dev.ix.0.iflib.rxq3.rxq_fl0.buf_size: 2048 dev.ix.0.iflib.rxq3.rxq_fl0.credits: 128 dev.ix.0.iflib.rxq3.rxq_fl0.cidx: 0 dev.ix.0.iflib.rxq3.rxq_fl0.pidx: 128 dev.ix.0.iflib.rxq3.cpu: 6 dev.ix.0.iflib.rxq2.rxq_fl0.buf_size: 2048 dev.ix.0.iflib.rxq2.rxq_fl0.credits: 128 dev.ix.0.iflib.rxq2.rxq_fl0.cidx: 0 dev.ix.0.iflib.rxq2.rxq_fl0.pidx: 128 dev.ix.0.iflib.rxq2.cpu: 4 dev.ix.0.iflib.rxq1.rxq_fl0.buf_size: 2048 dev.ix.0.iflib.rxq1.rxq_fl0.credits: 128 dev.ix.0.iflib.rxq1.rxq_fl0.cidx: 0 dev.ix.0.iflib.rxq1.rxq_fl0.pidx: 128 dev.ix.0.iflib.rxq1.cpu: 2 dev.ix.0.iflib.rxq0.rxq_fl0.buf_size: 2048 dev.ix.0.iflib.rxq0.rxq_fl0.credits: 128 dev.ix.0.iflib.rxq0.rxq_fl0.cidx: 0 dev.ix.0.iflib.rxq0.rxq_fl0.pidx: 128 dev.ix.0.iflib.rxq0.cpu: 0 dev.ix.0.iflib.txq3.r_abdications: 0 dev.ix.0.iflib.txq3.r_restarts: 0 dev.ix.0.iflib.txq3.r_stalls: 0 dev.ix.0.iflib.txq3.r_starts: 0 dev.ix.0.iflib.txq3.r_drops: 0 dev.ix.0.iflib.txq3.r_enqueues: 0 dev.ix.0.iflib.txq3.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.ix.0.iflib.txq3.txq_cleaned: 0 dev.ix.0.iflib.txq3.txq_processed: 0 dev.ix.0.iflib.txq3.txq_in_use: 0 dev.ix.0.iflib.txq3.txq_cidx_processed: 0 dev.ix.0.iflib.txq3.txq_cidx: 0 dev.ix.0.iflib.txq3.txq_pidx: 0 dev.ix.0.iflib.txq3.no_tx_dma_setup: 0 dev.ix.0.iflib.txq3.txd_encap_efbig: 0 dev.ix.0.iflib.txq3.tx_map_failed: 0 dev.ix.0.iflib.txq3.no_desc_avail: 0 dev.ix.0.iflib.txq3.mbuf_defrag_failed: 0 dev.ix.0.iflib.txq3.m_pullups: 0 dev.ix.0.iflib.txq3.mbuf_defrag: 0 dev.ix.0.iflib.txq3.cpu: 6 dev.ix.0.iflib.txq2.r_abdications: 0 dev.ix.0.iflib.txq2.r_restarts: 0 dev.ix.0.iflib.txq2.r_stalls: 0 dev.ix.0.iflib.txq2.r_starts: 0 dev.ix.0.iflib.txq2.r_drops: 0 dev.ix.0.iflib.txq2.r_enqueues: 0 dev.ix.0.iflib.txq2.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.ix.0.iflib.txq2.txq_cleaned: 0 dev.ix.0.iflib.txq2.txq_processed: 0 dev.ix.0.iflib.txq2.txq_in_use: 0 dev.ix.0.iflib.txq2.txq_cidx_processed: 0 dev.ix.0.iflib.txq2.txq_cidx: 0 dev.ix.0.iflib.txq2.txq_pidx: 0 dev.ix.0.iflib.txq2.no_tx_dma_setup: 0 dev.ix.0.iflib.txq2.txd_encap_efbig: 0 dev.ix.0.iflib.txq2.tx_map_failed: 0 dev.ix.0.iflib.txq2.no_desc_avail: 0 dev.ix.0.iflib.txq2.mbuf_defrag_failed: 0 dev.ix.0.iflib.txq2.m_pullups: 0 dev.ix.0.iflib.txq2.mbuf_defrag: 0 dev.ix.0.iflib.txq2.cpu: 4 dev.ix.0.iflib.txq1.r_abdications: 0 dev.ix.0.iflib.txq1.r_restarts: 0 dev.ix.0.iflib.txq1.r_stalls: 0 dev.ix.0.iflib.txq1.r_starts: 0 dev.ix.0.iflib.txq1.r_drops: 0 dev.ix.0.iflib.txq1.r_enqueues: 0 dev.ix.0.iflib.txq1.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.ix.0.iflib.txq1.txq_cleaned: 0 dev.ix.0.iflib.txq1.txq_processed: 0 dev.ix.0.iflib.txq1.txq_in_use: 0 dev.ix.0.iflib.txq1.txq_cidx_processed: 0 dev.ix.0.iflib.txq1.txq_cidx: 0 dev.ix.0.iflib.txq1.txq_pidx: 0 dev.ix.0.iflib.txq1.no_tx_dma_setup: 0 dev.ix.0.iflib.txq1.txd_encap_efbig: 0 dev.ix.0.iflib.txq1.tx_map_failed: 0 dev.ix.0.iflib.txq1.no_desc_avail: 0 dev.ix.0.iflib.txq1.mbuf_defrag_failed: 0 dev.ix.0.iflib.txq1.m_pullups: 0 dev.ix.0.iflib.txq1.mbuf_defrag: 0 dev.ix.0.iflib.txq1.cpu: 2 dev.ix.0.iflib.txq0.r_abdications: 0 dev.ix.0.iflib.txq0.r_restarts: 0 dev.ix.0.iflib.txq0.r_stalls: 0 dev.ix.0.iflib.txq0.r_starts: 0 dev.ix.0.iflib.txq0.r_drops: 0 dev.ix.0.iflib.txq0.r_enqueues: 0 dev.ix.0.iflib.txq0.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.ix.0.iflib.txq0.txq_cleaned: 0 dev.ix.0.iflib.txq0.txq_processed: 0 dev.ix.0.iflib.txq0.txq_in_use: 0 dev.ix.0.iflib.txq0.txq_cidx_processed: 0 dev.ix.0.iflib.txq0.txq_cidx: 0 dev.ix.0.iflib.txq0.txq_pidx: 0 dev.ix.0.iflib.txq0.no_tx_dma_setup: 0 dev.ix.0.iflib.txq0.txd_encap_efbig: 0 dev.ix.0.iflib.txq0.tx_map_failed: 0 dev.ix.0.iflib.txq0.no_desc_avail: 0 dev.ix.0.iflib.txq0.mbuf_defrag_failed: 0 dev.ix.0.iflib.txq0.m_pullups: 0 dev.ix.0.iflib.txq0.mbuf_defrag: 0 dev.ix.0.iflib.txq0.cpu: 0 dev.ix.0.iflib.override_nrxds: 0 dev.ix.0.iflib.override_ntxds: 0 dev.ix.0.iflib.use_logical_cores: 0 dev.ix.0.iflib.separate_txrx: 0 dev.ix.0.iflib.core_offset: 0 dev.ix.0.iflib.tx_abdicate: 0 dev.ix.0.iflib.rx_budget: 0 dev.ix.0.iflib.disable_msix: 0 dev.ix.0.iflib.override_qs_enable: 0 dev.ix.0.iflib.override_nrxqs: 4 dev.ix.0.iflib.override_ntxqs: 4 dev.ix.0.iflib.driver_version: 4.0.1-k dev.ix.0.%parent: pci4 dev.ix.0.%pnpinfo: vendor=3D0x8086 device=3D0x15ad subvendor=3D0x15d9 subdevice=3D0x15ad class=3D0x020000 dev.ix.0.%location: slot=3D0 function=3D0 dbsf=3Dpci0:3:0:0 handle=3D\_SB_.PCI0.BR2C.H000 dev.ix.0.%driver: ix dev.ix.0.%desc: Intel(R) X552/X557-AT (10GBASE-T) With Intel X540 ix0 it takes about 2.5 seconds (It's also long time) # /usr/bin/time ifconfig ix0 promisc -tso -lro -rxcsum -txcsum -tso6 -rxcsum -txcsum -tso6 -rxcsum6 -txcsum6 -vlanhwtag -vlanhwcsum -vlanhwtso 2.32 real 0.00 user 2.32 sys ix0@pci0:101:0:0: class=3D0x020000 card=3D0x001a8086 chip=3D0x15288086 rev=3D0x01 hdr=3D0x00 vendor =3D 'Intel Corporation' device =3D 'Ethernet Controller 10-Gigabit X540-AT2' class =3D network subclass =3D ethernet But igb and ixl drivers are fast (<1 seconds). For comparision the output is below: /usr/bin/time ifconfig igb0 promisc -tso -lro -rxcsum -txcsum -tso6 -rxcsum -txcsum -tso6 -rxcsum6 -txcsum6 -vlanhwtag -vlanhwcsum -vlanhwtso 0.94 real 0.00 user 0.20 sys igb0@pci0:5:0:0: class=3D0x020000 card=3D0x152115d9 chip=3D0x1521808= 6 rev=3D0x01 hdr=3D0x00 vendor =3D 'Intel Corporation' device =3D 'I350 Gigabit Network Connection' class =3D network subclass =3D ethernet /usr/bin/time ifconfig ixl0 promisc -tso -lro -rxcsum -txcsum -tso6 -rxcsum -txcsum -tso6 -rxcsum6 -txcsum6 -vlanhwtag -vlanhwcsum -vlanhwtso 0.68 real 0.00 user 0.68 sys ixl0@pci0:183:0:0: class=3D0x020000 card=3D0x37d215d9 chip=3D0x37d28086 rev=3D0x04 hdr=3D0x00 vendor =3D 'Intel Corporation' device =3D 'Ethernet Connection X722 for 10GBASE-T' class =3D network subclass =3D ethernet Regards --=20 You are receiving this mail because: You are the assignee for the bug.=