Public bug reported:

SRU Justification

[Impact]
Some XDP examples such as https://github.com/netoptimizer/prototype-kernel fail 
on ppc64el at the eBPF verification stage.

[Fix]
This is because CONFIG_HAS_EFFICIENT_UNALIGNED_ACCESS is not set on ppc64el. It 
is not set because the kernel is being compiled for CPU_POWER7 instead of 
CPU_POWER8, and we don't have efficient unaligned access on POWER7.

Swap to building for POWER8.

As a bonus, this should make everything a little bit faster.

[Regression Potential]

 - IBM never released any officially supported Power7 LE systems - LE
was only ever supported on Power8. Therefore this should not break any
systems.

 - Regression potential is also limited to one arch.

 - Artful-next already has this fix and nothing bad has happened there.

[Test]
On a P8 VM with a virtio network card and 2 vcpus:
- get the prototype-kernel repo
- go to the kernel/samples/bpf directory-
- make
- sudo mount -t bpf bpf /sys/fs/bpf/
- sudo ./xdp_ddos01_blacklist --dev enp0s1

Observe that without this patch, we get a long debug splat ending with:

32: (61) r1 = *(u32 *)(r8 +12)
misaligned packet access off 0+18+12 size 4
load_bpf_file: Permission denied

With this patch we don't get that error and the program is successfully
verifies and loads. (It still doesn't run - there is other breakage I'm
chasing down - but it definitely gets further.)

** Affects: linux (Ubuntu)
     Importance: Undecided
     Assignee: Daniel Axtens (daxtens)
         Status: In Progress

-- 
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/1699627

Title:
  XDP eBPF programs fail to verify on Zesty ppc64el

Status in linux package in Ubuntu:
  In Progress

Bug description:
  SRU Justification

  [Impact]
  Some XDP examples such as https://github.com/netoptimizer/prototype-kernel 
fail on ppc64el at the eBPF verification stage.

  [Fix]
  This is because CONFIG_HAS_EFFICIENT_UNALIGNED_ACCESS is not set on ppc64el. 
It is not set because the kernel is being compiled for CPU_POWER7 instead of 
CPU_POWER8, and we don't have efficient unaligned access on POWER7.

  Swap to building for POWER8.

  As a bonus, this should make everything a little bit faster.

  [Regression Potential]

   - IBM never released any officially supported Power7 LE systems - LE
  was only ever supported on Power8. Therefore this should not break any
  systems.

   - Regression potential is also limited to one arch.

   - Artful-next already has this fix and nothing bad has happened
  there.

  [Test]
  On a P8 VM with a virtio network card and 2 vcpus:
  - get the prototype-kernel repo
  - go to the kernel/samples/bpf directory-
  - make
  - sudo mount -t bpf bpf /sys/fs/bpf/
  - sudo ./xdp_ddos01_blacklist --dev enp0s1

  Observe that without this patch, we get a long debug splat ending
  with:

  32: (61) r1 = *(u32 *)(r8 +12)
  misaligned packet access off 0+18+12 size 4
  load_bpf_file: Permission denied

  With this patch we don't get that error and the program is
  successfully verifies and loads. (It still doesn't run - there is
  other breakage I'm chasing down - but it definitely gets further.)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1699627/+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