We are not concerned so much > with supporting legacy user land deployments, I am concerned about that. I won't merge any patches that break compatibility by default. > > What would probably work is to somehow decide at runtime if a hypervisor > > is there or not and then set vdso default based on that. I guess that > > detection would be hypervisor specific though and probably would > > need paravirt ops extensions. > > > > What we really need to do is to be able to detect an old user land and > drop VDSO support when that is found. Rusty implemented that, but it was widely considered too ugly (and it was not 100% reliable e.g. with chroots) > But since we can't do that, the > next best thing is to allow the hypervisor to choose whatever workaround > it wants when it moves the fixmap and compat_vdso was enabled. In our > case, the workaround we will want is a boot option to disable VDSO for > old user land, The boot option is already there, but boot options for is not my idea of user friendly binary compatibility. > and a printk warning if you take #GPs and kill the init > proc, because for us, this is not an expected support scenario. We > would much rather support the VDSO by default in paravirt kernels even > with COMPAT_VDSO turned on. But you can't have it at the compatible fixed address, right? -Andi