On 08/24/2015 08:13 PM, Don Mahurin wrote: > Hi all, > > We would like to submit our current work on the arm64 port of > ipipe/xenomai. We hope that this contribution will encourage further > development of arm64 support in ipipe/xenomai. > > This port was largely developed on ipipe-3.10 as a base, so it is likely to > be the most well tested there. Though recently, we have also ported these > changes to ipipe-3.14.44. ( We noticed that 3.10 is missing from rc7. Is > this intended, or will 3.10 support return? ) > > At the end of this message are the relevant git repos and branches for the > arm64 port. Also included is a build script to build a minimal busybox > linux system which may be ran using qemu (arm64 virt). > > > Development status: > > The 3.14 port is missing the fast-syscall changes (in entry.S) from armv7, > and instead contains the 3.10 entry.S changes forward ported to 3.14. > > FPU support is incomplete. > > Smokey tests: > > 3.10/rc6 smokey tests all pass > 3.14/rc6 smokey tests all pass > 3.14/rc7 smokey tests sched-quota and sched-tp fail > > > git repos: > > https://gitlab.mperpetuo.com/it/xenomai-3.git > https://gitlab.mperpetuo.com/it/ipipe.git > https://gitlab.mperpetuo.com/it/build-scripts.git > > ipipe/xenomai arm64 branches: > > ipipe-core-3.10.32-arm-10-arm64-2c, v3.0-rc6-arm64-1c > ipipe-core-3.14.44-arm-11-arm64-2, v3.0-rc6-arm64-1c > ipipe-core-3.14.44-arm-12-arm64-2, v3.0-rc7-arm64-1c > >
Don, I picked up your trees (branches below): - ipipe branch: ipipe-core-3.14.44-arm-12-arm64-2 - xenomai branch: v3.0-rc7-arm64-1c). I then merged them on HiKey's octacore A53 [0] vendor tree [1] previously patched with ipipe: - ipipe -core-3.18.12-arm-4.patch root@linaro-developer:/usr/xenomai/bin# cat /proc/ipipe/version 12 root@linaro-developer:/usr/xenomai/bin# cat /proc/xenomai/version 3.0-rc7 root@linaro-developer:/usr/xenomai/bin# cat /proc/cpuinfo Processor : AArch64 Processor rev 3 (aarch64) Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 CPU implementer : 0x41 CPU architecture: AArch64 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 3 Hardware : HiKey Development Board With these changes in, I was able to execute the xeno-test suppported suite [non SMP] (results below). During the latency tests + dohell however I was getting a number of these events. Have you happen to notice them during your runs? [ 210.661546] ls[1638]: unhandled level 2 translation fault (11) at 0x00000000, esr 0x92000006 [ 210.789815] pgd = ffffffc034fab000 [ 210.853570] [00000000] *pgd=0000000037f8c003, *pud=0000000037f8c003, *pmd=0000000000000000 [ 210.923645] [ 211.029789] CPU: 0 PID: 1638 Comm: ls Not tainted 3.18.0-ipipe+ #3 [ 211.135697] task: ffffffc034eb2ec0 ti: ffffffc035228000 task.ti: ffffffc035228000 [ 211.239840] PC is at 0x7fb2d65b90 [ 211.335692] LR is at 0x7fb2d58e60 [ 211.343190] pc : [<0000007fb2d65b90>] lr : [<0000007fb2d58e60>] pstate: 40000000 [ 211.503681] sp : 0000007fc4bfeda0 [ 211.605713] x29: 0000007fc4bfeda0 x28: 0000000000000000 [ 211.615535] x27: 000000002ae23100 x26: 0000000000000000 [ 211.805734] x25: 000000002ae23130 x24: 000000002ae2ccb0 [ 211.815575] x23: 0000007fb2e977f0 x22: 0000000000429000 [ 212.005751] x21: 0000000000000000 x20: 0000000000000000 [ 212.085690] x19: 0000007fb2e2e178 x18: 000000000000000d [ 212.095575] x17: 0000007fb2d58e44 x16: 0000000000429318 [ 212.269880] x15: 0000007fb2e2f588 x14: 0000000000000000 [ 212.359708] x13: 0000000001000000 x12: 0000000000000002 [ 212.449749] x11: 0101010101010101 x10: 0000000000000000 [ 212.579720] x9 : ff717373602e3231 x8 : 000000002ae25590 [ 212.676101] x7 : 0000000000000000 x6 : 0000000000000000 [ 212.779470] x5 : 0000000000000005 x4 : 0000000000000000 [ 212.880130] x3 : 0000000000000000 x2 : 0000000000000000 [ 212.959890] x1 : 0000000000000000 x0 : 0000000000000000 root@linaro-developer:/usr/xenomai/bin# ./xeno-test Started child 1574: /bin/bash /usr/xenomai/bin/xeno-test-run-wrapper ./xeno-test ++ echo 0 ++ testdir=/usr/xenomai/bin ++ /usr/xenomai/bin/smokey --run arith OK bufp skipped (no kernel support) iddp skipped (no kernel support) leaks OK posix_clock OK posix_cond OK posix_fork OK mutex_trylock not supported posix_mutex OK posix_select OK rtdm skipped (no kernel support) sched_quota skipped (no kernel support) sched_tp skipped (no kernel support) sigdebug skipped (no kernel support) timerfd OK vdso_access OK xddp skipped (no kernel support) ++ /usr/xenomai/bin/clocktest -D -T 30 -C CLOCK_HOST_REALTIME XNVDSO_FEAT_HOST_REALTIME not available == Testing built-in CLOCK_HOST_REALTIME (32) CPU ToD offset [us] ToD drift [us/s] warps max delta [us] --- -------------------- ---------------- ---------- -------------- 0 0.0 0.000 0 0.0 clock_gettime failed for clock id 32 XNVDSO_FEAT_HOST_REALTIME not available ++ /usr/xenomai/bin/clocktest -T 30 == Testing built-in CLOCK_REALTIME (0) CPU ToD offset [us] ToD drift [us/s] warps max delta [us] --- -------------------- ---------------- ---------- -------------- 0 -1404413153131434.2 0.028 0 0.0 ++ /usr/xenomai/bin/switchtest -T 30 == Testing FPU check routines... == FPU check routines: unimplemented, skipping FPU switches tests. == Threads: sleeper-0 rtk-1 rtk-2 rtup-3 rtup-4 rtus-5 rtus-6 rtuo-7 rtuo-8 RTT| 00:00:01 RTH|ctx switches|-------total RTD| 8208| 8208 RTD| 8208| 16416 RTD| 8210| 24626 RTD| 8208| 32834 RTD| 8208| 41042 RTD| 7961| 49003 RTD| 8208| 57211 RTD| 8210| 65421 RTD| 8210| 73631 RTD| 8231| 81862 RTD| 8208| 90070 RTD| 8185| 98255 RTD| 8208| 106463 RTD| 8154| 114617 RTD| 8213| 122830 RTD| 8208| 131038 RTD| 8208| 139246 RTD| 8210| 147456 RTD| 8208| 155664 RTD| 8208| 163872 RTD| 8210| 172082 RTT| 00:00:22 RTH|ctx switches|-------total RTD| 8249| 180331 RTD| 8210| 188541 RTD| 8208| 196749 RTD| 8208| 204957 RTD| 8210| 213167 RTD| 8231| 221398 RTD| 8208| 229606 RTD| 8210| 237816 RTD| 7992| 245808 ++ start_load ++ echo start_load ++ check_alive /usr/xenomai/bin/latency ++ echo check_alive /usr/xenomai/bin/latency ++ wait_load ++ read rc Started child 1630: dohell 900 Started child 1635: /usr/xenomai/bin/latency == Sampling period: 1000 us == Test mode: periodic user-mode task == All results in microseconds warming up... RTT| 00:00:01 (periodic user-mode task, 1000 us period, priority 99) RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD| 4.167| 7.106| 16.667| 0| 0| 4.167| 16.667 RTD| 4.167| 7.116| 18.334| 0| 0| 4.167| 18.334 RTD| 4.167| 6.843| 12.500| 0| 0| 4.167| 18.334 RTD| 4.167| 6.939| 13.334| 0| 0| 4.167| 18.334 RTD| 4.167| 6.937| 17.500| 0| 0| 4.167| 18.334 ... ... ... RTT| 00:06:19 (periodic user-mode task, 1000 us period, priority 99) RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD| 4.167| 6.143| 11.667| 0| 0| 3.334| 60.000 RTD| 4.167| 6.214| 13.334| 0| 0| 3.334| 60.000 RTD| 4.167| 6.213| 11.667| 0| 0| 3.334| 60.000 RTD| 4.167| 6.241| 12.500| 0| 0| 3.334| 60.000 RTD| 4.167| 6.126| 11.667| 0| 0| 3.334| 60.000 RTD| 4.167| 6.206| 12.500| 0| 0| 3.334| 60.000 RTD| 4.167| 5.984| 12.500| 0| 0| 3.334| 60.000 RTD| 4.167| 6.132| 13.334| 0| 0| 3.334| 60.000 [0] https://www.96boards.org/products/ce/hikey/ [1] https://github.com/96boards/linux _______________________________________________ Xenomai mailing list [email protected] http://xenomai.org/mailman/listinfo/xenomai
