Re: 2.6.32 stalls as guest in virtualbox

From: Christoph Biedl
Date: Sat Jan 30 2010 - 13:46:35 EST


Christoph Biedl wrote...

(...)

Christian Ehrhard gave me a lot of help understanding the kernel sides
of that issue, thanks for this. Appearently virtualbox cannot
properly deal with the result of alternative_io in
arch/x86/include/asm/cmpxchg_32.h since this klugdy patch

--- a/arch/x86/include/asm/cmpxchg_32.h
+++ b/arch/x86/include/asm/cmpxchg_32.h
@@ -317,7 +317,7 @@ extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64);
__typeof__(*(ptr)) __ret; \
__typeof__(*(ptr)) __old = (o); \
__typeof__(*(ptr)) __new = (n); \
- alternative_io("call cmpxchg8b_emu", \
+ alternative_io("lock; cmpxchg8b (%%esi)", \
"lock; cmpxchg8b (%%esi)" , \
X86_FEATURE_CX8, \
"=A" (__ret), \

fixes the problem,

Unlike his findings described in
<http://marc.info/?l=linux-kernel&m=121545190107704&w=2>, the guest
does not crash but seems to run into a busy loop instead.

A acceptable workaround is selecting CONFIG_M686 (but not CONFIG_M586).

Now I guess this is rather something to virtualbox guys should take
care of, therefore I've opened a ticket there:
http://www.virtualbox.org/ticket/6100

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