* Avi Kivity <avi@xxxxxxxxxxxx> wrote:
-#ifdef CONFIG_PARAVIRT
-unsigned int __read_mostly vdso_enabled = 0;
-#else
unsigned int __read_mostly vdso_enabled = 1;
-#endif
Can't paravirt patch the syscall instruction like it does the rest of the kernel?
we want to keep the guest as simple and unmodified as possible. And all this #ifdef jungle /will/ bite back. Especially if the change goes in with zero explanation like it did:
[PATCH] paravirt: Disable vdso by default when CONFIG_PARAVIRT is enabled
They don't work together and this way even glibc still works.
i rather want an experimental feature (CONFIG_PARAVIRT) broken on some hypervisors for a bit than an entire body of guest OSs getting used to the "you dont have to deal with this VDSO annoyance by default" quirk forever ...
but yes, i agree that the hypervisor should have the ability to patch the syscall instruction of both the hypervisor interface and of the VDSO interface. But this wasnt implemented like that, and the #ifdef quirk just /prevents/ a sane solution like that from ever getting done the right way.