Closed xjtuwxg closed 5 years ago
Seems like a cross-compiler issue. Compile the code inside the arm64 VM works.
I cross-compiled the popcorn-kernel-lib/src/basic.c with:
$ aarch64-linux-gnu-gcc --version
aarch64-linux-gnu-gcc (Debian 6.3.0-18) 6.3.0 20170516
When running the code, on the remote node, I got this weired log. Even after fixed issue 69, 72.
[ 6738.144021] ## PAGEFAULT [284] fffff0d15000 W 4006ec 55 0
[ 6738.144434] =[284] fffff0d15000 00000000005a9a64
[ 6738.144684] [284] ->[283/0] fffff0d15000 4006ec
[ 6738.148733] [284] <-[283/0] fffff0d15000 0
[ 6738.149945] >>[284] fffff0d15000 00000000005a9a64
[ 6738.150562]
[ 6738.150562] ## PAGEFAULT [284] 416000 R 4163c0 54 0
[ 6738.151098] [284] VM_EXEC. continue
[ 6738.152024] ####### MIGRATE [284] to -254716384
[ 6738.152474] [284] invalid migration destination -254716384
[ 6738.153094] ####### MIGRATE [284] to 1
[ 6738.153784] [284] already running at the destination 1
Maybe this is my misconfiguration, just to record it. I only enabled the "Task Migration" log (aka, the process server log).
I run basic.c, on node 1 the log shows
invalid migration destination -941357216
. I'm not sure whether this is related with the bugs on arm64:The vanilla popcorn also has a similar print
####### MIGRATE [229] to -5952
. The code run correctly: