Re: [patch] paravirt: VDSO page is essential

Ingo Molnar
2007-03-05T12:49:24Z

* Avi Kivity <avi@qumranet.com> 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.

Ingo