[PATCH 0/1] Fix for LP#1699627

Daniel Axtens daniel.axtens at canonical.com
Thu Jun 22 00:23:08 UTC 2017

SRU Justification

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

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

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.)


Daniel Axtens (1):
  UBUNTU: [Config] ppc64el: build for Power8 not Power7

 debian.master/config/amd64/config.common.amd64     | 1 -
 debian.master/config/annotations                   | 4 ++--
 debian.master/config/arm64/config.common.arm64     | 1 -
 debian.master/config/armhf/config.common.armhf     | 1 -
 debian.master/config/config.common.ubuntu          | 5 +++--
 debian.master/config/i386/config.common.i386       | 1 -
 debian.master/config/ppc64el/config.common.ppc64el | 1 -
 debian.master/config/s390x/config.common.s390x     | 1 -
 8 files changed, 5 insertions(+), 10 deletions(-)


More information about the kernel-team mailing list