VPP/AArch64

From fd.io
< VPP
Revision as of 18:09, 3 January 2018 by Bpb (Talk | contribs)

Jump to: navigation, search

Meeting Details

Weekly on Wednesdays, 8-9am PT. FD.io Zoom Meeting room

Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/5301185804 or https://zoom.us/my/fastdata

Or iPhone one-tap (US Toll):  +14086380968,,5301185804# or +16465588656,,5301185804#

Or Telephone:
    Dial: +1 408 638 0968 (US Toll) or +1 646 558 8656 (US Toll)
    +1 855 880 1246 (US Toll Free)
    +1 877 369 0926 (US Toll Free)
    Meeting ID: 530 118 5804
    International numbers available: https://zoom.us/zoomconference?m=ppBOQMQTVxGYmbxNsVemC6KNo8eX2ptF

IRC Channel

#fdio-arm on freenode.net

Build, unit test, packaging

Cmd Status timing
make bootstrap OK 0m45
make build OK 11m45
make build-release OK 14m56
make test OK 26m7
make test-all OK 36m15
make test-debug OK 22m32
make test-all-debug OK 33m29

Status on commit: ceb4d05ba0fb9771069b0081b928a9e75401fc87 (Thu Dec 14 09:25:31 2017)

Timing consideration on platform: Hierofalcon with Cortex-A57 & Fedora 26

Might want to have a look at this patch which adds make config: https://gerrit.fd.io/r/#/c/9200/

Also this other patch proposal (probably not as complete) allows to toggle off some parts of the code such as libvom, and therefore allows compilation on small systems: https://gerrit.fd.io/r/#/c/9186/

Distro Cmd Status
Fedora 26 (Server Edition) make pkg-rpm OK
Ubuntu 17.10 make pkg-deb OK
Ubuntu 16.04.3 LTS make pkg-deb OK

CSIT

https://wiki.fd.io/view/CSIT/AArch64

AArch64 Porting & Tuning

JIRA issues with ARM64 label

Review use of __sync_xxx/__atomic_xxx builtins to ensure correct memory ordering on non-TSO machines.

Investigate memcpy performance (src/vppinfra/string.h); both inlined-by-compiler and libc versions.

Investigate dual/quad loop tuning, e.g. l2_forward().

SIMD

  • CLIB_HAVE_VEC128 also covers 256-bit. Add CLIB_HAVE_VEC256?
  • ixge.[ch] - 128-bit vector types with plain C. Needs to be enabled.
  • mheap.c - requires NEON implementation of is_equal
  • hash.h - requires NEON implementation of irotate
  • vnet_classify.h - 128-bit vector types with plain C. Needs to be enabled.
  • vhost-user.c - SSE4.2 only. Implement range search using NEON.
  • ip4_mtrie.h - 128-bit vector types with plain C. Needs to be enabled.

Known Issues

Compilation may fail on systems with less than 1GB memory per core. One workaround is to search for -j in build-root/Makefile and multiply by 1 instead of 2.

GCC 5.3.x ICEs during FP register allocation. Please use GCC 5.4+.

Try disabling ASLR if experiencing random crashes: sysctl -w kernel.randomize_va_space=0

Recent Patches

show cpu microarchitecture https://gerrit.fd.io/r/#/c/9929/ Gabriel Ganne
more extended tests fixes Merged 12/16 https://gerrit.fd.io/r/#/c/9880/ Gabriel Ganne
Use crc32 wrapper Merged 12/16 https://gerrit.fd.io/r/#/c/9854/ Gabriel Ganne
implement clib_smp_pause() for arm and aarch64 platform Merged 12/15 https://gerrit.fd.io/r/#/c/9820/ VPP-1066 Kevin Wang
make "test-all" target pass again (for all platforms) Merged 12/13 https://gerrit.fd.io/r/#/c/9702/ Gabriel Ganne
add NEON versions for ethernet_frame_is_tagged() https://gerrit.fd.io/r/#/c/9749/ Gabriel Ganne
fill "show cpu" Flag list on aarch64 platforms Merged 12/06 https://gerrit.fd.io/r/#/c/9727/ Gabriel Ganne
remove smp dead code (VPP-1066) Merged 12/06 https://gerrit.fd.io/r/#/c/9730/ Gabriel Ganne
net/virtio: support modern device id Merged 11/28 https://gerrit.fd.io/r/#/c/9596/ Gabriel Ganne
armv8 crc32 - fix macro name Merged 11/15 https://gerrit.fd.io/r/#/c/9418/ Gabriel Ganne
bier - fix node table declaration Merged 11/14 https://gerrit.fd.io/r/#/c/9413/ Gabriel Ganne
Map SVM regions at a sane offset on arm64 Merged 11/10 https://gerrit.fd.io/r/#/c/9342/ Brian Brooks
bfd tests fix Merged 11/07 https://gerrit.fd.io/r/#/c/9243/ Gabriel Ganne
debian packaging fix Merged 11/06 https://gerrit.fd.io/r/#/c/9239/ Gabriel Ganne
lb test fix Merged 10/31 https://gerrit.fd.io/r/#/c/9067/ Gabriel Ganne
conditional x86intrin.h inclusion Merged 10/25 https://gerrit.fd.io/r/#/c/8952/ Gabriel Ganne
fix test_lb_ip4_gre6() cleanup (not enough to fix the tests completely) Merged 10/24 https://gerrit.fd.io/r/#/c/8992/ Gabriel Ganne
null-terminate some formatted string Merged 10/20 https://gerrit.fd.io/r/#/c/8922/ Gabriel Ganne
lb plugin - fix format() type mismatches Merged 10/16 https://gerrit.fd.io/r/#/c/8755/ Gabriel Ganne
Use AESNI=y only on x86_64 machines Merged 10/14 https://gerrit.fd.io/r/#/c/8622/ Brian Brooks
Improved arm64 chip detection Merged 09/11 https://gerrit.fd.io/r/#/c/8372/ Brian Brooks
Native arm64 build: dpdk/Makefile change Merged 08/31 https://gerrit.fd.io/r/#/c/8228/ Brian Brooks

Meeting Minutes

1/3/2018

  • FD.io lab
    • One OD1000 sent for RMA
    • Huawei PO sent out
    • Cavium PO sent out (?)
  • VPP
    • Gabriel working on patch for "show cpu" to display MIDR as human readable
    • Nitin sent preliminary patch for vhost-user NEON impl
      • Seeing perf differences on different cores; tradeoff is single-threaded perf vs. NEON
    • Kumar built and unit test successfully on D03
    • Nitin to resume patch for supporting different cache line sizes for the same arch
  • CSIT
    • Gabriel cleaned up WIP patch; ready for review
    • Kumar starting CSIT func tests with Ubuntu VMs
      • Scripts for running on dedicated hardware need to be modified, e.g. PCIe resources
    • Kumar to send doc on testing
  • Performance
    • Kumar to start thread on performance testing
  • AIs
    • Brian: Check with Tina on shipping and open LF RT ticket once they have arrived
    • Brian: Need a way to choose either SW or NEON impl based on chip
    • Gabriel: Create list of broken CSIT tests for 2-node topology

12/20/2017

No meeting next week - Dec 27

  • FD.io lab
    • OD1000s - build only
      • 1 of 3 needs to be RMAd
      • Can these be up in time to show 'make test' passes on ARM for 18.01 release report?
    • TaiShan
      • PO in progress
    • ThunderX - build only
      • PO went out
  • VPP
    • Patches / JIRAs
      • Patch for extended test failure, but still more (new) extended test failures - Gabriel
      • Nitin to post vhost-user.c changes for NEON
        • Nitin will finish Gabriel's original NEON patch to add CLIB_HAVE_VEC_128
    • Can we share code on Github e.g. NEON perf tests?
  • CSIT
    • Leading question: How many CSIT test cases are passing/failing?
    • Environment issues preventing running through all CSIT test cases; Gabriel needs dedicated machines or more RAM
    • Cavium & Huawei will join Gabriel in CSIT replication on ARM hardware next week
      • Cavium previously ran vhost test cases manually, now moving to CSIT

12/13/2017

  • VPP
    • Quick overview of work items
    • Waiting to hear back from LF about OD1000 connectivity
      • Changes needed to ci-mgmt
  • CSIT
    • Starting to reproduce CSIT on x86 and ARM (with Gabriel's WIP patch)
      • Some issues with environment variables (perf tests on 2-node)
    • Need Nexus to support aarch64 packages
      • Need a contact for Nexus
  • Share known issues on wiki!
  • Request CSIT 'deep dive'

12/06/2017

11/29/2017

  • VPP
    • vhost-user.c - SSE4.2 only. Implement range search using NEON. (nitin)
    • OD1000 status ?
      • build only
      • can we access them ?
      • what wan we do to help in general ?
    • x86 intrinsic review
    • build VPP on ARM VM on x86
  • CSIT
    • what platforms wil lbe made available

11/22/2017

  • VPP CI
    • 3 ThunderX for Chrismas
  • CSIT
  • Next steps
    • VPP
    • CSIT
      • structure work & send email (Gabriel)
      • is xxhash vs crc32 finished ? (Gabriel)
      • ask Maciek & setup a presentation meeting with someone from CSIT (Tina)
      • find a time to reschedule this meeting before the CSIT weekly call (Brian)

11/15/2017

  • VPP upstream status
    • build && build-release OK
    • "make test" && "make test-debug" OK
    • packaging:
      • Ubuntu 16.04 OK
      • Ubuntu 17.10 ? (TBC)
      • fedora-26 OK
  • vpp continuous test
    • all task required for jenkin's "verify" job are ready
    • TODO: request gerrit hook to Dave Barachs / vpp-dev (NB & GG)
    • set up ci in fdio lab
  • CSIT
    • setting up env
    • ThunderX platforms should arrive this week
    • csit work sharing

11/8/2017

  • Unit tests
    • Tests pass except for random initialization failures
    • Need to hear back from upstream about Extended unit tests
  • Should we run plugins such as NSH SFC?
  • Hardware to lab
    • Huawei h/w stalled
    • 3x ThunderX shipping to FD.io lab
  • CSIT replication
    • Cavium replicating on ThunderX2; getting started
  • Let's track our work in Jira; Brian to migrate tasks to Jira

10/25/2017

  • Gabriel working on vpp init failure in linux_pci_init()
  • Kumar to check with GeorgeZ on Huawei boards shipped to CSIT; need to verify tests also on this environment (package versions from distro)
  • Brian to check whether anything else needs to be done besides 'make test' for upstream enablement