Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 18 Mar 2024 16:04:11 +0100 | From | "Linux regression tracking (Thorsten Leemhuis)" <> | Subject | Re: Problems with csum_partial with misaligned buffers on sh4 platform |
| |
On 11.03.24 18:04, Guenter Roeck wrote: > On Sat, Feb 10, 2024 at 07:12:39AM -0800, Guenter Roeck wrote: >> >> when running checksum unit tests on sh4 qemu emulations, I get the following >> errors. > > Adding to regression tracker. > > #regzbot ^introduced cadc4e1a2b4d2
Hmmm, thx for that, but well, I'm a bit taken back and forth here. That commit afaics is from v3.0-rc1 and Linus iirc at least once said something along the lines of "a regression only reported after a long time at some point becomes just a bug". I'd say that applies there, which is why I'm wondering if tracking this really is worth it.
Ciao, Thorsten
>> KTAP version 1 >> # Subtest: checksum >> # module: checksum_kunit >> 1..5 >> # test_csum_fixed_random_inputs: ASSERTION FAILED at lib/checksum_kunit.c:500 >> Expected ( u64)result == ( u64)expec, but >> ( u64)result == 53378 (0xd082) >> ( u64)expec == 33488 (0x82d0) >> not ok 1 test_csum_fixed_random_inputs >> # test_csum_all_carry_inputs: ASSERTION FAILED at lib/checksum_kunit.c:525 >> Expected ( u64)result == ( u64)expec, but >> ( u64)result == 65281 (0xff01) >> ( u64)expec == 65280 (0xff00) >> not ok 2 test_csum_all_carry_inputs >> # test_csum_no_carry_inputs: ASSERTION FAILED at lib/checksum_kunit.c:573 >> Expected ( u64)result == ( u64)expec, but >> ( u64)result == 65535 (0xffff) >> ( u64)expec == 65534 (0xfffe) >> not ok 3 test_csum_no_carry_inputs >> ok 4 test_ip_fast_csum >> ok 5 test_csum_ipv6_magic >> # checksum: pass:2 fail:3 skip:0 total:5 >> >> The above is with from a little endian system. On a big endian system, >> the test result is as follows. >> >> KTAP version 1 >> # Subtest: checksum >> # module: checksum_kunit >> 1..5 >> # test_csum_fixed_random_inputs: ASSERTION FAILED at lib/checksum_kunit.c:500 >> Expected ( u64)result == ( u64)expec, but >> ( u64)result == 33488 (0x82d0) >> ( u64)expec == 53378 (0xd082) >> not ok 1 test_csum_fixed_random_inputs >> # test_csum_all_carry_inputs: ASSERTION FAILED at lib/checksum_kunit.c:525 >> Expected ( u64)result == ( u64)expec, but >> ( u64)result == 65281 (0xff01) >> ( u64)expec == 255 (0xff) >> not ok 2 test_csum_all_carry_inputs >> # test_csum_no_carry_inputs: ASSERTION FAILED at lib/checksum_kunit.c:565 >> Expected ( u64)result == ( u64)expec, but >> ( u64)result == 1020 (0x3fc) >> ( u64)expec == 0 (0x0) >> not ok 3 test_csum_no_carry_inputs >> # test_ip_fast_csum: ASSERTION FAILED at lib/checksum_kunit.c:589 >> Expected ( u64)expected == ( u64)csum_result, but >> ( u64)expected == 55939 (0xda83) >> ( u64)csum_result == 33754 (0x83da) >> not ok 4 test_ip_fast_csum >> # test_csum_ipv6_magic: ASSERTION FAILED at lib/checksum_kunit.c:617 >> Expected ( u64)expected_csum_ipv6_magic[i] == ( u64)csum_ipv6_magic(saddr, daddr, len, proto, csum), but >> ( u64)expected_csum_ipv6_magic[i] == 6356 (0x18d4) >> ( u64)csum_ipv6_magic(saddr, daddr, len, proto, csum) == 43586 (0xaa42) >> not ok 5 test_csum_ipv6_magic >> # checksum: pass:0 fail:5 skip:0 total:5 >> >> Note that test_ip_fast_csum and test_csum_ipv6_magic fail on all big endian >> systems due to a bug in the test code, unrelated to this problem. >> >> Analysis shows that the errors are seen only if the buffer is misaligned. >> Looking into arch/sh/lib/checksum.S, I found commit cadc4e1a2b4d2 ("sh: >> Handle calling csum_partial with misaligned data") which seemed to be >> related. Reverting that commit fixes the problem. >> This suggests that something may be wrong with that commit. Alternatively, >> of course, it may be possible that something is wrong with the qemu >> emulation, but that seems unlikely. >> >> Thanks, >> Guenter
| ![\](/images/icornerr.gif) |