Re: [PATCH] i386: Decouple PAE from CONFIG_CMPXCHG64

From: Andi Kleen
Date: Wed Jul 18 2007 - 14:18:55 EST


On Wed, Jul 18, 2007 at 07:34:47PM +0300, Avi Kivity wrote:
> Commit 9d9bbd4d247a674deb43565582151acdc22e90d1 makes CONFIG_CMPXCHG64
> dependent on CONFIG_HIGHMEM64G, but KVM guest SMP support now also
> requires CMPXCHG64 while not being tied to PAE. So the effect of that patch
> is to disable KVM on non-PAE configs.
>
> Untangle those dependencies by:
> - having KVM select CMPXCHG64
> - having HIGHMEM64G select CMPXCHG64_REQUIRED, a variant that also
> checks for the feature at early boot
>
> No processors that support KVM exist that also do not support CMPXCHG64,
> so no additional check is necessary. This setup allows for a single kernel
> that will boot on i486 and also support KVM if available.

The CONFIG should only control the early CPUID checks, which are needed for PAE
kernels.

But for something late like KVM the correct fix is really to drop
the ifdefs around the macro and check boot_cpu_has() yourself.

-Andi
-
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/