Re: [patch] paravirt: VDSO page is essential

From: Roland McGrath
Date: Tue Mar 06 2007 - 04:14:12 EST


> -# define VDSO_PRELINK VDSO_HIGH_BASE
> +# ifndef CONFIG_XEN
> +# define VDSO_PRELINK VDSO_HIGH_BASE
> +# else
> +# define VDSO_PRELINK (0UL - FIX_VDSO * PAGE_SIZE)
> +# endif
>
> should be Kconfig driven, not #ifdef driven, due to cleanliness and also
> because lguest wants to have the same thing. Plus:

In fact, with the relocate_vdso stuff it doesn't matter what VDSO_PRELINK
is at compile time. It saves the small amount of startup cost if it
matches the runtime address, but that is probably not noticeable.

> furthermore, there should be a paravirt_ops method to chose the
> relocation address, unless i'm missing something. On the native kernel
> that address will default to 0xffffe000. (if CONFIG_COMPAT_VDSO is
> selected)

For everything else to work, it needs to be set by changing __FIXADDR_TOP,
which seems to be done by calling reserve_top_address early enough.
It looks like that needs to be properly tied into paravirt_ops somehow.


Thanks,
Roland
-
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/