There is one thing that always worried me.
Intel & AMD manuals make clear that mixing data and program in the same page
is bad for performance.
In particular, x86_64 vsyscall put jiffies and other vsyscall_gtod_data_t
right in the midle of code. That is certainly not wise.
A probably sane implementation should use two pages, one for code, one for data.
-