On Thursday, 27 June 2024, 19:18:37 CEST, Kurt Kanzenbach wrote: > Hi Benjamin, > > On Thu Jun 27 2024, Benjamin Steinke wrote: > > On Thursday, 27 June 2024, 09:07:55 CEST, Kurt Kanzenbach wrote: > >> Hi Sriram, > >> > >> On Fri Aug 04 2023, Sriram Yagnaraman wrote: > >> > The first couple of patches adds helper funcctions to prepare for > >> > AF_XDP > >> > zero-copy support which comes in the last couple of patches, one each > >> > for Rx and TX paths. > >> > > >> > As mentioned in v1 patchset [0], I don't have access to an actual IGB > >> > device to provide correct performance numbers. I have used Intel > >> > 82576EB > >> > emulator in QEMU [1] to test the changes to IGB driver. > >> > >> I gave this patch series a try on a recent kernel and silicon > >> (i210). There was one issue in igb_xmit_zc(). But other than that it > >> worked very nicely. > > > > Hi Kurt and Sriram, > > > > I recently tried the patches on a 6.1 kernel. On two different devices > > i210 & i211 I couldn't see any packets being transmitted on the wire. > > Perhaps caused by the issue in igb_xmit_zc() you mentioned, Kurt? Can you > > share your findings, please? > > Yeah, that's exactly the issue. > > Following igb_xmit_xdp_ring() I've added PAYLEN to the Tx descriptor > instead of setting it to zero: > > igb_xmit_zc() > { > [...] > > /* put descriptor type bits */ > cmd_type = E1000_ADVTXD_DTYP_DATA | E1000_ADVTXD_DCMD_DEXT | > E1000_ADVTXD_DCMD_IFCS; > olinfo_status = descs[i].len << E1000_ADVTXD_PAYLEN_SHIFT; > > cmd_type |= descs[i].len | IGB_TXD_DCMD; > tx_desc->read.cmd_type_len = cpu_to_le32(cmd_type); > tx_desc->read.olinfo_status = cpu_to_le32(olinfo_status); > > [...] > } > > Afterwards packets are transmitted on the wire. Hi Kurt, I can confirm this makes the transmitter work. Thank you for taking over this patch series and continue to bring this upstream. I will continue testing on this. > > RX seemed to work on first sight. > > Yes, Rx works even with PTP enabled. I can confirm this as well. Best regards, Benjamin