diff options
Diffstat (limited to 'results/classifier/zero-shot-user-mode/output/instruction/1908626')
| -rw-r--r-- | results/classifier/zero-shot-user-mode/output/instruction/1908626 | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/results/classifier/zero-shot-user-mode/output/instruction/1908626 b/results/classifier/zero-shot-user-mode/output/instruction/1908626 deleted file mode 100644 index ea27cafb..00000000 --- a/results/classifier/zero-shot-user-mode/output/instruction/1908626 +++ /dev/null @@ -1,71 +0,0 @@ -instruction: 0.445 -runtime: 0.318 -syscall: 0.237 - - - -Atomic test-and-set instruction does not work on qemu-user - -I try to compile and run PostgreSQL/Greenplum database inside docker container/qemu-aarch64-static: -``` - host: CentOS7 x86_64 - container: centos:centos7.9.2009 --platform linux/arm64/v8 - qemu-user-static: https://github.com/multiarch/qemu-user-static/releases/ -``` - -However, GP/PG's spinlock always gets stuck and reports PANIC errors. It seems its spinlock -has something wrong. -``` -https://github.com/greenplum-db/gpdb/blob/master/src/include/storage/s_lock.h -https://github.com/greenplum-db/gpdb/blob/master/src/backend/storage/lmgr/s_lock.c -``` - -So I extract its spinlock implementation into one test C source file (see attachment file), -and get reprodcued: - -``` -$ gcc spinlock_qemu.c -$ ./a.out -C -- slock inited, lock value is: 0 -parent 139642, child 139645 -P -- slock lock before, lock value is: 0 -P -- slock locked, lock value is: 1 -P -- slock unlock after, lock value is: 0 -C -- slock lock before, lock value is: 1 -P -- slock lock before, lock value is: 1 -C -- slock locked, lock value is: 1 -C -- slock unlock after, lock value is: 0 -C -- slock lock before, lock value is: 1 -P -- slock locked, lock value is: 1 -P -- slock unlock after, lock value is: 0 -P -- slock lock before, lock value is: 1 -C -- slock locked, lock value is: 1 -C -- slock unlock after, lock value is: 0 -P -- slock locked, lock value is: 1 -C -- slock lock before, lock value is: 1 -P -- slock unlock after, lock value is: 0 -C -- slock locked, lock value is: 1 -P -- slock lock before, lock value is: 1 -C -- slock unlock after, lock value is: 0 -P -- slock locked, lock value is: 1 -C -- slock lock before, lock value is: 1 -P -- slock unlock after, lock value is: 0 -C -- slock locked, lock value is: 1 -P -- slock lock before, lock value is: 1 -C -- slock unlock after, lock value is: 0 -P -- slock locked, lock value is: 1 -C -- slock lock before, lock value is: 1 -P -- slock unlock after, lock value is: 0 -P -- slock lock before, lock value is: 1 -spin timeout, lock value is 1 (pid 139642) -spin timeout, lock value is 1 (pid 139645) -spin timeout, lock value is 1 (pid 139645) -spin timeout, lock value is 1 (pid 139642) -spin timeout, lock value is 1 (pid 139645) -spin timeout, lock value is 1 (pid 139642) -... -... -... -``` - -NOTE: this code always works on PHYSICAL ARM64 server.
\ No newline at end of file |
