|
|
|
|
|
by amluto
3422 days ago
|
|
vDSO maintainer here. > Curiously the recommended syscall mechanism on x86 is by calling __kernel_vsyscall in the vDSO. There are times when this doesn't work. Syscall resumption and cancellation come to mind. Also, __kernel_vsyscall is a hack to make fast syscalls work on the awful 32-bit x86 architecture, not a nice feature. > it would have been fantastic if calling through the vDSO had simply been the only documented way of doing a syscall on x86_64 There is no __kernel_vsyscall or similar feature on x86_64. > we can't even trap that on any x86_64 OS You can on Linux using seccomp. |
|
It's a pretty nice feature in the context of being able to make compatibility layers on other OS'ses in userspace which was the discussion here. Or would be if it was always used. Why doesn't it work for syscall resumption and cancellation?
> There is no __kernel_vsyscall or similar feature on x86_64.
Yes that was exactly what I was complaining about.
> You can on Linux using seccomp.
Yes but why would I want to make a linux compatibility layer on linux?