Problem with checksum offloading on RPi3 (PF + Jails involved)

Carsten Bäcker carbaecker at gmx.de
Mon Nov 16 11:54:29 UTC 2020


Am 16.11.2020 um 02:19 schrieb YongHyeon PYUN:
> On Wed, Nov 04, 2020 at 07:36:44AM +0100, Carsten Bäcker wrote:
>
> [...]
>
>> Hi,
>>
>> i applied the patch on -CURRENT but got a panic right after loading the
>> kernel. Most likely an unrelated problem.
>>
>> But i was able to apply the patch on releng/12.2 (with an offset).
>> Unfortunately it doesn't change the previously described behavior with
>> rxcsum and i didn't manage to get any reasonable debug-output.
>>
>> Since i can easily reproduce the problem. How else can i help?
>>
> Finally had time to read the LAN89530 data sheet.  The data sheet
> still does not clear on several cases and it requires real H/W to
> experiment for various cases.  I created a patch which adds more
> RX validation but it was not tested at all due to lack of H/W. Also
> I even don't know whether it works or not after this change.  When
> it does not work it would be good to know debug out of smsc(4).
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"

Hi,

i just did a test with your modification.
The good news is that the driver itself still works.
The bad news is that it doesn't solve the problem. :-(

I used the snapshot from 2020-10-29 as i already had an sdcard with that
image.
http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/13.0/

Kernel was build from head + your patch.
FreeBSD generic 13.0-CURRENT FreeBSD 13.0-CURRENT #1 r367714M: Mon Nov
16 08:03:24 UTC 2020
root at sysbuild:/usr/obj/usr/src_head/arm64.aarch64/sys/GENERIC arm64

Log from smsc is attached.

As the lack of hardware seems to be a problem... i may be able to
provide temporary access, incl. serial using a 2nd pi - but this will
take some time as i need to change the network-setup.

Regards,
Carsten













-------------- next part --------------
hw.usb.smsc.debug: 0 -> 16

smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 94
smsc0: debug: rx : rxhdr 0x005a0020 : pktlen 90 : actlen 94 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00420020 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 94
smsc0: debug: rx : rxhdr 0x005a0020 : pktlen 90 : actlen 94 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 102
smsc0: debug: rx : rxhdr 0x00622420 : pktlen 98 : actlen 102 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 102
smsc0: debug: rx : rxhdr 0x00622420 : pktlen 98 : actlen 102 : off 4
smsc0: debug: rx : actlen 102
smsc0: debug: rx : rxhdr 0x00622420 : pktlen 98 : actlen 102 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 3048
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 3048 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 3048 : off 1528
smsc0: debug: rx : actlen 4572
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 3052
smsc0: debug: rx : actlen 7620
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 7620 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 7620 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 7620 : off 3052
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 7620 : off 4576
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 7620 : off 6100
smsc0: debug: rx : actlen 6096
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 6096 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 6096 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 6096 : off 3052
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 6096 : off 4576
smsc0: debug: rx : actlen 4572
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 3052
smsc0: debug: rx : actlen 4572
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4572 : off 3052
smsc0: debug: rx : actlen 4168
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4168 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 4168 : off 1528
smsc0: debug: rx : rxhdr 0x045c0020 : pktlen 1116 : actlen 4168 : off 3052
smsc0: debug: rx : actlen 1524
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 1524 : off 4
smsc0: debug: rx : actlen 10668
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 3052
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 4576
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 6100
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 7624
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 9148
smsc0: debug: rx : actlen 9144
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 9144 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 9144 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 9144 : off 3052
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 9144 : off 4576
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 9144 : off 6100
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 9144 : off 7624
smsc0: debug: rx : actlen 10668
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 4
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 1528
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 3052
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 4576
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 6100
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 7624
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 10668 : off 9148
smsc0: debug: rx : actlen 2644
smsc0: debug: rx : rxhdr 0x05f00020 : pktlen 1520 : actlen 2644 : off 4
smsc0: debug: rx : rxhdr 0x045c0020 : pktlen 1116 : actlen 2644 : off 1528
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 70
smsc0: debug: rx : rxhdr 0x00422420 : pktlen 66 : actlen 70 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4
smsc0: debug: rx : actlen 315
smsc0: debug: rx : rxhdr 0x01372420 : pktlen 311 : actlen 315 : off 4

hw.usb.smsc.debug: 16 -> 0


More information about the freebsd-hackers mailing list