Date: Tue, 19 Oct 2021 07:51:07 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 259263] ixgbe flag changing performance problem Message-ID: <bug-259263-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
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.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-259263-227>