lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5332e40f-ffb6-48d6-9f29-29671e5b6393@roeck-us.net>
Date: Tue, 6 Aug 2024 09:00:11 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Vitor Massaru Iha <vitor@...saru.org>
Cc: kunit-dev@...glegroups.com, linux-kselftest@...r.kernel.org,
	linux-kernel@...r.kernel.org, brendanhiggins@...gle.com,
	keescook@...omium.org, davidgow@...gle.com,
	skhan@...uxfoundation.org,
	linux-kernel-mentees@...ts.linuxfoundation.org
Subject: Re: [PATCH v3] lib: Convert test_user_copy to KUnit test

On Tue, Aug 06, 2024 at 08:48:45AM -0700, Guenter Roeck wrote:
> Hi,
> 
> On Tue, Jul 21, 2020 at 02:46:54PM -0300, Vitor Massaru Iha wrote:
> > This adds the conversion of the runtime tests of test_user_copy fuctions,
> > from `lib/test_user_copy.c`to KUnit tests.
> > 
> > Signed-off-by: Vitor Massaru Iha <vitor@...saru.org>
> 
> These tests are failing (at least) for arm-v7, loongarch, and mips
> qemu emulations; see below for failure logs.
> 
> Any idea if those might be architecture problems, problems with qemu,
> or problems with the test ?
> 
> Thanks,
> Guenter
> 
> ---

Several more failures. I missed those earlier because they don't result
in backtraces.

sparc32:

    # usercopy_test_valid: EXPECTATION FAILED at lib/usercopy_kunit.c:209
    Expected val_u64 == 0x5a5b5c5d6a6b6c6d, but
        val_u64 == 1515936861 (0x5a5b5c5d)
        0x5a5b5c5d6a6b6c6d == 6510899242581322861 (0x5a5b5c5d6a6b6c6d)
legitimate get_user (u64) failed to do copy
    # usercopy_test_valid: pass:0 fail:1 skip:0 total:1
    not ok 1 usercopy_test_valid
    # usercopy_test_invalid: pass:1 fail:0 skip:0 total:1
    ok 2 usercopy_test_invalid
    # usercopy_test_check_nonzero_user: pass:1 fail:0 skip:0 total:1
    ok 3 usercopy_test_check_nonzero_user
    # usercopy_test_copy_struct_from_user: pass:1 fail:0 skip:0 total:1
    ok 4 usercopy_test_copy_struct_from_user
# usercopy: pass:3 fail:1 skip:0 total:4
# Totals: pass:3 fail:1 skip:0 total:4

nios2:

    # module: usercopy_kunit
    1..4
    # usercopy_test_valid: pass:1 fail:0 skip:0 total:1
    ok 1 usercopy_test_valid
    # usercopy_test_invalid: EXPECTATION FAILED at lib/usercopy_kunit.c:279
    Expected val_u8 == 0, but
        val_u8 == 90 (0x5a)
zeroing failure for illegal get_user (u8)
    # usercopy_test_invalid: EXPECTATION FAILED at lib/usercopy_kunit.c:280
    Expected val_u16 == 0, but
        val_u16 == 23131 (0x5a5b)
zeroing failure for illegal get_user (u16)
    # usercopy_test_invalid: EXPECTATION FAILED at lib/usercopy_kunit.c:281
    Expected val_u32 == 0, but
        val_u32 == 1515936861 (0x5a5b5c5d)
zeroing failure for illegal get_user (u32)
    # usercopy_test_invalid: pass:0 fail:1 skip:0 total:1
    not ok 2 usercopy_test_invalid
    # usercopy_test_check_nonzero_user: pass:1 fail:0 skip:0 total:1
    ok 3 usercopy_test_check_nonzero_user
    # usercopy_test_copy_struct_from_user: pass:1 fail:0 skip:0 total:1
    ok 4 usercopy_test_copy_struct_from_user
# usercopy: pass:3 fail:1 skip:0 total:4
# Totals: pass:3 fail:1 skip:0 total:4
not ok 37 usercopy

microblaze:

    # usercopy_test_valid: pass:1 fail:0 skip:0 total:1
    ok 1 usercopy_test_valid
    # usercopy_test_invalid: EXPECTATION FAILED at lib/usercopy_kunit.c:279
    Expected val_u8 == 0, but
        val_u8 == 90 (0x5a)
zeroing failure for illegal get_user (u8)
    # usercopy_test_invalid: EXPECTATION FAILED at lib/usercopy_kunit.c:280
    Expected val_u16 == 0, but
        val_u16 == 23131 (0x5a5b)
zeroing failure for illegal get_user (u16)
    # usercopy_test_invalid: EXPECTATION FAILED at lib/usercopy_kunit.c:281
    Expected val_u32 == 0, but
        val_u32 == 1515936861 (0x5a5b5c5d)
zeroing failure for illegal get_user (u32)
    # usercopy_test_invalid: pass:0 fail:1 skip:0 total:1
    not ok 2 usercopy_test_invalid
    # usercopy_test_check_nonzero_user: pass:1 fail:0 skip:0 total:1
    ok 3 usercopy_test_check_nonzero_user
    # usercopy_test_copy_struct_from_user: pass:1 fail:0 skip:0 total:1
    ok 4 usercopy_test_copy_struct_from_user
# usercopy: pass:3 fail:1 skip:0 total:4
# Totals: pass:3 fail:1 skip:0 total:4
not ok 39 usercopy

> On arm:
> 
> [   13.097105]     # usercopy_test_valid: ASSERTION FAILED at lib/usercopy_kunit.c:311
> [   13.097105]     Expected user_addr < (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))), but
> [   13.097105]         user_addr == 4294967284 (0xfffffff4)
> [   13.097105]         (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))) == 3204448256 (0xbf000000)
> [   13.097105] Failed to allocate user memory
> [   13.098876]     # usercopy_test_valid: pass:0 fail:1 skip:0 total:1
> [   13.099378]     not ok 1 usercopy_test_valid
> [   13.101143]     # usercopy_test_invalid: ASSERTION FAILED at lib/usercopy_kunit.c:311
> [   13.101143]     Expected user_addr < (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))), but
> [   13.101143]         user_addr == 4294967284 (0xfffffff4)
> [   13.101143]         (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))) == 3204448256 (0xbf000000)
> [   13.101143] Failed to allocate user memory
> [   13.102726]     # usercopy_test_invalid: pass:0 fail:1 skip:0 total:1
> [   13.103167]     not ok 2 usercopy_test_invalid
> [   13.104744]     # usercopy_test_check_nonzero_user: ASSERTION FAILED at lib/usercopy_kunit.c:311
> [   13.104744]     Expected user_addr < (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))), but
> [   13.104744]         user_addr == 4294967284 (0xfffffff4)
> [   13.104744]         (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))) == 3204448256 (0xbf000000)
> [   13.104744] Failed to allocate user memory
> [   13.106485]     # usercopy_test_check_nonzero_user: pass:0 fail:1 skip:0 total:1
> [   13.106935]     not ok 3 usercopy_test_check_nonzero_user
> [   13.108812]     # usercopy_test_copy_struct_from_user: ASSERTION FAILED at lib/usercopy_kunit.c:311
> [   13.108812]     Expected user_addr < (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))), but
> [   13.108812]         user_addr == 4294967284 (0xfffffff4)
> [   13.108812]         (unsigned long)((((0xC0000000UL))) - (((0x01000000UL)))) == 3204448256 (0xbf000000)
> [   13.108812] Failed to allocate user memory
> [   13.110643]     # usercopy_test_copy_struct_from_user: pass:0 fail:1 skip:0 total:1
> [   13.111096]     not ok 4 usercopy_test_copy_struct_from_user
> [   13.111260] # usercopy: pass:0 fail:4 skip:0 total:4
> [   13.111401] # Totals: pass:0 fail:4 skip:0 total:4
> [   13.111533] not ok 40 usercopy
> 
> On loongarch:
> 
> [    5.202648] CPU 0 Unable to handle kernel paging request at virtual address 0000000000000008, era == 90000000040f4b60, ra == 900000000436e558
> [    5.203061] Oops[#1]:
> [    5.203288] CPU: 0 UID: 0 PID: 877 Comm: kunit_try_catch Tainted: G                 N 6.11.0-rc2+ #1
> [    5.203469] Tainted: [N]=TEST
> [    5.203523] Hardware name: QEMU QEMU Virtual Machine, BIOS 0.0.0 02/06/2015
> [    5.203686] pc 90000000040f4b60 ra 900000000436e558 tp 9000000107dec000 sp 9000000107defc90
> [    5.203801] a0 ffffffffffff4000 a1 90000001063554f8 a2 0000000000000000 a3 9000000107defb84
> [    5.203913] a4 0000000000000001 a5 0000000000000000 a6 900000000696e030 a7 9000000004b617c0
> [    5.204025] t0 9000000104ab8840 t1 0000800000000000 t2 0000000000208040 t3 9000000107dec000
> [    5.204134] t4 0000000000000000 t5 9000000006f39f10 t6 0000000000000001 t7 0000000000006000
> [    5.204245] t8 0000000045eeca10 u0 9000000004b61818 s9 90000001002e7e40 s0 0000000008000000
> [    5.204355] s1 9000000104b58040 s2 0000000000000000 s3 fffffffffffff000 s4 9000000005f62d00
> [    5.204465] s5 9000000104ab8840 s6 90000000061752e8 s7 0000000000000000 s8 9000000004144df8
> [    5.204580]    ra: 900000000436e558 arch_pick_mmap_layout+0xa0/0x1fc
> [    5.204928]   ERA: 90000000040f4b60 stack_top+0x58/0xa8
> [    5.205009]  CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE)
> [    5.205189]  PRMD: 00000004 (PPLV0 +PIE -PWE)
> [    5.205286]  EUEN: 00000000 (-FPE -SXE -ASXE -BTE)
> [    5.205398]  ECFG: 00071c1d (LIE=0,2-4,10-12 VS=7)
> [    5.205629] ESTAT: 00010000 [PIL] (IS= ECode=1 EsubCode=0)
> [    5.205732]  BADV: 0000000000000008
> [    5.205802]  PRID: 0014c010 (Loongson-64bit, Loongson-3A5000)
> [    5.205897] Modules linked in:
> [    5.205982] Process kunit_try_catch (pid: 877, threadinfo=9000000107dec000, task=9000000104ab8840)
> [    5.206120] Stack : 9000000005f62d00 fffffffffffff000 900000000616f000 9000000107da5b40
> [    5.206323]         9000000107defd58 9000000004a6cce4 0000000000000dc0 9000000104b58040
> [    5.206444]         9000000100004ac0 0000000000000000 0000000000000000 0e03af9ea058218b
> [    5.206562]         900000000616f000 90000001002d7b00 9000000107da5b40 9000000004a6c2c4
> [    5.206681]         90000000061752e8 9000000104ab8840 9000000005f62d00 fffffffffffff000
> [    5.206799]         900000000616f000 90000001002d7b00 9000000107da5b40 9000000004a6cb9c
> [    5.206918]         9000000107cc8000 0000000000000000 0000000000000000 0000000000008000
> [    5.207035]         0000000000000007 0000000000000022 0000000000000000 0e03af9ea058218b
> [    5.207153]         900000000616f000 90000001079d2f00 90000001002d7b00 9000000004ba6a60
> [    5.207271]         9000000104ab9170 90000000056c0788 00000000000000b0 0e03af9ea058218b
> [    5.207389]         ...
> [    5.207450] Call Trace:
> [    5.207467] [<90000000040f4b60>] stack_top+0x58/0xa8
> [    5.207588] [<900000000436e554>] arch_pick_mmap_layout+0x9c/0x1fc
> [    5.207675] [<9000000004a6cce0>] kunit_vm_mmap_init+0x104/0x12c
> [    5.207758] [<9000000004a6c2c0>] __kunit_add_resource+0x48/0xd0
> [    5.207839] [<9000000004a6cb98>] kunit_vm_mmap+0x84/0xc8
> [    5.207913] [<9000000004ba6a5c>] usercopy_test_init+0xb8/0x25c
> [    5.207993] [<9000000004a6c064>] kunit_try_run_case+0x58/0x184
> [    5.208073] [<9000000004a6e260>] kunit_generic_run_threadfn_adapter+0x20/0x48
> [    5.208168] [<9000000004144914>] kthread+0x130/0x140
> [    5.208238] [<90000000040f1c04>] ret_from_kernel_thread+0x8/0xa4
> [    5.208323]
> [    5.208370] Code: 15fffe84  26165190  2400158e <28c0220c> 14000070  03bffe10  0010c18c  15ffff90  0014c18c
> [    5.208583]
> [    5.208822] ---[ end trace 0000000000000000 ]---
> [    5.209975]     # usercopy_test_valid: try faulted: last line seen lib/usercopy_kunit.c:304
> [    5.210227]     # usercopy_test_valid: internal error occurred preventing test case from running: -4
> [    5.210890]     # usercopy_test_valid: pass:0 fail:1 skip:0 total:1
> [    5.210942]     not ok 1 usercopy_test_valid
> 
> On mips:
> 
> CPU 0 Unable to handle kernel paging request at virtual address 00000018, epc == 80105f14, ra == 80299028
> Oops[#1]:
> CPU: 0 UID: 0 PID: 783 Comm: kunit_try_catch Tainted: G                 N 6.11.0-rc2-00102-g8857973f206d #1
> Tainted: [N]=TEST
> Hardware name: mti,malta
> $ 0   : 00000000 00000001 00000000 00000000
> $ 4   : 00000000 854ccec0 ffffffff 00000002
> $ 8   : 82c6c340 8155ba9c 42314149 00000001
> $12   : ffffffff 00000012 00000000 00000012
> $16   : 00000000 08000000 82c6c040 82c6c040
> $20   : 821c7c28 854ccec0 82205c68 80164c7c
> $24   : 00000000 00000000
> $28   : 85b14000 85b17d20 00000001 80299028
> Hi    : 00000000
> Lo    : 00000004
> epc   : 80105f14 mips_stack_top+0x20/0x78
> ra    : 80299028 arch_pick_mmap_layout+0xa4/0x1a4
> Status: 1000a403	KERNEL EXL IE
> Cause : 00800008 (ExcCode 02)
> BadVA : 00000018
> PrId  : 00019300 (MIPS 24Kc)
> Modules linked in:
> Process kunit_try_catch (pid: 783, threadinfo=85b14000, task=854ccec0, tls=00000000)
> Stack : 82205c68 80164c7c 00400cc0 00000004 813d989c 85b17dd4 85b2ac00 81250000
>         82c6c040 8070f984 00000001 802f1560 00000400 00000dc0 ffffffff 8070fa14
>         81b43a80 00000000 00000000 657ad470 00000001 85b2ac00 821c7c1c 821c7c1c
>         81250000 8070efb8 81b43bc0 657ad470 821c7c1c 81250000 85b2ac00 81250000
>         821c7c1c 81250000 821c7c28 854ccec0 82205c68 8070fa48 821c7c1c 821c7c1c
>         ...
> Call Trace:
> [<80105f14>] mips_stack_top+0x20/0x78
> [<80299028>] arch_pick_mmap_layout+0xa4/0x1a4
> [<8070f984>] kunit_vm_mmap_init+0xe8/0x114
> [<8070efb8>] __kunit_add_resource+0x4c/0xdc
> [<8070fa48>] kunit_vm_mmap+0x98/0xf0
> [<808181a4>] usercopy_test_init+0xc4/0x254
> [<8070eca8>] kunit_try_run_case+0x74/0x234
> [<807110f8>] kunit_generic_run_threadfn_adapter+0x28/0x50
> [<801647fc>] kthread+0x12c/0x154
> [<80103078>] ret_from_kernel_thread+0x14/0x1c
> Code: 9084635d  0003182b  00031b80 <8c460018> 3402ffff  30840004  000213c0  00431023  8cc30004
> ---[ end trace 0000000000000000 ]---
>     # usercopy_test_valid: try faulted: last line seen lib/usercopy_kunit.c:304
>     # usercopy_test_valid: internal error occurred preventing test case from running: -4
>     # usercopy_test_valid: pass:0 fail:1 skip:0 total:1
>     not ok 1 usercopy_test_valid
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ