VPP/AArch64
Contents
Meeting Details
Weekly on Wednesdays, 6AM PT / 3PM CET / 7:30PM IST / 10PM CST. 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 |
Cavium ThunderX | Arriving |
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
|
KO (kubeproxy) | 36m15 |
make test-debug
|
OK | 22m32 |
make test-all-debug
|
KO (kubeproxy) | 33m29 |
Status on commit: d95c39e87bf9d21b2a9d4c49fdf7ebca2a5eab3d (Tue Jan 23 06:07:01 2018)
kubeproxy tests are broken on purpose: corresponding features are not fully implemented
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/
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
All: JIRA issues with ARM64 label
Assigned and New:
VPP-1130 Test with 64K pages | Brian to check with Jeremy Linton |
VPP-1129 Investigate enabling CLASSIFY_USE_SSE on Arm | Gabriel Ganne |
VPP-1128 mheap.c needs NEON version of u8x16_is_equal() | Kevin Wang |
VPP-1127 Define CLIB_HAVE_VEC128 for aarch64 | Nitin Saxena |
VPP-1126 Benchmark and optimize clib_memcpy64_x4() | Khemendra Kumar |
VPP-1125 Review use of system counter | Brian Brooks |
VPP-1114 Ensure correctness of atomics and memory ordering | Kevin Wang |
VPP-1103 Use correct CPU freq on ARM platforms | Kevin Wang |
VPP-1085 Add ARMv8 NEON support in vhost-user.c:map_guest_mem() | Nitin Saxena |
VPP-1064 Support multiple cache line sizes per architecture | Nitin Saxena |
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
Add top level make argument for custom cache line size | https://gerrit.fd.io/r/#/c/10148/ | Nitin Saxena | ||
svm: ... on autodetected VA space size (fixup again) | Merged 01/10 | https://gerrit.fd.io/r/#/c/10075/ | Gabriel Ganne | |
svm: calc base address on AArch64 based on autodetected VA space size (fixup) | Merged 01/10 | https://gerrit.fd.io/r/#/c/10049/ | Gabriel Ganne | |
svm: calc base address on AArch64 based on autodetected VA space size | Merged 01/09 | https://gerrit.fd.io/r/#/c/9999/ | Damjan Marion | |
show cpu microarchitecture | Merged 01/06 | https://gerrit.fd.io/r/#/c/9929/ | Gabriel Ganne | |
Fix Debian Packaging on AARCH64 | Merged 01/06 | https://gerrit.fd.io/r/#/c/9904/ | Nitin Saxena | |
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/ | VPP-1086 | 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/ | VPP-1065 | Gabriel Ganne |
remove smp dead code | Merged 12/06 | https://gerrit.fd.io/r/#/c/9730/ | VPP-1066 | Gabriel Ganne |
net/virtio: support modern device id | Merged 11/28 | https://gerrit.fd.io/r/#/c/9596/ | Gabriel Ganne | |
use REV on aarch64 for endianness swapping | Merged 11/21 | https://gerrit.fd.io/r/#/c/9505/ | VPP-1067 | 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/24/2018
- VPP
- DPDK issue with non-pci network cards
- build & test status updated
- VPP-1127 (VEC_128 enable) under discussion. Should we enable this by default ?
- add Nitin to review Neon commits
- VPP-1114 currently internal review
- CSIT
- first 3-nodes functional tests status list
- TODO Gabriel: share CSIT VM setup env
1/17/2018
- Tina to send calendar invite for meeting
- FD.io lab
- Cavium shipping
- VPP
- Kubeproxy tests failing
- Khem trying to find out the PCIe address for a given netdev interface
- CSIT
- Gabriel setting up 3 node topo with VMs
- Gabriel working on PASS/FAIL status
- CSIT 17.10 report
1/10/2018
- Meeting moved 2 hours earlier - 6AM PT / 3PM CET / 7:30PM IST / 10PM CST
- FD.io lab
- Cavium ThunderX shipping soon
- VPP
- Kumar to look at VPP-1126
- Gabriel proposed https://gerrit.fd.io/r/#/c/10049/ as follow-up to Damjan's patch
- CSIT
- Gabriel's patch for aarch64 support in CSIT merged
- VirtualBox not supported on Arm / Vagrant unknown
- This is OK for upstream since automation expects VMs to already exist
- Performance
- Need plan for 1T; use TaiShans that were sent to lab
- AIs
- Brian: Follow up with Vanessa and EdW regarding 'resource issue'
- Gabriel: Update CSIT wiki page; which tests are passing/failing?
- Brian: Check with Vanessa how to split machines between CI jobs and CSIT jobs
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
- OD1000s - build only
- 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?
- Patches / JIRAs
- 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
- Starting to reproduce CSIT on x86 and ARM (with Gabriel's WIP patch)
- Share known issues on wiki!
- Request CSIT 'deep dive'
12/06/2017
- Can we access the OD1000 in csit lab ?
- currently mainly working with VMs
- added dedicated wiki page for CSIT : https://wiki.fd.io/view/CSIT/AArch64
- WIP : https://gerrit.fd.io/r/#/c/9474/
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
- func on VM vs perfs on HW
- func on x86 VMs OK with 2 nodes
- DPDK integration WIP : https://gerrit.fd.io/r/#/c/9474/
- issues
- how to access the lab ?
- 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