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

Ben Hutchings
2010-07-13T23:58:09Z

[-- Attachment #1: Type: text/plain, Size: 1138 bytes --]

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 #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]