Re: [Stable-review] [patch 134/149] x86, paravirt: Add a globalsynchronization point for pvclock

From: Ben Hutchings
Date: Tue Jul 13 2010 - 19:58:15 EST


On Tue, 2010-07-13 at 20:25 +0200, Peter Palfrader wrote:
> On Tue, 13 Jul 2010, Avi Kivity wrote:
>
> > Well, current upstream uses "m":
> >
> >> case 8: \
> >> asm volatile(lock "cmpxchgq %1,%2" \
> >> : "=a"(__ret) \
> >> : "r"(__new), "m"(*__xg(ptr)), "0"(__old) \
> >> : "memory"); \
> >> break; \
> >
> > and works; I also failed to reproduce with 2.6.32.16. So I expect some
> > toolchain involvement.
> >
> > Peter, what gcc are you using?
>
> gcc (Debian 4.3.2-1.1) 4.3.2

The experimental Debian packages of 2.6.35-rc5 are built with gcc 4.4
and they don't have this bug - last_value is marked as 'b' in
System.map, which I assume means BSS. So this may be specific to gcc
4.3.

Ben.

--
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.




Attachment: signature.asc
Description: This is a digitally signed message part