• Christy Lee's avatar
    bpf: Right align verifier states in verifier logs. · 2e576648
    Christy Lee authored
    Make the verifier logs more readable, print the verifier states
    on the corresponding instruction line. If the previous line was
    not a bpf instruction, then print the verifier states on its own
    line.
    
    Before:
    
    Validating test_pkt_access_subprog3() func#3...
    86: R1=invP(id=0) R2=ctx(id=0,off=0,imm=0) R10=fp0
    ; int test_pkt_access_subprog3(int val, struct __sk_buff *skb)
    86: (bf) r6 = r2
    87: R2=ctx(id=0,off=0,imm=0) R6_w=ctx(id=0,off=0,imm=0)
    87: (bc) w7 = w1
    88: R1=invP(id=0) R7_w=invP(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff))
    ; return get_skb_len(skb) * get_skb_ifindex(val, skb, get_constant(123));
    88: (bf) r1 = r6
    89: R1_w=ctx(id=0,off=0,imm=0) R6_w=ctx(id=0,off=0,imm=0)
    89: (85) call pc+9
    Func#4 is global and valid. Skipping.
    90: R0_w=invP(id=0)
    90: (bc) w8 = w0
    91: R0_w=invP(id=0) R8_w=invP(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff))
    ; return get_skb_len(skb) * get_skb_ifindex(val, skb, get_constant(123));
    91: (b7) r1 = 123
    92: R1_w=invP123
    92: (85) call pc+65
    Func#5 is global and valid. Skipping.
    93: R0=invP(id=0)
    
    After:
    
    86: R1=invP(id=0) R2=ctx(id=0,off=0,imm=0) R10=fp0
    ; int test_pkt_access_subprog3(int val, struct __sk_buff *skb)
    86: (bf) r6 = r2                      ; R2=ctx(id=0,off=0,imm=0) R6_w=ctx(id=0,off=0,imm=0)
    87: (bc) w7 = w1                      ; R1=invP(id=0) R7_w=invP(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff))
    ; return get_skb_len(skb) * get_skb_ifindex(val, skb, get_constant(123));
    88: (bf) r1 = r6                      ; R1_w=ctx(id=0,off=0,imm=0) R6_w=ctx(id=0,off=0,imm=0)
    89: (85) call pc+9
    Func#4 is global and valid. Skipping.
    90: R0_w=invP(id=0)
    90: (bc) w8 = w0                      ; R0_w=invP(id=0) R8_w=invP(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff))
    ; return get_skb_len(skb) * get_skb_ifindex(val, skb, get_constant(123));
    91: (b7) r1 = 123                     ; R1_w=invP123
    92: (85) call pc+65
    Func#5 is global and valid. Skipping.
    93: R0=invP(id=0)
    Signed-off-by: default avatarChristy Lee <christylee@fb.com>
    Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    2e576648
align.c 22.9 KB