Hi Eric, sorry for the very late reply, I was offline for quite some time and then other things took over.
On Apr 26 19:54, Eric Dumazet wrote: > On Fri, Apr 26, 2024 at 4:30 PM Corinna Vinschen <vinsc...@redhat.com> wrote: > > > > Hi Eric, > > > > On Apr 23 16:10, Eric Dumazet wrote: > > > On Tue, Apr 23, 2024 at 3:47 PM Corinna Vinschen <vinsc...@redhat.com> > > > wrote: > > > > > > > > From: Paolo Abeni <pab...@redhat.com> > > > > > > > > Sabrina reports that the igb driver does not cope well with large > > > > MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload > > > > corruption on TX. > > > > > > > > An easy reproducer is to run ssh to connect to the machine. With > > > > MAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails. > > > > [...] > > > > @@ -4833,6 +4833,7 @@ static void igb_set_rx_buffer_len(struct > > > > igb_adapter *adapter, > > > > > > > > #if (PAGE_SIZE < 8192) > > > > if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB || > > > > + SKB_HEAD_ALIGN(adapter->max_frame_size) > (PAGE_SIZE / 2) || > > > > > > I wonder if adding IGB_SKB_PAD would be needed ? > > > > > > adapter->max_frame_size does not seem to include it. > > > > > > I would try using all mtus between 1200 and 1280 to make sure this works. > > > > Erm... did you mean between 1500 and 1580 by any chance? 1200 doesn't > > really seem to make sense... > > No, I meant 1200 to 1280 . IPv4 should accept these MTU . > > 1200 + 768 = 1968 > 1280 + 768 = 2048 (2 KB) > > I am worried of some padding that would cross 2048 bytes boundary, > while SKB_HEAD_ALIGN(adapter->max_frame_size) could still be < 2048 > > > > > > I tested this patch now with mtu 1500, 1540 and 1580 successfully. > > > > Either way, I'm just heading into vacation, so I guess I'll pick this up > > again when I'm back, unless Paolo takes another look during my absence. > > > > I guess your patch is better than nothing, this can be refined if > necessary later. I now tested the patch with all MTUs between 1200 and 1280 and it works as desired. I just sent a v3. Thanks, Corinna