On 11/9/19 7:36 PM, Wang YanQing wrote:
On Sat, Nov 09, 2019 at 12:37:49AM +0100, Daniel Borkmann wrote:
[ Cc Wang (x86_32 BPF JIT maintainer) ]
On 11/8/19 4:57 PM, Stephen Hemminger wrote:
Begin forwarded message:
Date: Fri, 08 Nov 2019 07:35:59 +0000
From: bugzilla-daemon@xxxxxxxxxxxxxxxxxxx
To: stephen@xxxxxxxxxxxxxxxxxx
Subject: [Bug 205469] New: x86_32: bpf: multiple test_bpf failures using eBPF JIT
https://bugzilla.kernel.org/show_bug.cgi?id=205469
Bug ID: 205469
Summary: x86_32: bpf: multiple test_bpf failures using eBPF JIT
Product: Networking
Version: 2.5
Kernel Version: 4.19.81 LTS
Hardware: i386
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Other
Assignee: stephen@xxxxxxxxxxxxxxxxxx
Reporter: itugrok@xxxxxxxxx
CC: itugrok@xxxxxxxxx
Regression: No
Created attachment 285829
--> https://bugzilla.kernel.org/attachment.cgi?id=285829&action=edit
test_bpf failures: kernel 4.19.81/x86_32 (OpenWrt)
Summary:
========
Running the 4.19.81 LTS kernel on QEMU/x86_32, the standard test_bpf.ko
testsuite generates multiple errors with the eBPF JIT enabled:
...
test_bpf: #32 JSET jited:1 40 ret 0 != 20 46 FAIL
test_bpf: #321 LD_IND word positive offset jited:1 ret 0 != -291897430 FAIL
test_bpf: #322 LD_IND word negative offset jited:1 ret 0 != -1437222042 FAIL
test_bpf: #323 LD_IND word unaligned (addr & 3 == 2) jited:1 ret 0 !=
-1150890889 FAIL
test_bpf: #326 LD_IND word positive offset, all ff jited:1 ret 0 != -1 FAIL
...
test_bpf: Summary: 373 PASSED, 5 FAILED, [344/366 JIT'ed]
However, with eBPF JIT disabled (net.core.bpf_jit_enable=0) all tests pass.
Steps to Reproduce:
===================
# sysctl net.core.bpf_jit_enable=1
# modprobe test_bpf
<Kernel log with failures and test summary>
Affected Systems Tested:
========================
OpenWrt master on QEMU/pc-q35(x86_32) [LTS kernel 4.19.81]
Kernel Logs:
============
Boot log with test results is attached.
Hi Daniel Borkmann!
I have tested and verified that the report bug has been fixed by commit
711aef1bbf88 ("bpf, x32: Fix bug for BPF_JMP | {BPF_JSGT, BPF_JSLE, BPF_JSLT, BPF_JSGE}")
But that fix hasn't been backport to stable trees, so maybe we should do it:)
Yes, given you have access to a x32 setup and are also able to runtime test the backported
JIT changes, please submit it to stable with us in Cc. Thanks Wang!
Best,
Daniel