After some investigation, I found out that failures caused by "invalid
relo for insn[4].code 0x85" are due to a small typo in some headers.

That has caused LLVM to emit relocations (thinking those missing macro
calls were external function calls) that are not supported by the
loader. This is all in userspace, so no real kernel bugs here. We can
include the typo fixup in the bionic tree, though.

That led to a new failure, caused by faults when trying to read user
memory from the BPF program. I will investigate further.

Cascardo.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1888507

Title:
  [UBUNTU 18.04] BPF programs fail on Ubuntu s390x

Status in Ubuntu on IBM z Systems:
  In Progress
Status in linux package in Ubuntu:
  New
Status in linux source package in Bionic:
  In Progress

Bug description:
  We need to run BPF filters to analyse and monitor network traffic. The
  BPF filters are created by skydive (http://skydive.network). Currently
  skydive fails to install BPF filters on s390x (using Ubuntu 18.04
  currently, soon moving to Ubuntu 20.04).

  Because of these failures, we decided to try the BPF samples that come
  with the kernel first. These samples also fail on s390x while they
  work fine on Intel.

  shense@boe-build:~/bionic/samples/bpf$ uname -a
  Linux boe-build 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:40:36 UTC 
2020 s390x s390x s390x GNU/Linux

  Example instructions:

  sudo apt install -y dpkg-dev clang llvm libelf-dev
  sudo apt-get source linux-image-unsigned-$(uname -r)
  cd linux-4.15.0/
  make headers_install
  make samples/bpf/

  Errors:

  shense@boe-build:~/bionic/samples/bpf$ sudo ./test_map_in_map
  [sudo] password for shense:
  invalid relo for insn[4].code 0x85
  bpf_load_program() err=22
  0: (bf) r7 = r1
  1: (b7) r1 = 0
  2: (63) *(u32 *)(r10 -32) = r1
  3: (bf) r1 = r7
  4: (85) call unknown#-1
  BPF_CALL uses reserved fields
  0: (bf) r7 = r1
  1: (b7) r1 = 0
  2: (63) *(u32 *)(r10 -32) = r1
  3: (bf) r1 = r7
  4: (85) call unknown#-1
  BPF_CALL uses reserved fields

  
  shense@boe-build:~/bionic/samples/bpf$ sudo ./map_perf_test
  invalid relo for insn[22].code 0x85
  bpf_load_program() err=22
  0: (bf) r7 = r1
  1: (18) r1 = 0x207265743a25646e
  3: (7b) *(u64 *)(r10 -16) = r1
  4: (18) r1 = 0x705f616c6c6f632e
  6: (7b) *(u64 *)(r10 -24) = r1
  7: (18) r1 = 0x5f6c72755f686d61
  9: (7b) *(u64 *)(r10 -32) = r1
  10: (18) r1 = 0x7420737472657373
  12: (7b) *(u64 *)(r10 -40) = r1
  13: (18) r1 = 0x4661696c65642061
  15: (7b) *(u64 *)(r10 -48) = r1
  16: (b7) r1 = 0
  17: (73) *(u8 *)(r10 -8) = r1
  18: (b7) r2 = 1
  19: (7b) *(u64 *)(r10 -72) = r2
  20: (63) *(u32 *)(r10 -76) = r1
  21: (bf) r1 = r7
  22: (85) call unknown#-1
  BPF_CALL uses reserved fields
  0: (bf) r7 = r1
  1: (18) r1 = 0x207265743a25646e
  3: (7b) *(u64 *)(r10 -16) = r1
  4: (18) r1 = 0x705f616c6c6f632e
  6: (7b) *(u64 *)(r10 -24) = r1
  7: (18) r1 = 0x5f6c72755f686d61
  9: (7b) *(u64 *)(r10 -32) = r1
  10: (18) r1 = 0x7420737472657373
  12: (7b) *(u64 *)(r10 -40) = r1
  13: (18) r1 = 0x4661696c65642061
  15: (7b) *(u64 *)(r10 -48) = r1
  16: (b7) r1 = 0
  17: (73) *(u8 *)(r10 -8) = r1
  18: (b7) r2 = 1
  19: (7b) *(u64 *)(r10 -72) = r2
  20: (63) *(u32 *)(r10 -76) = r1
  21: (bf) r1 = r7
  22: (85) call unknown#-1
  BPF_CALL uses reserved fields

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1888507/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to