Valgrind does appear to be aware of sysarch, implementing sysarch(AMD64_SET_FSBASE) in coregrind/m_syswrap/syswrap-amd64-freebsd.c.Aha. eglibc is testing that the syscall succeeds, which is indicated by setting RAX to 0.
The standard kernel in a success case sets RAX to zero and clears carry flag. In error case the carry flag is set and RAX contains error number. It probably should be SET_STATUS_Success2((0L, tst->arch.vex.guest_RDX ); Petr