Re: [patch] paravirt: VDSO page is essential

From: Avi Kivity
Date: Mon Mar 05 2007 - 08:03:36 EST


Ingo Molnar wrote:
* 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 ...

Sure, I agree with this patch. I'm talking about an alternate solution so Xen can work with the vdso instead of #ifdefing away the kernel.

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.

Rusty, shouldn't this be a one-liner? No need to involve the hypervisor here; the guest can s/syscall/int 80/ on its vdso page like it patches cli and its ilk.

--
error compiling committee.c: too many arguments to function

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/