On Thu, May 22, 2025 at 10:26:19PM +0900, Alexander Bluhm wrote: > On Thu, May 22, 2025 at 01:31:28PM +0200, Claudio Jeker wrote: > > On Thu, May 22, 2025 at 04:50:10AM -0600, Jan Klemkow wrote: > > > CVSROOT: /cvs > > > Module name: src > > > Changes by: j...@cvs.openbsd.org 2025/05/22 04:50:10 > > > > > > Modified files: > > > sys/dev/pci : if_ix.c > > > > > > Log message: > > > ix(4): use 4k clusters in LRO mode to avoid m_defrag calls > > > > > > ok bluhm > > > > Are you sure this works? ix(4) is as fucked up as most Intel Ethernet > > devices and do not handle ETHER_ALIGN well. This is why those drivers use > > the mcl2k2 pool which is oversized. > > I have tested it on sparc64 and the alignment seems to be correct. > As claudio@ pointed out, the hardware only uses 3K of the 4K - 2 > mbuf clusters due to rounding errors. But for my socket splicing > use case this is enough to avoid m_defrag calls.
This is a terrible workaround for something that should be fixed on the TX side of the interfaces. Somebody will fiddle with that one day and screw it up. I really dislike introducing such hacks. -- :wq Claudio