VPP/AArch64

From fd.io
< VPP
Revision as of 19:26, 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

FD.io Lab

Platform Status
SoftIron OverDrive 1000 Arrived - One unit RMA'd. LF RT ticket open to add these machines as Jenkins slaves for CI build jobs.
Huawei TaiShan 2280 Shipping
Marvell MACCHIATObin Ordering

Build, unit test, packaging

The following is tracked manually until hardware is integrated into upstream FD.io CI
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