Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
Re: igc(4): fix recv. jumbo frames
To:
David Gwynne <david@gwynne.id.au>
Cc:
Jan Klemkow <jan@openbsd.org>, tech@openbsd.org, Theo de Raadt <deraadt@openbsd.org>
Date:
Sun, 11 Aug 2024 13:39:32 +0200

Download raw body.

Thread
  • Alexander Bluhm:

    igc(4): fix recv. jumbo frames

  • On Sat, Aug 10, 2024 at 02:53:58PM +1000, David Gwynne wrote:
    > On Fri, Aug 09, 2024 at 08:38:37PM +0200, Alexander Bluhm wrote:
    > > 
    > > On sparc64 it does not panic.  Jumbo frames are not well supported
    > > on this machine, I guess some bugs in the IOMMU implementation.
    > > Other drivers also have problems with jumbo on sparc64.  Only part
    > > of my tests pass.  This is not a regression.
    > 
    > does this help?
    
    Maybe.  A lot of my network tests on sparc64 fail.  Others are not
    stable and results flip around.
    
    http://bluhm.genua.de/netlink/results/2024-08-04T11:37:11Z/netlink.html
    
    This diff might fix some corner cases.  Or it is just coincidence
    that some tests passed in this run.  Jumbo in gneneral looks quite
    broken, igc is a bit worse than other drivers on sparc64.
    
    bluhm
    
    > Index: machdep.c
    > ===================================================================
    > RCS file: /cvs/src/sys/arch/sparc64/sparc64/machdep.c,v
    > diff -u -p -r1.218 machdep.c
    > --- machdep.c	22 May 2024 05:51:49 -0000	1.218
    > +++ machdep.c	10 Aug 2024 04:51:22 -0000
    > @@ -993,7 +993,7 @@ _bus_dmamap_load_mbuf(bus_dma_tag_t t, b
    >  
    >  			if (i > 0 && pa == (segs[i - 1].ds_addr +
    >  			    segs[i - 1].ds_len) && ((segs[i - 1].ds_len + incr)
    > -			    < map->_dm_maxsegsz)) {
    > +			    <= map->_dm_maxsegsz)) {
    >  				/* Hey, waddyaknow, they're contiguous */
    >  				segs[i - 1].ds_len += incr;
    >  				continue;
    
    
    
  • Alexander Bluhm:

    igc(4): fix recv. jumbo frames