Re: [patch] paravirt: VDSO page is essential

Roland McGrath
2007-03-05T21:58:48Z

Does the old userland compatibility you're concerned about really need the
vdso to be at 0xfffffe000 in particular, or just need it to be at a fixed
address that matches the phdrs inside the image? My recollection of the old
glibc's limitation was that it expected the image's phdrs to match its load
address. The xen kernels used to change this to 0xffffd000 or something,
and AFAIK that was fine. If that's all that's needed, it is not so hard to
adjust the vDSO contents at boot time (phdrs, shdrs, and symbols; no code
contents use the absolute address). Under CONFIG_COMPAT_VDSO, it can see
where the paravirt moved the fixmap to, and apply adjustments.

That said, I don't think this is worth all that much effort since
CONFIG_COMPAT_VDSO is not really desireable for most people. I think
disabling the vdso under CONFIG_COMPAT_VDSO+CONFIG_PARAVIRT is survivable
(just don't set CONFIG_COMPAT_VDSO for a system you want to be optimal).

Thanks,
Roland