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] [day] [month] [year] [list]
Date:   Thu, 24 Aug 2017 13:34:02 -0600
From:   Shuah Khan <shuahkh@....samsung.com>
To:     Thomas Meyer <thomas@...3r.de>, linux-kselftest@...r.kernel.org,
        user-mode-linux-devel@...ts.sourceforge.net,
        linux-kernel@...r.kernel.org, Shuah Khan <shuahkh@....samsung.com>
Subject: Re: kselftests results under uml

Hi Thomas,

On 08/24/2017 01:12 PM, Thomas Meyer wrote:
> Hi,
> 
> I am writing a script which bundles all kselftests and run them under an UML
> kernel.

Nice!

> 
> The script is available here:
> https://github.com/thomasmey/uml/blob/master/uml-fedora-kselftest.sh
> 
> kselftests needed some fixing on debian. See the commits here:
> https://github.com/thomasmey/linux/commits/devel

I will take a look at these. Would you be interested in sending upstream
patches for these fixes?

> 
> The results are against 4.13.0-rc5-00220-g770414c23190-dirty
> 
> Is anybody interested in those results? If so I can try to further automate
> these runs.

Yes. Please send them to me and cc linux-kselftest@...r.kernel.org as you
have done for this message.

> 
> Some tests fails because either the distro used still misses
> some packages, or the uml is buggy, or the tests are buggy. It's on my todo
> list to look at all errors in details.

Probably both. There are some tests that fail instead of skip when config
isn't enabled. We have been fixing them as we find them. You can find fixes
and enhancements slated for 4.14-rc1 in linux-kselftest next.

thanks for doing this.

> 
> script output:
> 
> Running tests in bpf
> ========================================
> #0/u add+sub+mul OK
> #0/p add+sub+mul OK
> #1/u unreachable OK
> #1/p unreachable OK
> #2/u unreachable2 OK
> #2/p unreachable2 OK
> #3/u out of range jump OK
> #3/p out of range jump OK
> #4/u out of range jump2 OK
> #4/p out of range jump2 OK
> #5/u test1 ld_imm64 OK
> #5/p test1 ld_imm64 OK
> #6/u test2 ld_imm64 OK
> #6/p test2 ld_imm64 OK
> #7/u test3 ld_imm64 OK
> #7/p test3 ld_imm64 OK
> #8/u test4 ld_imm64 OK
> #8/p test4 ld_imm64 OK
> #9/u test5 ld_imm64 OK
> #9/p test5 ld_imm64 OK
> #10/u test6 ld_imm64 OK
> #10/p test6 ld_imm64 OK
> #11/u test7 ld_imm64 OK
> #11/p test7 ld_imm64 OK
> #12/u test8 ld_imm64 OK
> #12/p test8 ld_imm64 OK
> #13/u test9 ld_imm64 OK
> #13/p test9 ld_imm64 OK
> #14/u test10 ld_imm64 OK
> #14/p test10 ld_imm64 OK
> #15/u test11 ld_imm64 OK
> #15/p test11 ld_imm64 OK
> #16/u test12 ld_imm64 OK
> #16/p test12 ld_imm64 OK
> #17/u test13 ld_imm64 OK
> #17/p test13 ld_imm64 OK
> #18/u no bpf_exit OK
> #18/p no bpf_exit OK
> #19/u loop (back-edge) OK
> #19/p loop (back-edge) OK
> #20/u loop2 (back-edge) OK
> #20/p loop2 (back-edge) OK
> #21/u conditional loop OK
> #21/p conditional loop OK
> #22/u read uninitialized register OK
> #22/p read uninitialized register OK
> #23/u read invalid register OK
> #23/p read invalid register OK
> #24/u program doesn't init R0 before exit OK
> #24/p program doesn't init R0 before exit OK
> #25/u program doesn't init R0 before exit in all branches OK
> #25/p program doesn't init R0 before exit in all branches OK
> #26/u stack out of bounds OK
> #26/p stack out of bounds OK
> #27/u invalid call insn1 OK
> #27/p invalid call insn1 OK
> #28/u invalid call insn2 OK
> #28/p invalid call insn2 OK
> #29/u invalid function call OK
> #29/p invalid function call OK
> #30/u uninitialized stack1 OK
> #30/p uninitialized stack1 OK
> #31/u uninitialized stack2 OK
> #31/p uninitialized stack2 OK
> #32/u invalid fp arithmetic OK
> #32/p invalid fp arithmetic OK
> #33/u non-invalid fp arithmetic OK
> #33/p non-invalid fp arithmetic OK
> #34/p invalid argument register OK
> #35/p non-invalid argument register OK
> #36/u check valid spill/fill OK
> #36/p check valid spill/fill OK
> #37/u check valid spill/fill, skb mark OK
> #37/p check valid spill/fill, skb mark OK
> #38/u check corrupted spill/fill OK
> #38/p check corrupted spill/fill OK
> #39/u invalid src register in STX OK
> #39/p invalid src register in STX OK
> #40/u invalid dst register in STX OK
> #40/p invalid dst register in STX OK
> #41/u invalid dst register in ST OK
> #41/p invalid dst register in ST OK
> #42/u invalid src register in LDX OK
> #42/p invalid src register in LDX OK
> #43/u invalid dst register in LDX OK
> #43/p invalid dst register in LDX OK
> #44/u junk insn OK
> #44/p junk insn OK
> #45/u junk insn2 OK
> #45/p junk insn2 OK
> #46/u junk insn3 OK
> #46/p junk insn3 OK
> #47/u junk insn4 OK
> #47/p junk insn4 OK
> #48/u junk insn5 OK
> #48/p junk insn5 OK
> #49/u misaligned read from stack OK
> #49/p misaligned read from stack OK
> #50/u invalid map_fd for function call OK
> #50/p invalid map_fd for function call OK
> #51/u don't check return value before access OK
> #51/p don't check return value before access OK
> #52/u access memory with incorrect alignment OK
> #52/p access memory with incorrect alignment OK
> #53/u sometimes access memory with incorrect alignment OK
> #53/p sometimes access memory with incorrect alignment OK
> #54/u jump test 1 OK
> #54/p jump test 1 OK
> #55/u jump test 2 OK
> #55/p jump test 2 OK
> #56/u jump test 3 OK
> #56/p jump test 3 OK
> #57/u jump test 4 OK
> #57/p jump test 4 OK
> #58/u jump test 5 OK
> #58/p jump test 5 OK
> #59/u access skb fields ok OK
> #59/p access skb fields ok OK
> #60/u access skb fields bad1 OK
> #60/p access skb fields bad1 OK
> #61/u access skb fields bad2 OK
> #61/p access skb fields bad2 OK
> #62/u access skb fields bad3 OK
> #62/p access skb fields bad3 OK
> #63/u access skb fields bad4 OK
> #63/p access skb fields bad4 OK
> #64/u check skb->mark is not writeable by sockets OK
> #64/p check skb->mark is not writeable by sockets OK
> #65/u check skb->tc_index is not writeable by sockets OK
> #65/p check skb->tc_index is not writeable by sockets OK
> #66/u check cb access: byte OK
> #66/p check cb access: byte OK
> #67/u __sk_buff->hash, offset 0, byte store not permitted OK
> #67/p __sk_buff->hash, offset 0, byte store not permitted OK
> #68/u __sk_buff->tc_index, offset 3, byte store not permitted OK
> #68/p __sk_buff->tc_index, offset 3, byte store not permitted OK
> #69/u check skb->hash byte load permitted OK
> #69/p check skb->hash byte load permitted OK
> #70/u check skb->hash byte load not permitted 1 OK
> #70/p check skb->hash byte load not permitted 1 OK
> #71/u check skb->hash byte load not permitted 2 OK
> #71/p check skb->hash byte load not permitted 2 OK
> #72/u check skb->hash byte load not permitted 3 OK
> #72/p check skb->hash byte load not permitted 3 OK
> #73/p check cb access: byte, wrong type OK
> #74/u check cb access: half OK
> #74/p check cb access: half OK
> #75/u check cb access: half, unaligned OK
> #75/p check cb access: half, unaligned OK
> #76/u check __sk_buff->hash, offset 0, half store not permitted OK
> #76/p check __sk_buff->hash, offset 0, half store not permitted OK
> #77/u check __sk_buff->tc_index, offset 2, half store not permitted OK
> #77/p check __sk_buff->tc_index, offset 2, half store not permitted OK
> #78/u check skb->hash half load permitted OK
> #78/p check skb->hash half load permitted OK
> #79/u check skb->hash half load not permitted OK
> #79/p check skb->hash half load not permitted OK
> #80/p check cb access: half, wrong type OK
> #81/u check cb access: word OK
> #81/p check cb access: word OK
> #82/u check cb access: word, unaligned 1 OK
> #82/p check cb access: word, unaligned 1 OK
> #83/u check cb access: word, unaligned 2 OK
> #83/p check cb access: word, unaligned 2 OK
> #84/u check cb access: word, unaligned 3 OK
> #84/p check cb access: word, unaligned 3 OK
> #85/u check cb access: word, unaligned 4 OK
> #85/p check cb access: word, unaligned 4 OK
> #86/u check cb access: double OK
> #86/p check cb access: double OK
> #87/u check cb access: double, unaligned 1 OK
> #87/p check cb access: double, unaligned 1 OK
> #88/u check cb access: double, unaligned 2 OK
> #88/p check cb access: double, unaligned 2 OK
> #89/u check cb access: double, oob 1 OK
> #89/p check cb access: double, oob 1 OK
> #90/u check cb access: double, oob 2 OK
> #90/p check cb access: double, oob 2 OK
> #91/u check __sk_buff->ifindex dw store not permitted OK
> #91/p check __sk_buff->ifindex dw store not permitted OK
> #92/u check __sk_buff->ifindex dw load not permitted OK
> #92/p check __sk_buff->ifindex dw load not permitted OK
> #93/p check cb access: double, wrong type OK
> #94/p check out of range skb->cb access OK
> #95/u write skb fields from socket prog OK
> #95/p write skb fields from socket prog OK
> #96/p write skb fields from tc_cls_act prog OK
> #97/u PTR_TO_STACK store/load OK
> #97/p PTR_TO_STACK store/load OK
> #98/u PTR_TO_STACK store/load - bad alignment on off OK
> #98/p PTR_TO_STACK store/load - bad alignment on off OK
> #99/u PTR_TO_STACK store/load - bad alignment on reg OK
> #99/p PTR_TO_STACK store/load - bad alignment on reg OK
> #100/u PTR_TO_STACK store/load - out of bounds low OK
> #100/p PTR_TO_STACK store/load - out of bounds low OK
> #101/u PTR_TO_STACK store/load - out of bounds high OK
> #101/p PTR_TO_STACK store/load - out of bounds high OK
> #102/u unpriv: return pointer OK
> #102/p unpriv: return pointer OK
> #103/u unpriv: add const to pointer OK
> #103/p unpriv: add const to pointer OK
> #104/u unpriv: add pointer to pointer OK
> #104/p unpriv: add pointer to pointer OK
> #105/u unpriv: neg pointer OK
> #105/p unpriv: neg pointer OK
> #106/u unpriv: cmp pointer with const OK
> #106/p unpriv: cmp pointer with const OK
> #107/u unpriv: cmp pointer with pointer OK
> #107/p unpriv: cmp pointer with pointer OK
> #108/u unpriv: check that printk is disallowed OK
> #108/p unpriv: check that printk is disallowed FAIL
> Failed to load prog 'Invalid argument'!
> 0: (7a) *(u64 *)(r10 -8) = 0
> 1: (bf) r1 = r10
> 2: (07) r1 += -8
> 3: (b7) r2 = 8
> 4: (bf) r3 = r1
> 5: (85) call bpf_trace_printk#6
> unknown func bpf_trace_printk#6
> #109/u unpriv: pass pointer to helper function OK
> #109/p unpriv: pass pointer to helper function OK
> #110/u unpriv: indirectly pass pointer on stack to helper function OK
> #110/p unpriv: indirectly pass pointer on stack to helper function OK
> #111/u unpriv: mangle pointer on stack 1 OK
> #111/p unpriv: mangle pointer on stack 1 OK
> #112/u unpriv: mangle pointer on stack 2 OK
> #112/p unpriv: mangle pointer on stack 2 OK
> #113/u unpriv: read pointer from stack in small chunks OK
> #113/p unpriv: read pointer from stack in small chunks OK
> #114/u unpriv: write pointer into ctx OK
> #114/p unpriv: write pointer into ctx OK
> #115/u unpriv: spill/fill of ctx OK
> #115/p unpriv: spill/fill of ctx OK
> #116/p unpriv: spill/fill of ctx 2 OK
> #117/p unpriv: spill/fill of ctx 3 OK
> #118/p unpriv: spill/fill of ctx 4 OK
> #119/p unpriv: spill/fill of different pointers stx OK
> #120/p unpriv: spill/fill of different pointers ldx FAIL
> Unexpected error message!
> #121/u unpriv: write pointer into map elem value OK
> #121/p unpriv: write pointer into map elem value OK
> #122/u unpriv: partial copy of pointer OK
> #122/p unpriv: partial copy of pointer OK
> #123/u unpriv: pass pointer to tail_call OK
> #123/p unpriv: pass pointer to tail_call OK
> #124/u unpriv: cmp map pointer with zero OK
> #124/p unpriv: cmp map pointer with zero OK
> #125/u unpriv: write into frame pointer OK
> #125/p unpriv: write into frame pointer OK
> #126/u unpriv: spill/fill frame pointer OK
> #126/p unpriv: spill/fill frame pointer OK
> #127/u unpriv: cmp of frame pointer OK
> #127/p unpriv: cmp of frame pointer OK
> #128/u unpriv: adding of fp OK
> #128/p unpriv: adding of fp OK
> #129/u unpriv: cmp of stack pointer OK
> #129/p unpriv: cmp of stack pointer OK
> #130/u stack pointer arithmetic OK
> #130/p stack pointer arithmetic OK
> #131/p raw_stack: no skb_load_bytes OK
> #132/p raw_stack: skb_load_bytes, negative len OK
> #133/p raw_stack: skb_load_bytes, negative len 2 OK
> #134/p raw_stack: skb_load_bytes, zero len OK
> #135/p raw_stack: skb_load_bytes, no init OK
> #136/p raw_stack: skb_load_bytes, init OK
> #137/p raw_stack: skb_load_bytes, spilled regs around bounds OK
> #138/p raw_stack: skb_load_bytes, spilled regs corruption OK
> #139/p raw_stack: skb_load_bytes, spilled regs corruption 2 OK
> #140/p raw_stack: skb_load_bytes, spilled regs + data OK
> #141/p raw_stack: skb_load_bytes, invalid access 1 OK
> #142/p raw_stack: skb_load_bytes, invalid access 2 OK
> #143/p raw_stack: skb_load_bytes, invalid access 3 OK
> #144/p raw_stack: skb_load_bytes, invalid access 4 OK
> #145/p raw_stack: skb_load_bytes, invalid access 5 OK
> #146/p raw_stack: skb_load_bytes, invalid access 6 OK
> #147/p raw_stack: skb_load_bytes, large access OK
> #148/p direct packet access: test1 OK
> #149/p direct packet access: test2 OK
> #150/p direct packet access: test3 OK
> #151/p direct packet access: test4 (write) OK
> #152/p direct packet access: test5 (pkt_end >= reg, good access) OK
> #153/p direct packet access: test6 (pkt_end >= reg, bad access) OK
> #154/p direct packet access: test7 (pkt_end >= reg, both accesses) OK
> #155/p direct packet access: test8 (double test, variant 1) OK
> #156/p direct packet access: test9 (double test, variant 2) OK
> #157/p direct packet access: test10 (write invalid) OK
> #158/p direct packet access: test11 (shift, good access) OK
> #159/p direct packet access: test12 (and, good access) OK
> #160/p direct packet access: test13 (branches, good access) OK
> #161/p direct packet access: test14 (pkt_ptr += 0, CONST_IMM, good access) OK
> #162/p direct packet access: test15 (spill with xadd) OK
> #163/p direct packet access: test16 (arith on data_end) OK
> #164/p direct packet access: test17 (pruning, alignment) OK
> #165/p direct packet access: test18 (imm += pkt_ptr, 1) OK
> #166/p direct packet access: test19 (imm += pkt_ptr, 2) OK
> #167/p direct packet access: test20 (x += pkt_ptr, 1) FAIL
> Failed to load prog 'Permission denied'!
> 0: (61) r2 = *(u32 *)(r1 +76)
> 1: (61) r3 = *(u32 *)(r1 +80)
> 2: (b7) r0 = -1
> 3: (7b) *(u64 *)(r10 -8) = r0
> 4: (79) r0 = *(u64 *)(r10 -8)
> 5: (57) r0 &= 65535
> 6: (bf) r4 = r0
> 7: (0f) r4 += r2
> 8: (bf) r5 = r4
> 9: (07) r4 += 65534
> 10: (2d) if r4 > r3 goto pc+1
>  R0=inv48,min_value=0,max_value=65535,min_align=1 R1=ctx R2=pkt(id=0,off=0,r=0) R3=pkt_end R4=pkt(id=1,off=65534,r=65534) R5=pkt(id=1,off=0,r=65534) R10=fp
> 11: (7b) *(u64 *)(r5 +0) = r4
> misaligned packet access off 2+0+0 size 8
> #168/p direct packet access: test21 (x += pkt_ptr, 2) FAIL
> Failed to load prog 'Permission denied'!
> 0: (61) r2 = *(u32 *)(r1 +76)
> 1: (61) r3 = *(u32 *)(r1 +80)
> 2: (bf) r0 = r2
> 3: (07) r0 += 8
> 4: (2d) if r0 > r3 goto pc+9
>  R0=pkt(id=0,off=8,r=8) R1=ctx R2=pkt(id=0,off=0,r=8) R3=pkt_end R10=fp
> 5: (b7) r4 = -1
> 6: (7b) *(u64 *)(r10 -8) = r4
> 7: (79) r4 = *(u64 *)(r10 -8)
> 8: (57) r4 &= 65535
> 9: (0f) r4 += r2
> 10: (bf) r5 = r4
> 11: (07) r4 += 65534
> 12: (2d) if r4 > r3 goto pc+1
>  R0=pkt(id=0,off=8,r=8) R1=ctx R2=pkt(id=0,off=0,r=8) R3=pkt_end R4=pkt(id=1,off=65534,r=65534) R5=pkt(id=1,off=0,r=65534) R10=fp
> 13: (7b) *(u64 *)(r5 +0) = r4
> misaligned packet access off 2+0+0 size 8
> #169/p direct packet access: test22 (x += pkt_ptr, 3) OK
> #170/p direct packet access: test23 (x += pkt_ptr, 4) OK
> #171/p direct packet access: test24 (x += pkt_ptr, 5) FAIL
> Failed to load prog 'Permission denied'!
> 0: (61) r2 = *(u32 *)(r1 +76)
> 1: (61) r3 = *(u32 *)(r1 +80)
> 2: (b7) r0 = -1
> 3: (7b) *(u64 *)(r10 -8) = r0
> 4: (79) r0 = *(u64 *)(r10 -8)
> 5: (57) r0 &= 255
> 6: (bf) r4 = r0
> 7: (b7) r0 = 64
> 8: (0f) r0 += r4
> 9: (0f) r0 += r2
> 10: (bf) r5 = r0
> 11: (07) r0 += 65534
> 12: (2d) if r0 > r3 goto pc+1
>  R0=pkt(id=1,off=65534,r=65534) R1=ctx R2=pkt(id=0,off=0,r=0) R3=pkt_end R4=inv56,min_value=0,max_value=255,min_align=1 R5=pkt(id=1,off=0,r=65534) R10=fp
> 13: (7b) *(u64 *)(r5 +0) = r0
> misaligned packet access off 2+0+0 size 8
> #172/p helper access to packet: test1, valid packet_ptr range OK
> #173/p helper access to packet: test2, unchecked packet_ptr OK
> #174/p helper access to packet: test3, variable add OK
> #175/p helper access to packet: test4, packet_ptr with bad range OK
> #176/p helper access to packet: test5, packet_ptr with too short range OK
> #177/p helper access to packet: test6, cls valid packet_ptr range OK
> #178/p helper access to packet: test7, cls unchecked packet_ptr OK
> #179/p helper access to packet: test8, cls variable add OK
> #180/p helper access to packet: test9, cls packet_ptr with bad range OK
> #181/p helper access to packet: test10, cls packet_ptr with too short range OK
> #182/p helper access to packet: test11, cls unsuitable helper 1 OK
> #183/p helper access to packet: test12, cls unsuitable helper 2 OK
> #184/p helper access to packet: test13, cls helper ok OK
> #185/p helper access to packet: test14, cls helper fail sub OK
> #186/p helper access to packet: test15, cls helper fail range 1 OK
> #187/p helper access to packet: test16, cls helper fail range 2 OK
> #188/p helper access to packet: test17, cls helper fail range 3 OK
> #189/p helper access to packet: test18, cls helper fail range zero OK
> #190/p helper access to packet: test19, pkt end as input OK
> #191/p helper access to packet: test20, wrong reg OK
> #192/u valid map access into an array with a constant OK
> #192/p valid map access into an array with a constant OK
> #193/u valid map access into an array with a register OK
> #193/p valid map access into an array with a register OK (NOTE: reject due to unknown alignment)
> #194/u valid map access into an array with a variable OK
> #194/p valid map access into an array with a variable OK (NOTE: reject due to unknown alignment)
> #195/u valid map access into an array with a signed variable OK
> #195/p valid map access into an array with a signed variable OK (NOTE: reject due to unknown alignment)
> #196/u invalid map access into an array with a constant OK
> #196/p invalid map access into an array with a constant OK
> #197/u invalid map access into an array with a register OK
> #197/p invalid map access into an array with a register OK (NOTE: reject due to unknown alignment)
> #198/u invalid map access into an array with a variable OK
> #198/p invalid map access into an array with a variable OK (NOTE: reject due to unknown alignment)
> #199/u invalid map access into an array with no floor check OK
> #199/p invalid map access into an array with no floor check OK (NOTE: reject due to unknown alignment)
> #200/u invalid map access into an array with a invalid max check OK
> #200/p invalid map access into an array with a invalid max check OK (NOTE: reject due to unknown alignment)
> #201/u invalid map access into an array with a invalid max check OK
> #201/p invalid map access into an array with a invalid max check OK (NOTE: reject due to unknown alignment)
> #202/p multiple registers share map_lookup_elem result OK
> #203/p alu ops on ptr_to_map_value_or_null, 1 OK
> #204/p alu ops on ptr_to_map_value_or_null, 2 OK
> #205/p alu ops on ptr_to_map_value_or_null, 3 OK
> #206/p invalid memory access with multiple map_lookup_elem calls OK
> #207/p valid indirect map_lookup_elem access with 2nd lookup in branch OK
> #208/p multiple registers share map_lookup_elem bad reg type OK
> #209/u invalid map access from else condition OK
> #209/p invalid map access from else condition OK (NOTE: reject due to unknown alignment)
> #210/p constant register |= constant should keep constant type FAIL
> Failed to load prog 'Invalid argument'!
> #211/p constant register |= constant should not bypass stack boundary checks FAIL
> Unexpected error message!
> #212/p constant register |= constant register should keep constant type FAIL
> Failed to load prog 'Invalid argument'!
> #213/p constant register |= constant register should not bypass stack boundary checks FAIL
> Unexpected error message!
> #214/p invalid direct packet write for LWT_IN OK
> #215/p invalid direct packet write for LWT_OUT OK
> #216/p direct packet write for LWT_XMIT OK
> #217/p direct packet read for LWT_IN OK
> #218/p direct packet read for LWT_OUT OK
> #219/p direct packet read for LWT_XMIT OK
> #220/p overlapping checks for direct packet access OK
> #221/u invalid access of tc_classid for LWT_IN OK
> #221/p invalid access of tc_classid for LWT_IN OK
> #222/u invalid access of tc_classid for LWT_OUT OK
> #222/p invalid access of tc_classid for LWT_OUT OK
> #223/u invalid access of tc_classid for LWT_XMIT OK
> #223/p invalid access of tc_classid for LWT_XMIT OK
> #224/u leak pointer into ctx 1 OK
> #224/p leak pointer into ctx 1 OK
> #225/u leak pointer into ctx 2 OK
> #225/p leak pointer into ctx 2 OK
> #226/u leak pointer into ctx 3 OK
> #226/p leak pointer into ctx 3 OK
> #227/u leak pointer into map val OK
> #227/p leak pointer into map val OK
> #228/p helper access to map: full range FAIL
> Failed to load prog 'Invalid argument'!
> #229/p helper access to map: partial range FAIL
> Failed to load prog 'Invalid argument'!
> #230/p helper access to map: empty range FAIL
> Unexpected error message!
> #231/p helper access to map: out-of-bound range FAIL
> Unexpected error message!
> #232/p helper access to map: negative range FAIL
> Unexpected error message!
> #233/p helper access to adjusted map (via const imm): full range FAIL
> Failed to load prog 'Invalid argument'!
> #234/p helper access to adjusted map (via const imm): partial range FAIL
> Failed to load prog 'Invalid argument'!
> #235/p helper access to adjusted map (via const imm): empty range FAIL
> Unexpected error message!
> #236/p helper access to adjusted map (via const imm): out-of-bound range FAIL
> Unexpected error message!
> #237/p helper access to adjusted map (via const imm): negative range (> adjustment) FAIL
> Unexpected error message!
> #238/p helper access to adjusted map (via const imm): negative range (< adjustment) FAIL
> Unexpected error message!
> #239/p helper access to adjusted map (via const reg): full range FAIL
> Failed to load prog 'Invalid argument'!
> #240/p helper access to adjusted map (via const reg): partial range FAIL
> Failed to load prog 'Invalid argument'!
> #241/p helper access to adjusted map (via const reg): empty range FAIL
> Unexpected error message!
> #242/p helper access to adjusted map (via const reg): out-of-bound range FAIL
> Unexpected error message!
> #243/p helper access to adjusted map (via const reg): negative range (> adjustment) FAIL
> Unexpected error message!
> #244/p helper access to adjusted map (via const reg): negative range (< adjustment) FAIL
> Unexpected error message!
> #245/p helper access to adjusted map (via variable): full range FAIL
> Failed to load prog 'Invalid argument'!
> #246/p helper access to adjusted map (via variable): partial range FAIL
> Failed to load prog 'Invalid argument'!
> #247/p helper access to adjusted map (via variable): empty range FAIL
> Unexpected error message!
> #248/p helper access to adjusted map (via variable): no max check FAIL
> Unexpected error message!
> #249/p helper access to adjusted map (via variable): wrong max check FAIL
> Unexpected error message!
> #250/u map element value is preserved across register spilling OK
> #250/p map element value is preserved across register spilling OK
> #251/u map element value or null is marked on register spilling OK
> #251/p map element value or null is marked on register spilling OK
> #252/u map element value store of cleared call register OK
> #252/p map element value store of cleared call register OK
> #253/u map element value with unaligned store OK
> #253/p map element value with unaligned store OK (NOTE: reject due to unknown alignment)
> #254/u map element value with unaligned load OK
> #254/p map element value with unaligned load OK (NOTE: reject due to unknown alignment)
> #255/u map element value illegal alu op, 1 OK
> #255/p map element value illegal alu op, 1 OK
> #256/u map element value illegal alu op, 2 OK
> #256/p map element value illegal alu op, 2 OK
> #257/u map element value illegal alu op, 3 OK
> #257/p map element value illegal alu op, 3 OK
> #258/u map element value illegal alu op, 4 OK
> #258/p map element value illegal alu op, 4 OK
> #259/u map element value illegal alu op, 5 OK
> #259/p map element value illegal alu op, 5 OK
> #260/u map element value is preserved across register spilling OK
> #260/p map element value is preserved across register spilling OK (NOTE: reject due to unknown alignment)
> #261/p helper access to variable memory: stack, bitwise AND + JMP, correct bounds FAIL
> Failed to load prog 'Invalid argument'!
> #262/p helper access to variable memory: stack, bitwise AND, zero included FAIL
> Unexpected error message!
> #263/p helper access to variable memory: stack, bitwise AND + JMP, wrong max FAIL
> Unexpected error message!
> #264/p helper access to variable memory: stack, JMP, correct bounds FAIL
> Failed to load prog 'Invalid argument'!
> #265/p helper access to variable memory: stack, JMP (signed), correct bounds FAIL
> Failed to load prog 'Invalid argument'!
> #266/p helper access to variable memory: stack, JMP, bounds + offset FAIL
> Unexpected error message!
> #267/p helper access to variable memory: stack, JMP, wrong max FAIL
> Unexpected error message!
> #268/p helper access to variable memory: stack, JMP, no max check FAIL
> Unexpected error message!
> #269/p helper access to variable memory: stack, JMP, no min check FAIL
> Unexpected error message!
> #270/p helper access to variable memory: stack, JMP (signed), no min check FAIL
> Unexpected error message!
> #271/p helper access to variable memory: map, JMP, correct bounds FAIL
> Failed to load prog 'Invalid argument'!
> #272/p helper access to variable memory: map, JMP, wrong max FAIL
> Unexpected error message!
> #273/p helper access to variable memory: map adjusted, JMP, correct bounds FAIL
> Failed to load prog 'Invalid argument'!
> #274/p helper access to variable memory: map adjusted, JMP, wrong max FAIL
> Unexpected error message!
> #275/p helper access to variable memory: size > 0 not allowed on NULL OK
> #276/p helper access to variable memory: size = 0 not allowed on != NULL OK
> #277/p helper access to variable memory: 8 bytes leak FAIL
> Unexpected error message!
> #278/p helper access to variable memory: 8 bytes no leak (init memory) FAIL
> Failed to load prog 'Invalid argument'!
> #279/u invalid and of negative number OK
> #279/p invalid and of negative number OK (NOTE: reject due to unknown alignment)
> #280/u invalid range check OK
> #280/p invalid range check OK (NOTE: reject due to unknown alignment)
> #281/u map in map access OK
> #281/p map in map access OK
> #282/u invalid inner map pointer OK
> #282/p invalid inner map pointer OK
> #283/u forgot null checking on the inner map pointer OK
> #283/p forgot null checking on the inner map pointer OK
> #284/u ld_abs: check calling conv, r1 OK
> #284/p ld_abs: check calling conv, r1 OK
> #285/u ld_abs: check calling conv, r2 OK
> #285/p ld_abs: check calling conv, r2 OK
> #286/u ld_abs: check calling conv, r3 OK
> #286/p ld_abs: check calling conv, r3 OK
> #287/u ld_abs: check calling conv, r4 OK
> #287/p ld_abs: check calling conv, r4 OK
> #288/u ld_abs: check calling conv, r5 OK
> #288/p ld_abs: check calling conv, r5 OK
> #289/u ld_abs: check calling conv, r7 OK
> #289/p ld_abs: check calling conv, r7 OK
> #290/u ld_ind: check calling conv, r1 OK
> #290/p ld_ind: check calling conv, r1 OK
> #291/u ld_ind: check calling conv, r2 OK
> #291/p ld_ind: check calling conv, r2 OK
> #292/u ld_ind: check calling conv, r3 OK
> #292/p ld_ind: check calling conv, r3 OK
> #293/u ld_ind: check calling conv, r4 OK
> #293/p ld_ind: check calling conv, r4 OK
> #294/u ld_ind: check calling conv, r5 OK
> #294/p ld_ind: check calling conv, r5 OK
> #295/u ld_ind: check calling conv, r7 OK
> #295/p ld_ind: check calling conv, r7 OK
> #296/p check bpf_perf_event_data->sample_period byte load permitted FAIL
> Failed to load prog 'Invalid argument'!
> #297/p check bpf_perf_event_data->sample_period half load permitted FAIL
> Failed to load prog 'Invalid argument'!
> #298/p check bpf_perf_event_data->sample_period word load permitted FAIL
> Failed to load prog 'Invalid argument'!
> #299/p check bpf_perf_event_data->sample_period dword load permitted FAIL
> Failed to load prog 'Invalid argument'!
> #300/u check skb->data half load not permitted OK
> #300/p check skb->data half load not permitted OK
> #301/p check skb->tc_classid half load not permitted for lwt prog OK
> #302/u bounds checks mixing signed and unsigned, positive bounds OK
> #302/p bounds checks mixing signed and unsigned, positive bounds OK
> #303/u bounds checks mixing signed and unsigned OK
> #303/p bounds checks mixing signed and unsigned OK
> #304/u bounds checks mixing signed and unsigned, variant 2 OK
> #304/p bounds checks mixing signed and unsigned, variant 2 OK
> #305/u bounds checks mixing signed and unsigned, variant 3 OK
> #305/p bounds checks mixing signed and unsigned, variant 3 OK
> #306/u bounds checks mixing signed and unsigned, variant 4 OK
> #306/p bounds checks mixing signed and unsigned, variant 4 OK
> #307/u bounds checks mixing signed and unsigned, variant 5 OK
> #307/p bounds checks mixing signed and unsigned, variant 5 OK
> #308/u bounds checks mixing signed and unsigned, variant 6 OK
> #308/p bounds checks mixing signed and unsigned, variant 6 OK
> #309/u bounds checks mixing signed and unsigned, variant 7 OK
> #309/p bounds checks mixing signed and unsigned, variant 7 OK
> #310/u bounds checks mixing signed and unsigned, variant 8 OK
> #310/p bounds checks mixing signed and unsigned, variant 8 OK
> #311/u bounds checks mixing signed and unsigned, variant 9 OK
> #311/p bounds checks mixing signed and unsigned, variant 9 OK
> #312/u bounds checks mixing signed and unsigned, variant 10 OK
> #312/p bounds checks mixing signed and unsigned, variant 10 OK
> #313/u bounds checks mixing signed and unsigned, variant 11 OK
> #313/p bounds checks mixing signed and unsigned, variant 11 OK
> #314/u bounds checks mixing signed and unsigned, variant 12 OK
> #314/p bounds checks mixing signed and unsigned, variant 12 OK
> #315/u bounds checks mixing signed and unsigned, variant 13 OK
> #315/p bounds checks mixing signed and unsigned, variant 13 OK
> #316/u bounds checks mixing signed and unsigned, variant 14 OK
> #316/p bounds checks mixing signed and unsigned, variant 14 OK
> #317/u bounds checks mixing signed and unsigned, variant 15 OK
> #317/p bounds checks mixing signed and unsigned, variant 15 OK
> #318/u bounds checks mixing signed and unsigned, variant 16 OK
> #318/p bounds checks mixing signed and unsigned, variant 16 OK
> #319/u subtraction bounds (map value) OK
> #319/p subtraction bounds (map value) OK
> Summary: 453 PASSED, 51 FAILED
> selftests: test_verifier [FAIL]
> test_tag: test_tag.c:124: tag_from_alg: Assertion `fd_base > 0' failed.
> /opt/run_kselftest.sh: line 8:   956 Aborted                 ./test_tag
> selftests: test_tag [FAIL]
> Failed to retrieve # possible CPUs!
> selftests: test_maps [FAIL]
> Failed to retrieve # possible CPUs!
> selftests: test_lru_map [FAIL]
> test_lpm: OK
> selftests: test_lpm_map [PASS]
> test_pkt_access:PASS:ipv4 589 nsec
> test_pkt_access:PASS:ipv6 471 nsec
> test_xdp:PASS:ipv4 8704 nsec
> test_xdp:PASS:ipv6 2816 nsec
> Failed to retrieve # possible CPUs!
> selftests: test_progs [FAIL]
> Test   0: mov ... PASS
> Test   1: shift ... PASS
> Test   2: addsub ... PASS
> Test   3: mul ... PASS
> Test   4: unknown shift ... PASS
> Test   5: unknown mul ... PASS
> Test   6: packet const offset ... PASS
> Test   7: packet variable offset ... PASS
> Results: 8 pass 0 fail
> selftests: test_align [PASS]
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_enable: No such file or directory
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_harden: No such file or directory
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_enable: No such file or directory
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_harden: No such file or directory
> [ JIT enabled:0 hardened:0 ]
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_enable: No such file or directory
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_harden: No such file or directory
> [ JIT enabled:1 hardened:0 ]
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_enable: No such file or directory
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_harden: No such file or directory
> [ JIT enabled:1 hardened:1 ]
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_enable: No such file or directory
> sysctl: cannot stat /proc/sys/net/core/bpf_jit_harden: No such file or directory
> [ JIT enabled:1 hardened:2 ]
> sysctl: malformed setting "net.core.bpf_jit_enable="
> sysctl: malformed setting "net.core.bpf_jit_harden="
> selftests: test_kmod.sh [FAIL]
> Running tests in breakpoints
> ========================================
> TAP version 13
> Bail out! open("/sys/power/state") failed (is this test running as root?)
> 1..0
> selftests: step_after_suspend_test [FAIL]
> Running tests in capabilities
> ========================================
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [RUN]	+++ Tests with uid == 0 +++
> [NOTE]	Using global UIDs for tests
> [RUN]	Root => ep
> [OK]	Child succeeded
> [OK]	Check cap_ambient manipulation rules
> [OK]	PR_CAP_AMBIENT_RAISE failed on non-inheritable cap
> [OK]	PR_CAP_AMBIENT_RAISE failed on non-permitted cap
> [OK]	PR_CAP_AMBIENT_RAISE worked
> [OK]	Basic manipulation appears to work
> [RUN]	Root +i => eip
> [OK]	Child succeeded
> [RUN]	UID 0 +ia => eipa
> [OK]	Child succeeded
> [RUN]	Root +ia, suidroot => eipa
> [OK]	Child succeeded
> [RUN]	Root +ia, suidnonroot => ip
> [OK]	Child succeeded
> [RUN]	Root +ia, sgidroot => eipa
> [OK]	Child succeeded
> [RUN]	Root +ia, sgidnonroot => eip
> [OK]	Child succeeded
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Capabilities after execve were correct
> [OK]	Child succeeded
> selftests: test_execve [PASS]
> Running tests in cpufreq
> ========================================
> pid 1045's current affinity mask: 1
> pid 1045's new affinity mask: 1
> skip all tests: cpufreq directory not available in sysfs
> selftests: main.sh [FAIL]
> Running tests in cpu-hotplug
> ========================================
> pid 1054's current affinity mask: 1
> pid 1054's new affinity mask: 1
> CPU online/offline summary:
> 	 Cpus in online state: 0
> 	 Cpus in offline state: 0
> Limited scope test: one hotplug cpu
> 	 (leaves cpu in the original state):
> 	 online to offline to online: cpu 0
> ./cpu-on-off-test.sh: line 83: /sys/devices/system/cpu/cpu0/online: Permission denied
> offline_cpu_expect_success 0: unexpected fail
> ./cpu-on-off-test.sh: line 78: /sys/devices/system/cpu/cpu0/online: Permission denied
> online_cpu_expect_success 0: unexpected fail
> selftests: cpu-on-off-test.sh [PASS]
> Running tests in efivarfs
> ========================================
> skip all tests: efivarfs is not mounted on /sys/firmware/efi/efivars
> selftests: efivarfs.sh [PASS]
> Running tests in exec
> ========================================
> /bin/sh: /dev/fd/5/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
> yyyyyyyyyyyyyyyy: File name too long
> Check success of execveat(3, '../execveat', 0)... [OK]
> Check success of execveat(5, 'execveat', 0)... [OK]
> Check success of execveat(6, 'execveat', 0)... [OK]
> Check success of execveat(-100, '/opt/exec/execveat', 0)... [OK]
> Check success of execveat(99, '/opt/exec/execveat', 0)... [OK]
> Check success of execveat(8, '', 4096)... [OK]
> Check success of execveat(17, '', 4096)... [OK]
> Check success of execveat(9, '', 4096)... [OK]
> Check success of execveat(14, '', 4096)... [OK]
> Check success of execveat(15, '', 4096)... [OK]
> Check failure of execveat(8, '', 0) with ENOENT... [OK]
> Check failure of execveat(8, '(null)', 4096) with EFAULT... [OK]
> Check success of execveat(5, 'execveat.symlink', 0)... [OK]
> Check success of execveat(6, 'execveat.symlink', 0)... [OK]
> Check success of execveat(-100, '/opt/exec/execveat.symlink', 0)... [OK]
> Check success of execveat(10, '', 4096)... [OK]
> Check success of execveat(10, '', 4352)... [OK]
> Check failure of execveat(5, 'execveat.symlink', 256) with ELOOP... [OK]
> Check failure of execveat(6, 'execveat.symlink', 256) with ELOOP... [OK]
> Check failure of execveat(-100, '/opt/exec/execveat.symlink', 256) with ELOOP... [OK]
> Check success of execveat(3, '../script', 0)... [OK]
> Check success of execveat(5, 'script', 0)... [OK]
> Check success of execveat(6, 'script', 0)... [OK]
> Check success of execveat(-100, '/opt/exec/script', 0)... [OK]
> Check success of execveat(13, '', 4096)... [OK]
> Check success of execveat(13, '', 4352)... [OK]
> Check failure of execveat(18, '', 4096) with ENOENT... [OK]
> Check failure of execveat(7, 'script', 0) with ENOENT... [OK]
> Check success of execveat(16, '', 4096)... [OK]
> Check success of execveat(4, '../script', 0)... [OK]
> Check success of execveat(4, 'script', 0)... [OK]
> Check success of execveat(4, '../script', 0)... [OK]
> Check failure of execveat(4, 'script', 0) with ENOENT... [OK]
> Check failure of execveat(5, 'execveat', 65535) with EINVAL... [OK]
> Check failure of execveat(5, 'no-such-file', 0) with ENOENT... [OK]
> Check failure of execveat(6, 'no-such-file', 0) with ENOENT... [OK]
> Check failure of execveat(-100, 'no-such-file', 0) with ENOENT... [OK]
> Check failure of execveat(5, '', 4096) with EACCES... [OK]
> Check failure of execveat(5, 'Makefile', 0) with EACCES... [OK]
> Check failure of execveat(11, '', 4096) with EACCES... [OK]
> Check failure of execveat(12, '', 4096) with EACCES... [OK]
> Check failure of execveat(99, '', 4096) with EBADF... [OK]
> Check failure of execveat(99, 'execveat', 0) with EBADF... [OK]
> Check failure of execveat(8, 'execveat', 0) with ENOTDIR... [OK]
> Invoke copy of 'execveat' via filename of length 4093:
> Check success of execveat(19, '', 4096)... [OK]
> Check success of execveat(5, 'xxxxxxxxxxxxxxxxxxxx...yyyyyyyyyyyyyyyyyyyy', 0)... [OK]
> Invoke copy of 'script' via filename of length 4093:
> Check success of execveat(20, '', 4096)... [OK]
> Check success of execveat(5, 'xxxxxxxxxxxxxxxxxxxx...yyyyyyyyyyyyyyyyyyyy', 0)... [OK]
> selftests: execveat [PASS]
> Running tests in firmware
> ========================================
> ./fw_filesystem.sh: timeout works
> ./fw_filesystem.sh: filesystem loading works
> ./fw_filesystem.sh: async filesystem loading works
> selftests: fw_filesystem.sh [PASS]
> ./fw_fallback.sh: timeout works
> ./fw_fallback.sh: firmware comparison works
> ./fw_fallback.sh: fallback mechanism works
> ./fw_fallback.sh: cancelling fallback mechanism works
> ./fw_fallback.sh: custom fallback loading mechanism works
> ./fw_fallback.sh: cancelling custom fallback mechanism works
> selftests: fw_fallback.sh [PASS]
> Running tests in ftrace
> ========================================
> === Ftrace unit tests ===
> [1] Basic trace file check	[PASS]
> [2] Basic test for tracers	[PASS]
> [3] Basic trace clock test	[PASS]
> [4] Basic event tracing check	[PASS]
> [5] event tracing - enable/disable with event level files	[PASS]
> [6] event tracing - restricts events based on pid	[PASS]
> [7] event tracing - enable/disable with subsystem level files	[PASS]
> [8] event tracing - enable/disable with top level files	[PASS]
> [9] ftrace - function graph filters with stack tracer	[UNSUPPORTED]
> [10] ftrace - function graph filters	[UNSUPPORTED]
> [11] ftrace - test for function event triggers	[UNSUPPORTED]
> [12] ftrace - function glob filters	[UNSUPPORTED]
> [13] ftrace - function pid filters	[UNSUPPORTED]
> [14] ftrace - function profiler with function tracing	[UNSUPPORTED]
> [15] ftrace - test reading of set_ftrace_filter	[UNSUPPORTED]
> [16] ftrace - test for function traceon/off triggers	[UNSUPPORTED]
> [17] Test creation and deletion of trace instances while setting an event	[PASS]
> [18] Test creation and deletion of trace instances	[PASS]
> [19] Kprobe dynamic event - adding and removing	[UNSUPPORTED]
> [20] Kprobe dynamic event - busy event check	[UNSUPPORTED]
> [21] Kprobe dynamic event with arguments	[UNSUPPORTED]
> [22] Kprobes event arguments with types	[UNSUPPORTED]
> [23] Kprobe event auto/manual naming	[UNSUPPORTED]
> [24] Kprobe dynamic event with function tracer	[UNSUPPORTED]
> [25] Kprobe dynamic event - probing module	[UNSUPPORTED]
> [26] Kretprobe dynamic event with arguments	[UNSUPPORTED]
> [27] Kretprobe dynamic event with maxactive	[UNSUPPORTED]
> [28] Register/unregister many kprobe events	[FAIL]
> [29] event trigger - test event enable/disable trigger	[PASS]
> [30] event trigger - test trigger filter	[PASS]
> [31] event trigger - test histogram modifiers	[UNSUPPORTED]
> [32] event trigger - test histogram trigger	[UNSUPPORTED]
> [33] event trigger - test multiple histogram triggers	[UNSUPPORTED]
> [34] event trigger - test snapshot-trigger	[PASS]
> [35] event trigger - test stacktrace-trigger	[PASS]
> [36] event trigger - test traceon/off trigger	[PASS]
> [37] (instance)  Basic test for tracers	[PASS]
> [38] (instance)  Basic trace clock test	[PASS]
> [39] (instance)  event tracing - enable/disable with event level files	[PASS]
> [40] (instance)  event tracing - restricts events based on pid	[PASS]
> [41] (instance)  event tracing - enable/disable with subsystem level files	[PASS]
> [42] (instance)  ftrace - test for function event triggers	[UNSUPPORTED]
> [43] (instance)  ftrace - test for function traceon/off triggers	[UNSUPPORTED]
> [44] (instance)  event trigger - test event enable/disable trigger	[PASS]
> [45] (instance)  event trigger - test trigger filter	[PASS]
> [46] (instance)  event trigger - test histogram modifiers	[UNSUPPORTED]
> [47] (instance)  event trigger - test histogram trigger	[UNSUPPORTED]
> [48] (instance)  event trigger - test multiple histogram triggers	[UNSUPPORTED]
> # of passed:  22
> # of failed:  1
> # of unresolved:  0
> # of untested:  0
> # of unsupported:  25
> # of xfailed:  0
> # of undefined(test bug):  0
> selftests: ftracetest [FAIL]
> Running tests in futex
> ========================================
> tput: terminal attributes: No such device or address
> tput: terminal attributes: No such device or address
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=0 owner=0 timeout=0ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=0 owner=0 timeout=0ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=1 owner=0 timeout=0ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=0 owner=1 timeout=0ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=1 owner=0 timeout=0ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=0 owner=1 timeout=0ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=1 owner=0 timeout=5000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=1 owner=0 timeout=5000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=1 owner=0 timeout=500000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=1 owner=0 timeout=500000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=0 owner=0 timeout=5000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=0 owner=0 timeout=5000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=0 owner=0 timeout=500000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=0 owner=0 timeout=500000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=0 owner=1 timeout=5000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=1 owner=0 timeout=5000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=0 owner=1 timeout=500000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=1 owner=0 timeout=500000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=1 locked=1 owner=0 timeout=2000000000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi: Test requeue functionality
> 	Arguments: broadcast=0 locked=1 owner=0 timeout=2000000000ns
> selftests: futex-requeue-pi [ PASS]
> futex_requeue_pi_mismatched_ops: Detect mismatched requeue_pi operations
> selftests: futex-requeue-pi-mismatched-ops [ PASS]
> futex_requeue_pi_signal_restart: Test signal handling during requeue_pi
> 	Arguments: <none>
> selftests: futex-requeue-pi-signal-restart [ PASS]
> futex_wait_timeout: Block on a futex and wait for timeout
> 	Arguments: timeout=100000ns
> selftests: futex-wait-timeout [ PASS]
> futex_wait_wouldblock: Test the unexpected futex value in FUTEX_WAIT
> selftests: futex-wait-wouldblock [ PASS]
> futex_wait_uninitialized_heap: Test the uninitialized futex value in FUTEX_WAIT
> selftests: futex-wait-uninitialized-heap [ PASS]
> futex_wait_private_mapped_file: Test the futex value of private file mappings in FUTEX_WAIT
> selftests: futex-wait-private-mapped-file [ PASS]
> Running tests in gpio
> ========================================
> /opt/run_kselftest.sh: line 64: cd: gpio: No such file or directory
> /opt/run_kselftest.sh: line 65: ./gpio-mockup.sh: No such file or directory
> selftests: gpio-mockup.sh [FAIL]
> Running tests in intel_pstate
> ========================================
> ./run.sh: line 35: gcc: command not found
> Problem compiling aperf.c.
> selftests: run.sh [FAIL]
> Running tests in ipc
> ========================================
> 1..0
> selftests: msgque [PASS]
> Running tests in kcmp
> ========================================
> pid1:   2808 pid2:   2809 FD:  2 FILES:  2 VM:  1 FS:  1 SIGHAND:  2 IO:  2 SYSVSEM:  0 INV: -1
> PASS: 0 returned as expected
> 1..2
> 1..0
> selftests: kcmp_test [PASS]
> Running tests in lib
> ========================================
> printf: ok
> selftests: printf.sh [PASS]
> bitmap: ok
> selftests: bitmap.sh [PASS]
> Running tests in membarrier
> ========================================
> TAP version 13
> ok 1 sys_membarrier available
> ok 2 sys membarrier invalid command test: command = -1, flags = 0. Failed as expected
> ok 3 sys membarrier MEMBARRIER_CMD_QUERY invalid flags test: flags = 1. Failed as expected
> ok 4 sys membarrier MEMBARRIER_CMD_SHARED test: flags = 0
> 1..4
> selftests: membarrier_test [PASS]
> Running tests in memfd
> ========================================
> fuse: device not found, try 'modprobe fuse' first
> selftests: run_fuse_test.sh [FAIL]
> Running tests in memory-hotplug
> ========================================
> skip all tests: memory hotplug is not supported
> Running tests in mount
> ========================================
> Running tests in mqueue
> ========================================
> Initial system state:
> 	Using queue path:		/test1
> 	RLIMIT_MSGQUEUE(soft):		819200
> 	RLIMIT_MSGQUEUE(hard):		819200
> 	Maximum Message Size:		8192
> 	Maximum Queue Size:		10
> 	Default Message Size:		8192
> 	Default Queue Size:		10
> Adjusted system state for testing:
> 	RLIMIT_MSGQUEUE(soft):		819200
> 	RLIMIT_MSGQUEUE(hard):		819200
> 	Maximum Message Size:		8192
> 	Maximum Queue Size:		10
> 	Default Message Size:		8192
> 	Default Queue Size:		10
> Test series 1, behavior when no attr struct passed to mq_open:
> Kernel supports setting defaults separately from maximums:		PASS
> Given sane values, mq_open without an attr struct succeeds:		PASS
> Kernel properly honors default setting knobs:				PASS
> Kernel properly limits default values to lesser of default/max:		PASS
> Kernel properly fails to create queue when defaults would
> exceed rlimit:								PASS
> Test series 2, behavior when attr struct is passed to mq_open:
> Queue open in excess of rlimit max when euid = 0 failed:		PASS
> Queue open with mq_maxmsg > limit when euid = 0 succeeded:		PASS
> Queue open with mq_msgsize > limit when euid = 0 succeeded:		PASS
> Queue open with total size > 2GB when euid = 0 failed:			PASS
> Queue open in excess of rlimit max when euid = 99 failed:		PASS
> Queue open with mq_maxmsg > limit when euid = 99 failed:		PASS
> Queue open with mq_msgsize > limit when euid = 99 failed:		PASS
> Queue open with total size > 2GB when euid = 99 failed:			PASS
> Initial system state:
> 	Using queue path:			/mq_perf_tests
> 	RLIMIT_MSGQUEUE(soft):			819200
> 	RLIMIT_MSGQUEUE(hard):			819200
> 	Maximum Message Size:			8192
> 	Maximum Queue Size:			10
> 	Nice value:				0
> Adjusted system state for testing:
> 	RLIMIT_MSGQUEUE(soft):			(unlimited)
> 	RLIMIT_MSGQUEUE(hard):			(unlimited)
> 	Maximum Message Size:			16777216
> 	Maximum Queue Size:			65530
> 	Nice value:				-20
> 	Continuous mode:			(disabled)
> 	CPUs to pin:				0
> 	Queue /mq_perf_tests created:
> 		mq_flags:			O_NONBLOCK
> 		mq_maxmsg:			65530
> 		mq_msgsize:			16
> 		mq_curmsgs:			0
> 	Started mqueue performance test thread on CPU 0
> 		Max priorities:			32768
> 		Clock resolution:		1 nsec
> 	Test #1: Time send/recv message, queue empty
> 		(10000000 iterations)
> 		Send msg:			644.770000000s total time
> 						64477 nsec/msg
> 		Recv msg:			1167.830000000s total time
> 						116783 nsec/msg
> 	Test #2a: Time send/recv message, queue full, constant prio
> :
> 		(100000 iterations)
> 		Filling queue...done.		3.230000000s
> 		Testing...done.
> 		Send msg:			6.280000000s total time
> 						62800 nsec/msg
> 		Recv msg:			6.420000000s total time
> 						64200 nsec/msg
> 		Draining queue...done.		3.70000000s
> 	Test #2b: Time send/recv message, queue full, increasing prio
> :
> 		(100000 iterations)
> 		Filling queue...done.		4.100000000s
> 		Testing...done.
> 		Send msg:			6.530000000s total time
> 						65300 nsec/msg
> 		Recv msg:			9.680000000s total time
> 						96800 nsec/msg
> 		Draining queue...done.		3.480000000s
> 	Test #2c: Time send/recv message, queue full, decreasing prio
> :
> 		(100000 iterations)
> 		Filling queue...done.		4.40000000s
> 		Testing...done.
> 		Send msg:			6.100000000s total time
> 						61000 nsec/msg
> 		Recv msg:			8.890000000s total time
> 						88900 nsec/msg
> 		Draining queue...done.		3.440000000s
> 	Test #2d: Time send/recv message, queue full, random prio
> :
> 		(100000 iterations)
> 		Filling queue...done.		4.210000000s
> 		Testing...done.
> 		Send msg:			6.810000000s total time
> 						68100 nsec/msg
> 		Recv msg:			9.600000000s total time
> 						96000 nsec/msg
> 		Draining queue...done.		3.740000000s
> Running tests in net
> ========================================
> --------------------
> running socket test
> --------------------
> [PASS]
> selftests: run_netsocktests [PASS]
> --------------------
> running psock_fanout test
> --------------------
> test: control single socket
> socket packet: Address family not supported by protocol
> [FAIL]
> --------------------
> running psock_tpacket test
> --------------------
> test: TPACKET_V1 with PACKET_RX_RING socket: Address family not supported by protocol
> [FAIL]
> selftests: run_afpackettests [PASS]
> test_bpf: ok
> selftests: test_bpf.sh [PASS]
> selftests: netdevice.sh [PASS]
> Running tests in nsfs
> ========================================
> selftests: owner [PASS]
> selftests: pidns [PASS]
> Running tests in powerpc
> ========================================
> /opt/run_kselftest.sh: line 130: cd: powerpc: No such file or directory
> Running tests in pstore
> ========================================
> === Pstore unit tests (pstore_tests) ===
> UUID=a2b01b72-fdb6-48df-8713-0b9c73ef3a2b
> Checking pstore backend is registered ... cat: /sys/module/pstore/parameters/backend: No such file or directory
> FAIL
> 	backend=
> 	cmdline=mem=1280m ubd0=Fedora-Cloud-Base-26-1.5.x86_64.raw.cow,Fedora-Cloud-Base-26-1.5.x86_64.raw ubd1=Fedora-Cloud-Base-Init.iso ubd2=Fedora-Cloud-Base-kselftests.img ubd3=Fedora-Cloud-Base-modules.img ubd4=Fedora-Cloud-Base-Result.img ro rhgb quiet LANG=de_DE.UTF-8 plymouth.enable=0 con=pts con0=fd:0,fd:1 loadpin.enabled=0 selinux=0 root=98:0
> selftests: pstore_tests [FAIL]
> === Pstore unit tests (pstore_post_reboot_tests) ===
> UUID=2cc9e36a-8347-40a8-9f5b-205da74307b5
> Checking pstore backend is registered ... cat: /sys/module/pstore/parameters/backend: No such file or directory
> FAIL
> 	backend=
> 	cmdline=mem=1280m ubd0=Fedora-Cloud-Base-26-1.5.x86_64.raw.cow,Fedora-Cloud-Base-26-1.5.x86_64.raw ubd1=Fedora-Cloud-Base-Init.iso ubd2=Fedora-Cloud-Base-kselftests.img ubd3=Fedora-Cloud-Base-modules.img ubd4=Fedora-Cloud-Base-Result.img ro rhgb quiet LANG=de_DE.UTF-8 plymouth.enable=0 con=pts con0=fd:0,fd:1 loadpin.enabled=0 selinux=0 root=98:0
> selftests: pstore_post_reboot_tests [FAIL]
> Running tests in ptrace
> ========================================
> PASS
> selftests: peeksiginfo [PASS]
> Running tests in seccomp
> ========================================
> [==========] Running 52 tests from 1 test cases.
> [ RUN      ] global.mode_strict_support
> [       OK ] global.mode_strict_support
> [ RUN      ] global.mode_strict_cannot_call_prctl
> [       OK ] global.mode_strict_cannot_call_prctl
> [ RUN      ] global.no_new_privs_support
> [       OK ] global.no_new_privs_support
> [ RUN      ] global.mode_filter_support
> [       OK ] global.mode_filter_support
> [ RUN      ] global.mode_filter_without_nnp
> [       OK ] global.mode_filter_without_nnp
> [ RUN      ] global.filter_size_limits
> [       OK ] global.filter_size_limits
> [ RUN      ] global.filter_chain_limits
> [       OK ] global.filter_chain_limits
> [ RUN      ] global.mode_filter_cannot_move_to_strict
> [       OK ] global.mode_filter_cannot_move_to_strict
> [ RUN      ] global.mode_filter_get_seccomp
> [       OK ] global.mode_filter_get_seccomp
> [ RUN      ] global.ALLOW_all
> [       OK ] global.ALLOW_all
> [ RUN      ] global.empty_prog
> [       OK ] global.empty_prog
> [ RUN      ] global.unknown_ret_is_kill_inside
> [       OK ] global.unknown_ret_is_kill_inside
> [ RUN      ] global.unknown_ret_is_kill_above_allow
> [       OK ] global.unknown_ret_is_kill_above_allow
> [ RUN      ] global.KILL_all
> [       OK ] global.KILL_all
> [ RUN      ] global.KILL_one
> [       OK ] global.KILL_one
> [ RUN      ] global.KILL_one_arg_one
> [       OK ] global.KILL_one_arg_one
> [ RUN      ] global.KILL_one_arg_six
> [       OK ] global.KILL_one_arg_six
> [ RUN      ] global.arg_out_of_range
> [       OK ] global.arg_out_of_range
> [ RUN      ] global.ERRNO_valid
> [       OK ] global.ERRNO_valid
> [ RUN      ] global.ERRNO_zero
> [       OK ] global.ERRNO_zero
> [ RUN      ] global.ERRNO_capped
> [       OK ] global.ERRNO_capped
> [ RUN      ] TRAP.dfl
> [       OK ] TRAP.dfl
> [ RUN      ] TRAP.ign
> [       OK ] TRAP.ign
> [ RUN      ] TRAP.handler
> [       OK ] TRAP.handler
> [ RUN      ] precedence.allow_ok
> [       OK ] precedence.allow_ok
> [ RUN      ] precedence.kill_is_highest
> [       OK ] precedence.kill_is_highest
> [ RUN      ] precedence.kill_is_highest_in_any_order
> [       OK ] precedence.kill_is_highest_in_any_order
> [ RUN      ] precedence.trap_is_second
> [       OK ] precedence.trap_is_second
> [ RUN      ] precedence.trap_is_second_in_any_order
> [       OK ] precedence.trap_is_second_in_any_order
> [ RUN      ] precedence.errno_is_third
> [       OK ] precedence.errno_is_third
> [ RUN      ] precedence.errno_is_third_in_any_order
> [       OK ] precedence.errno_is_third_in_any_order
> [ RUN      ] precedence.trace_is_fourth
> [       OK ] precedence.trace_is_fourth
> [ RUN      ] precedence.trace_is_fourth_in_any_order
> [       OK ] precedence.trace_is_fourth_in_any_order
> [ RUN      ] TRACE_poke.read_has_side_effects
> [       OK ] TRACE_poke.read_has_side_effects
> [ RUN      ] TRACE_poke.getpid_runs_normally
> [       OK ] TRACE_poke.getpid_runs_normally
> [ RUN      ] TRACE_syscall.syscall_allowed
> [       OK ] TRACE_syscall.syscall_allowed
> [ RUN      ] TRACE_syscall.syscall_redirected
> [       OK ] TRACE_syscall.syscall_redirected
> [ RUN      ] TRACE_syscall.syscall_dropped
> [       OK ] TRACE_syscall.syscall_dropped
> [ RUN      ] TRACE_syscall.skip_after_RET_TRACE
> [       OK ] TRACE_syscall.skip_after_RET_TRACE
> [ RUN      ] TRACE_syscall.kill_after_RET_TRACE
> [       OK ] TRACE_syscall.kill_after_RET_TRACE
> [ RUN      ] TRACE_syscall.skip_after_ptrace
> [       OK ] TRACE_syscall.skip_after_ptrace
> [ RUN      ] TRACE_syscall.kill_after_ptrace
> [       OK ] TRACE_syscall.kill_after_ptrace
> [ RUN      ] global.seccomp_syscall
> [       OK ] global.seccomp_syscall
> [ RUN      ] global.seccomp_syscall_mode_lock
> [       OK ] global.seccomp_syscall_mode_lock
> [ RUN      ] global.TSYNC_first
> [       OK ] global.TSYNC_first
> [ RUN      ] TSYNC.siblings_fail_prctl
> [       OK ] TSYNC.siblings_fail_prctl
> [ RUN      ] TSYNC.two_siblings_with_ancestor
> [       OK ] TSYNC.two_siblings_with_ancestor
> [ RUN      ] TSYNC.two_sibling_want_nnp
> [       OK ] TSYNC.two_sibling_want_nnp
> [ RUN      ] TSYNC.two_siblings_with_no_filter
> [       OK ] TSYNC.two_siblings_with_no_filter
> [ RUN      ] TSYNC.two_siblings_with_one_divergence
> [       OK ] TSYNC.two_siblings_with_one_divergence
> [ RUN      ] TSYNC.two_siblings_not_under_filter
> [       OK ] TSYNC.two_siblings_not_under_filter
> [ RUN      ] global.syscall_restart
> [       OK ] global.syscall_restart
> [==========] 52 / 52 tests passed.
> [  PASSED  ]
> selftests: seccomp_bpf [PASS]
> Running tests in sigaltstack
> ========================================
> [OK]	Initial sigaltstack state was SS_DISABLE
> [RUN]	signal USR1
> [OK]	sigaltstack is disabled in sighandler
> [RUN]	switched to user ctx
> [RUN]	signal USR2
> [OK]	Stack preserved
> [FAIL]	ss_flags=2, should be SS_AUTODISARM
> selftests: sas [FAIL]
> Running tests in size
> ========================================
> TAP version 13
> # Testing system size.
> ok 1 get runtime memory use
> # System runtime memory report (units in Kilobytes):
>  ---
>  Total:  1236048
>  Free:   1015040
>  Buffer: 13048
>  In use: 207960
>  ...
> 1..1
> selftests: get_size [PASS]
> Running tests in splice
> ========================================
> ./default_file_splice_read.sh: line 2: ./default_file_splice_read: No such file or directory
> selftests: default_file_splice_read.sh [PASS]
> Running tests in static_keys
> ========================================
> static_key: ok
> selftests: test_static_keys.sh [PASS]
> Running tests in sync
> ========================================
> [RUN]	Testing sync framework
> [RUN]	Executing test_alloc_timeline
> [RUN]	Executing test_alloc_fence
> [RUN]	Executing test_alloc_fence_negative
> [RUN]	Executing test_fence_one_timeline_wait
> [RUN]	Executing test_fence_one_timeline_merge
> [RUN]	Executing test_fence_merge_same_fence
> [RUN]	Executing test_fence_multi_timeline_wait
> [RUN]	Executing test_stress_two_threads_shared_timeline
> [RUN]	Executing test_consumer_stress_multi_producer_single_consumer
> [RUN]	Executing test_merge_stress_random_merge
> [OK]	sync
> selftests: sync_test [PASS]
> Running tests in sysctl
> ========================================
> ./sysctl.sh: You need perl installed
> selftests: sysctl.sh [FAIL]
> Running tests in timers
> ========================================
> Testing posix timers. False negative may happen on CPU execution
> based timers if other threads run on the CPU...
> Check itimer prof... [OK]
> Check itimer real... [OK]
> Check timer_create() per thread... [OK]
> Check timer_create() per process... [OK]
> 1..0
> selftests: posix_timers [PASS]
> Nanosleep CLOCK_REALTIME                  [OK]
> Nanosleep CLOCK_MONOTONIC                 [OK]
> Nanosleep CLOCK_MONOTONIC_RAW             [UNSUPPORTED]
> Nanosleep CLOCK_REALTIME_COARSE           [UNSUPPORTED]
> Nanosleep CLOCK_MONOTONIC_COARSE          [UNSUPPORTED]
> Nanosleep CLOCK_BOOTTIME                  [OK]
> Nanosleep CLOCK_REALTIME_ALARM            [UNSUPPORTED]
> Nanosleep CLOCK_BOOTTIME_ALARM            [UNSUPPORTED]
> Nanosleep CLOCK_TAI                       [OK]
> 1..0
> selftests: nanosleep [PASS]
> nsleep latency CLOCK_REALTIME             [OK]
> nsleep latency CLOCK_MONOTONIC            [OK]
> nsleep latency CLOCK_MONOTONIC_RAW        [UNSUPPORTED]
> nsleep latency CLOCK_REALTIME_COARSE      [UNSUPPORTED]
> nsleep latency CLOCK_MONOTONIC_COARSE     [UNSUPPORTED]
> nsleep latency CLOCK_BOOTTIME             [OK]
> nsleep latency CLOCK_REALTIME_ALARM       [UNSUPPORTED]
> nsleep latency CLOCK_BOOTTIME_ALARM       [UNSUPPORTED]
> nsleep latency CLOCK_TAI                  [OK]
> 1..0
> selftests: nsleep-lat [PASS]
> Setting timers for every 1 seconds
> CLOCK_REALTIME         ABSTIME max latency:     700928 ns : [OK]
> CLOCK_REALTIME         RELTIME max latency:    1824256 ns : [OK]
> CLOCK_MONOTONIC        ABSTIME max latency:    1324800 ns : [OK]
> CLOCK_MONOTONIC        RELTIME max latency:    1265152 ns : [OK]
> CLOCK_BOOTTIME         ABSTIME max latency:    1076992 ns : [OK]
> CLOCK_BOOTTIME         RELTIME max latency:    1620992 ns : [OK]
> CLOCK_REALTIME_ALARM   ABSTIME missing CAP_WAKE_ALARM?    : [UNSUPPORTED]
> CLOCK_REALTIME_ALARM   RELTIME missing CAP_WAKE_ALARM?    : [UNSUPPORTED]
> CLOCK_BOOTTIME_ALARM   ABSTIME missing CAP_WAKE_ALARM?    : [UNSUPPORTED]
> CLOCK_BOOTTIME_ALARM   RELTIME missing CAP_WAKE_ALARM?    : [UNSUPPORTED]
> CLOCK_TAI              ABSTIME max latency:     751872 ns : [OK]
> CLOCK_TAI              RELTIME max latency:    1671680 ns : [OK]
> 1..0
> selftests: set-timer-lat [PASS]
> Mqueue latency :                          [OK]
> 1..0
> selftests: mqueue-lat [PASS]
> Consistent CLOCK_REALTIME                 [OK]
> Consistent CLOCK_MONOTONIC                [OK]
> Consistent CLOCK_PROCESS_CPUTIME_ID       [OK]
> Consistent CLOCK_THREAD_CPUTIME_ID        [OK]
> Consistent CLOCK_MONOTONIC_RAW            [OK]
> Consistent CLOCK_REALTIME_COARSE          [OK]
> Consistent CLOCK_MONOTONIC_COARSE         [OK]
> Consistent CLOCK_BOOTTIME                 [OK]
> Consistent CLOCK_TAI                      [OK]
> 1..0
> selftests: inconsistency-check [PASS]
> Estimating clock drift: 0.1(est) 0.0(act)	[OK]
> 1..0
> selftests: raw_skew [PASS]
> Thu, 24 Aug 2017 15:34:28 +0000
> Testing consistency with 8 threads for 30 seconds: [OK]
> 1..0
> selftests: threadtest [PASS]
> /dev/rtc0: No such file or directory
> selftests: rtctest [FAIL]
> Running tests in user
> ========================================
> user_copy: ok
> selftests: test_user_copy.sh [PASS]
> Running tests in vm
> ========================================
> no hugetlbfs support in kernel?
> selftests: run_vmtests [FAIL]
> Running tests in x86
> ========================================
> /opt/run_kselftest.sh: line 204:  3159 Trace/breakpoint trap   ./single_step_syscall_64
> selftests: single_step_syscall_64 [FAIL]
> [RUN]	Syscalls followed by SS validation
> [OK]	We survived
> selftests: sysret_ss_attrs_64 [PASS]
> /opt/run_kselftest.sh: line 206:  3165 Trace/breakpoint trap   ./syscall_nt_64
> selftests: syscall_nt_64 [FAIL]
> ptrace_syscall_64: PTRACE_SYSEMU: Input/output error
> [RUN]	Check int80 return regs
> [FAIL]	getpid() failed to preserve regs
> [OK]	kill(getpid(), SIGUSR1) preserves regs
> [RUN]	ptrace-induced syscall restart
> [RUN]	SYSEMU
> selftests: ptrace_syscall_64 [FAIL]
> 	AT_SYSINFO_EHDR is 0x7fbffff000
> [NOTE]	Moving vDSO: [0x7fbffff000, 0x7fc0000000] -> [0x40029000, 0x4002a000]
> [OK]
> selftests: test_mremap_vdso_64 [PASS]
> [OK]	All GPRs except SP are 0
> [FAIL]	FLAGS is 0x206, but it should be 0x202
> selftests: check_initial_reg_state_64 [FAIL]
> /opt/run_kselftest.sh: line 210:  3176 Segmentation fault      ./sigreturn_64
> selftests: sigreturn_64 [FAIL]
> [NOTE]	set_thread_area is unavailable
> [OK]	LDT entry 0 has AR 0x0040FA00 and limit 0x0000000A
> [OK]	LDT entry 0 has AR 0x00C0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 1 is invalid
> [OK]	LDT entry 2 has AR 0x00C0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 1 is invalid
> [OK]	LDT entry 2 has AR 0x00C0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07A00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00907A00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07200 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07000 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07400 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00507600 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507E00 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507C00 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507A00 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507800 and limit 0x0000000A
> [RUN]	Test fork
> [OK]	LDT entry 2 has AR 0x00507800 and limit 0x0000000A
> [OK]	LDT entry 1 is invalid
> [OK]	LDT entry 0 has AR 0x0040FA00 and limit 0x0000002A
> [NOTE]	set_thread_area is unavailable
> [OK]	LDT entry 0 has AR 0x0040FA00 and limit 0x0000000A
> [OK]	LDT entry 0 has AR 0x00C0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 1 is invalid
> [OK]	LDT entry 2 has AR 0x00C0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 1 is invalid
> [OK]	LDT entry 2 has AR 0x00C0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D0FA00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07A00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00907A00 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07200 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07000 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00D07400 and limit 0x0000AFFF
> [OK]	LDT entry 2 has AR 0x00507600 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507E00 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507C00 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507A00 and limit 0x0000000A
> [OK]	LDT entry 2 has AR 0x00507800 and limit 0x0000000A
> [RUN]	Test fork
> [OK]	Child succeeded
> [RUN]	Test size
> [DONE]	Size test
> [OK]	modify_ldt failure 22
> [OK]	LDT entry 0 has AR 0x0000F200 and limit 0x00000000
> [OK]	LDT entry 0 has AR 0x00007200 and limit 0x00000000
> [OK]	LDT entry 0 has AR 0x0000F000 and limit 0x00000000
> [OK]	LDT entry 0 has AR 0x00007200 and limit 0x00000000
> [OK]	LDT entry 0 has AR 0x00007000 and limit 0x00000001
> [OK]	LDT entry 0 has AR 0x00007000 and limit 0x00000000
> [OK]	LDT entry 0 is invalid
> [OK]	LDT entry 0 has AR 0x0040F200 and limit 0x00000000
> [OK]	LDT entry 0 is invalid
> [SKIP]	Cannot set affinity to CPU 1
> [RUN]	Test exec
> [OK]	LDT entry 0 has AR 0x0040FA00 and limit 0x0000002A
> [OK]	Child succeeded
> selftests: ldt_gdt_64 [PASS]
> [OK]	iopl(3) failed (38) -- try running as root
> selftests: iopl_64 [PASS]
> processor lacks MPX XSTATE(s), can not run MPX tests
> XSAVE is supported by HW & OS
> XSAVE processor supported state mask: 0x7
> XSAVE OS supported state mask: 0x7
> selftests: mpx-mini-test_64 [PASS]
> [OK]	outb to 0x80 failed
> [OK]	outb to 0xed failed
> [RUN]	enable 0x80
> [OK]	ioperm(0x80, 1, 1) failed (38) -- try running as root
> selftests: ioperm_64 [PASS]
> has pku: 0
> running PKEY tests for unsupported CPU/OS
> selftests: protection_keys_64 [PASS]
> [RUN]	Testing getcpu...
> [OK]	CPU 0: syscall: cpu 0, node 0 vdso: cpu 0, node 0 vsyscall: cpu 0, node 0
> selftests: test_vdso_64 [PASS]
> [RUN]	ARCH_SET_GS to 0x0
> [OK]	GSBASE was set as expected (selector 0x0)
> [OK]	ARCH_GET_GS worked as expected (selector 0x0)
> [RUN]	ARCH_SET_GS to 0x1
> [OK]	GSBASE was set as expected (selector 0x0)
> [OK]	ARCH_GET_GS worked as expected (selector 0x0)
> [RUN]	ARCH_SET_GS to 0x200000000
> [OK]	GSBASE was set as expected (selector 0x0)
> [OK]	ARCH_GET_GS worked as expected (selector 0x0)
> [RUN]	ARCH_SET_GS to 0x0
> [OK]	GSBASE was set as expected (selector 0x0)
> [OK]	ARCH_GET_GS worked as expected (selector 0x0)
> [RUN]	ARCH_SET_GS to 0x200000000
> [OK]	GSBASE was set as expected (selector 0x0)
> [OK]	ARCH_GET_GS worked as expected (selector 0x0)
> [RUN]	ARCH_SET_GS to 0x1
> [OK]	GSBASE was set as expected (selector 0x0)
> [OK]	ARCH_GET_GS worked as expected (selector 0x0)
> [RUN]	ARCH_SET_GS to 0x0 then mov 0 to %gs
> [OK]	GSBASE is 0x0
> [RUN]	ARCH_SET_GS to 0x1 then mov 0 to %gs
> [FAIL]	GSBASE changed to 0x0 but kernel reports 0x1
> [RUN]	ARCH_SET_GS to 0x200000000 then mov 0 to %gs
> [FAIL]	GSBASE changed to 0x0 but kernel reports 0x200000000
> [RUN]	ARCH_SET_GS to 0x0 then mov 0 to %gs and schedule
> [OK]	GSBASE is 0x0
> [RUN]	ARCH_SET_GS to 0x1 then mov 0 to %gs and schedule
> [FAIL]	GSBASE changed to 0x0 but kernel reports 0x1
> [RUN]	ARCH_SET_GS to 0x200000000 then mov 0 to %gs and schedule
> [FAIL]	GSBASE changed to 0x0 but kernel reports 0x200000000
> [RUN]	ARCH_SET_GS(0x0), then schedule to 0x0
> 	other thread: ARCH_SET_GS(0x0) -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0), then schedule to 0xa1fa5f343cb85fa4
> 	other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0), then schedule to 0x1
> 	other thread: ARCH_SET_GS(0x1) -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0), then schedule to 0x200000000
> 	other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0) and clear gs, then schedule to 0x0
> 	other thread: ARCH_SET_GS(0x0) -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0) and clear gs, then schedule to 0xa1fa5f343cb85fa4
> 	other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0) and clear gs, then schedule to 0x1
> 	other thread: ARCH_SET_GS(0x1) -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x0) and clear gs, then schedule to 0x200000000
> 	other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0
> [OK]	GSBASE remained 0x0
> [RUN]	ARCH_SET_GS(0x1), then schedule to 0x0
> 	other thread: ARCH_SET_GS(0x0) -- sel is 0x0
> [OK]	GSBASE remained 0x1
> [RUN]	ARCH_SET_GS(0x1), then schedule to 0xa1fa5f343cb85fa4
> 	other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0
> [OK]	GSBASE remained 0x1
> [RUN]	ARCH_SET_GS(0x1), then schedule to 0x1
> 	other thread: ARCH_SET_GS(0x1) -- sel is 0x0
> [OK]	GSBASE remained 0x1
> [RUN]	ARCH_SET_GS(0x1), then schedule to 0x200000000
> 	other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0
> [OK]	GSBASE remained 0x1
> [RUN]	ARCH_SET_GS(0x200000000), then schedule to 0x0
> 	other thread: ARCH_SET_GS(0x0) -- sel is 0x0
> [OK]	GSBASE remained 0x200000000
> [RUN]	ARCH_SET_GS(0x200000000), then schedule to 0xa1fa5f343cb85fa4
> 	other thread: ARCH_SET_GS(0x0) and clear gs -- sel is 0x0
> [OK]	GSBASE remained 0x200000000
> [RUN]	ARCH_SET_GS(0x200000000), then schedule to 0x1
> 	other thread: ARCH_SET_GS(0x1) -- sel is 0x0
> [OK]	GSBASE remained 0x200000000
> [RUN]	ARCH_SET_GS(0x200000000), then schedule to 0x200000000
> 	other thread: ARCH_SET_GS(0x200000000) -- sel is 0x0
> [OK]	GSBASE remained 0x200000000
> [RUN]	ARCH_SET_GS(0), clear gs, then manipulate GSBASE in a different thread
> 	other thread: using LDT slot 0
> [OK]	GSBASE remained 0
> selftests: fsgsbase_64 [FAIL]
> sysret_rip_64: mremap to 0x7fffffffd000: Invalid argument
> [RUN]	sigreturn to 0x800000000000
> [OK]	Got SIGSEGV at RIP=0x800000000000
> [RUN]	sigreturn to 0x1000000000000
> [OK]	Got SIGSEGV at RIP=0x1000000000000
> [RUN]	sigreturn to 0x2000000000000
> [OK]	Got SIGSEGV at RIP=0x2000000000000
> [RUN]	sigreturn to 0x4000000000000
> [OK]	Got SIGSEGV at RIP=0x4000000000000
> [RUN]	sigreturn to 0x8000000000000
> [OK]	Got SIGSEGV at RIP=0x8000000000000
> [RUN]	sigreturn to 0x10000000000000
> [OK]	Got SIGSEGV at RIP=0x10000000000000
> [RUN]	sigreturn to 0x20000000000000
> [OK]	Got SIGSEGV at RIP=0x20000000000000
> [RUN]	sigreturn to 0x40000000000000
> [OK]	Got SIGSEGV at RIP=0x40000000000000
> [RUN]	sigreturn to 0x80000000000000
> [OK]	Got SIGSEGV at RIP=0x80000000000000
> [RUN]	sigreturn to 0x100000000000000
> [OK]	Got SIGSEGV at RIP=0x100000000000000
> [RUN]	sigreturn to 0x200000000000000
> [OK]	Got SIGSEGV at RIP=0x200000000000000
> [RUN]	sigreturn to 0x400000000000000
> [OK]	Got SIGSEGV at RIP=0x400000000000000
> [RUN]	sigreturn to 0x800000000000000
> [OK]	Got SIGSEGV at RIP=0x800000000000000
> [RUN]	sigreturn to 0x1000000000000000
> [OK]	Got SIGSEGV at RIP=0x1000000000000000
> [RUN]	sigreturn to 0x2000000000000000
> [OK]	Got SIGSEGV at RIP=0x2000000000000000
> [RUN]	sigreturn to 0x4000000000000000
> [OK]	Got SIGSEGV at RIP=0x4000000000000000
> [RUN]	sigreturn to 0x8000000000000000
> [OK]	Got SIGSEGV at RIP=0x8000000000000000
> [RUN]	Trying a SYSCALL that falls through to 0x7fffffffe000
> selftests: sysret_rip_64 [FAIL]
> Running tests in zram
> ========================================
> --------------------
> running zram tests
> --------------------
> create '1' zram device(s)
> zram load module successful
> set max_comp_streams to zram device(s)
> FAIL can't set max_streams '2', get
> /sys/block/zram0/max_comp_streams = '1' (1/1)
> zram max streams: OK
> test that we can set compression algorithm
> supported algs: [lzo] lz4 deflate lz4hc 842
> /sys/block/zram0/comp_algorithm = 'lzo' (1/1)
> zram set compression algorithm: OK
> set disk size to zram device(s)
> /sys/block/zram0/disksize = '2097152' (1/1)
> zram set disksizes: OK
> set memory limit to zram device(s)
> /sys/block/zram0/mem_limit = '2M' (1/1)
> zram set memory limit: OK
> make ext4 filesystem on /dev/zram0
> zram mkfs.ext4: OK
> mount /dev/zram0
> zram mount of zram device(s): OK
> fill zram0...
> zram0 can be filled with '1936' KB
> zram used 2M, zram disk sizes 2097152M
> ./zram01.sh: line 79: bc: command not found
> zram compression ratio: :1: OK
> zram cleanup
> zram rmmod zram
> zram01 : [PASS]
> create '1' zram device(s)
> zram load module successful
> set max_comp_streams to zram device(s)
> FAIL can't set max_streams '2', get
> /sys/block/zram0/max_comp_streams = '1' (1/1)
> zram max streams: OK
> set disk size to zram device(s)
> /sys/block/zram0/disksize = '1048576' (1/1)
> zram set disksizes: OK
> set memory limit to zram device(s)
> /sys/block/zram0/mem_limit = '1M' (1/1)
> zram set memory limit: OK
> make swap with zram device(s)
> done with /dev/zram0
> zram making zram mkswap and swapon: OK
> zram swapoff: OK
> zram cleanup
> zram rmmod zram
> zram02 : [PASS]
> selftests: zram.sh [PASS]
> 
> with kind regards
> thomas
> 

-- Shuah

Powered by blists - more mailing lists