[ovs-build] Passed: williamtu/ovs-travis#215 (afxdp-v14 - ece0de3)

Travis CI builds at travis-ci.org
Sun Jun 30 15:34:25 UTC 2019


Build Update for williamtu/ovs-travis
-------------------------------------

Build: #215
Status: Passed

Duration: 1 hr, 3 mins, and 21 secs
Commit: ece0de3 (afxdp-v14)
Author: William Tu
Message: netdev-afxdp: add new netdev type for AF_XDP.

The patch introduces experimental AF_XDP support for OVS netdev.
AF_XDP, the Address Family of the eXpress Data Path, is a new Linux socket
type built upon the eBPF and XDP technology.  It is aims to have comparable
performance to DPDK but cooperate better with existing kernel's networking
stack.  An AF_XDP socket receives and sends packets from an eBPF/XDP program
attached to the netdev, by-passing a couple of Linux kernel's subsystems
As a result, AF_XDP socket shows much better performance than AF_PACKET
For more details about AF_XDP, please see linux kernel's
Documentation/networking/af_xdp.rst. Note that by default, this feature is
not compiled in.

Signed-off-by: William Tu <u9012063 at gmail.com>
---
v1->v2:
- add a list to maintain unused umem elements
- remove copy from rx umem to ovs internal buffer
- use hugetlb to reduce misses (not much difference)
- use pmd mode netdev in OVS (huge performance improve)
- remove malloc dp_packet, instead put dp_packet in umem

v2->v3:
- rebase on the OVS master, 7ab4b0653784
  ("configure: Check for more specific function to pull in pthread library.")
- remove the dependency on libbpf and dpif-bpf.
  instead, use the built-in XDP_ATTACH feature.
- data structure optimizations for better performance, see[1]
- more test cases support
v3: https://mail.openvswitch.org/pipermail/ovs-dev/2018-November/354179.html

v3->v4:
- Use AF_XDP API provided by libbpf
- Remove the dependency on XDP_ATTACH kernel patch set
- Add documentation, bpf.rst

v4->v5:
- rebase to master
- remove rfc, squash all into a single patch
- add --enable-afxdp, so by default, AF_XDP is not compiled
- add options: xdpmode=drv,skb
- add multiple queue and multiple PMD support, with options: n_rxq
- improve documentation, rename bpf.rst to af_xdp.rst

v5->v6
- rebase to master, commit 0cdd5b13de91b98
- address errors from sparse and clang
- pass travis-ci test
- address feedback from Ben
- fix issues reported by 0-day robot
- improved documentation

v6-v7
- rebase to master, commit abf11558c1515bf3b1
- address feedbacks from Ilya, Ben, and Eelco, see:
  https://www.mail-archive.com/ovs-dev@openvswitch.org/msg32357.html
- add XDP mode change, implement get/set_config, reconfigure
- Fix reconfiguration/crash issue caused by libbpf, see patch:
  [PATCH bpf 0/2] libbpf: fixes for AF_XDP teardown
- perf optimization for batching umem_push/pop
- perf optimization for batching kick_tx
- test build with dpdk
- fix/refactor atomic operation
- make AF_XDP x86 specific, otherwise fail at build time
- lots of code refactoring
- add PVP setup in documentation

v7-v8:
- Address feedback from Ilya at:
  https://patchwork.ozlabs.org/patch/1095019/
- add netdev-linux-private.h
- fix afxdp reconfigure issue
- sort include headers
- remove unnecessary OVS_UNUSED
- coding style fixes
- error case handling and memory leak

v8-v9:
- rebase to master 180bbbed3a3867d52
- Address review feedback from Ben, Ilya and Eelco, at:
  https://patchwork.ozlabs.org/patch/1097740/
- == From Ilya ==
- Optimize the reconfiguration logic
- Implement .rxq_recv and .send for afxdp
- Remove system-afxdp-traffic.at, reuse existing code
- Use Ilya's rdtsc code
- remove --disable-system
- == From Eelco ==
- Fix bug when remove br0, util(revalidator49)|EMER|lib/poll-loop.c:111:
  assertion !fd != !wevent failed
- Fix bug and use default value from libbpf, ex: XSK_RING_PROD__DEFAULT...
- Clear xdp program when receive signal, ctrl+c
- Add options to vswitch.xml, set xdpmode default to skb-mode
- No support for ARM and PPC, now x86_64 only
- remove redundant header includes and function/macro definitions
- remove some ifdef HAVE_AF_XDP
- == From others/both about afxdp rx and tx ==
- Several umem push/pop error handling improvement/fixes
- add lock to address concurrent_txq case
- improve error handling
- add stats
- Things that are not done yet
- MTU limitation
- n_txq_desc/n_rxq_desc option.

v9-v10
- remove x86_64 limitation, suggested by Ben and Eelco
- add xmalloc_pagealign, free_pagealign
- minor refector

v10-v11
- address feedback from Ilya at
  https://patchwork.ozlabs.org/patch/1106495/
- fix typos, and some refactoring
- refactor existing code and introduce xmalloc pagealign
- fix a couple of error handling case
- allocate per-txq lock
- dynamic allocate xsk array
- fix cycle_counter_update() for non-x86/non-linux case

v11-v12
- mainly address a couple of crashes reported by Eelco
  https://patchwork.ozlabs.org/patch/1110729/
- fix cleanup xdp program problem when ovs-vswtichd restarts
- following cases should remove xdp program
  - kill `pidof ovs-vswitchd`
  - ovs-appctl -t ovs-vswtichd exit --cleanup
  - note: ovs-ctl restart does not have "--cleanup" so still an issue
- work around issues of xsk_ring_cons__peek at libbpf, reported at
  https://marc.info/?l=xdp-newbies&m=156055471727857&w=2
- variable name refactoring
- there are some performance degradation, but let's make sure
  everything works first

v12-v13
- rebase to master
- add coverage counter afxdp_cq_emtpy, afxdp_fq_full
- minor refactoring

v13-v14
- Mainly address issue reported by Ilya
  https://patchwork.ozlabs.org/patch/1118972/
  when doing 'make check-afxdp'
- Fix xdp frame headroom issue
- Fix vlan test cases by disabling txvlan offload
- Skip cvlan
- Document TCP limitation (currently all tcp tests fail due to
  kernel veth driver)
- Fix tunnel test cases due to --disable-system (another patch)
- Switch to use pthread_spin_lock
- Add coverage counter for debugging
- TODO: IP fragmentation issue not fix yet, need to implement
  deferral memory free, s.t like dpdk_mp_sweep

View the changeset: https://github.com/williamtu/ovs-travis/compare/9b1de08c4c84...ece0de31c3da

View the full build log and details: https://travis-ci.org/williamtu/ovs-travis/builds/552422609?utm_medium=notification&utm_source=email

--

You can unsubscribe from build emails from the williamtu/ovs-travis repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=6871381&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email.
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-build/attachments/20190630/82f3ce7a/attachment-0001.html>


More information about the build mailing list