Date: Thu, 28 Jan 2021 22:56:33 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 253069] cxgbe fl_pktshift not handled in netmap mode Message-ID: <bug-253069-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D253069 Bug ID: 253069 Summary: cxgbe fl_pktshift not handled in netmap mode Product: Base System Version: 12.2-RELEASE Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: brian90013@gmail.com Hello, Today I tried using the hw.cxgbe.fl_pktshift sysctl to see if it would impr= ove the overall packet rate. I was using hw.cxgbe.fl_pktshift=3D2 to produce 4 = byte alignment with my Ethernet/IP data. After looking at the data, I realized t= he Ethernet frames were not being recognized. I am using the cc0 interface in netmap mode. I captured packets from the interface and viewed them using tcpdump. It loo= ks like the pktshift is not being accounted for by the driver as the first two byte are the EtherType from the Ethernet header. 17:42:12.555105 1a:84:9a:83:ca:44 > 00:00:8b:cb:f9:5d, ethertype Unknown (0x268f), length 811:=20 0x0000: 0800 4500 031d 0001 0000 4011 07bd 8fdb I reviewed the driver code and found this segment in eth_rx(): m0->m_pkthdr.len -=3D sc->params.sge.fl_pktshift; m0->m_len -=3D sc->params.sge.fl_pktshift; m0->m_data +=3D sc->params.sge.fl_pktshift; So the driver is transparently removing the shift from the length and the d= ata pointer. However, in service_nm_rxq() I see only: case CPL_RX_PKT: ring->slot[fl_cidx].len =3D G_RSPD_LEN(lq) - sc->params.sge.fl_pktshift; The length is being adjusted. However does the data pointer need adjusting = as well? Is this sysctl not supported while in netmap mode? --=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-253069-227>