Difference between revisions of "VPP/AArch64"
|  (→Recent Patches) |  (→Recent Patches) | ||
| Line 142: | Line 142: | ||
| {| class="wikitable" | {| class="wikitable" | ||
| + | | vppinfra: use __atomic_fetch_add instead of __sync_fetch_and_add builtins || || https://gerrit.fd.io/r/#/c/10293/ || || Kevin Wang | ||
| + | |- | ||
| | Arm system counter cleanup || Merged 1/30 || https://gerrit.fd.io/r/#/c/10313/ || [https://jira.fd.io/browse/VPP-1125 VPP-1125] || Brian Brooks | | Arm system counter cleanup || Merged 1/30 || https://gerrit.fd.io/r/#/c/10313/ || [https://jira.fd.io/browse/VPP-1125 VPP-1125] || Brian Brooks | ||
| |- | |- | ||
Revision as of 19:25, 31 January 2018
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: 84a30ef2b51d0dc60176f4a93c90134bb443a260 (Wed Jan 24 10:49:23 2018 -0800)
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-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 | 
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
| vppinfra: use __atomic_fetch_add instead of __sync_fetch_and_add builtins | https://gerrit.fd.io/r/#/c/10293/ | Kevin Wang | ||
| Arm system counter cleanup | Merged 1/30 | https://gerrit.fd.io/r/#/c/10313/ | VPP-1125 | Brian Brooks | 
| Add top level make argument for custom cache line size | https://gerrit.fd.io/r/#/c/10148/ | VPP-1064 | 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/31/2018
-  LF lab
- OD1000 - 1 replacement being installed this week
- Huawei & Cavium boards should arrive at colo this week; confirm with Rudy
 
-  Build, unit test, packaging
-  Kubeproxy/NAT failures
- Not arch related
- Part of extended unit tests, so does not block CI
 
- `make test` passes on D03 & D05 (Ubuntu)
 
-  Kubeproxy/NAT failures
-  MACCHIATObin
-  Seeing hotspots in VPP graph nodes
- L3 forwarding - ip4 rewrite node
- L2 cross-connect
- Try reducing quad loop to a dual loop
- dpdk-input node highly opt for x86 (could contribute to low perf) but hotspots still in rte_mbuf_t conversion(?)
 
- Some examples of runtime code selection based on uarch exist in the codebase
 
-  Seeing hotspots in VPP graph nodes
-  CSIT
- Adrian Oanca join from Enea
- Gabriel seeing VM crashing during boot; related to # interfaces assigned (6)
- Nitin ran into issue with buildroot on arm64; see thread on csit-dev
 
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
- VPP-1064 under rework after review by Damjan
 
-  CSIT
- first 3-nodes functional tests status list
- TODO Gabriel: share CSIT VM setup env
- nested VM: build-root package support for ARM. Create Jira ticket for Brian.
 
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
