From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: regression from c/s 22071:c5aed2e049bc (ept: Put locks around ept_get_entry) ? Date: Fri, 17 Dec 2010 14:18:34 +0000 Message-ID: References: <20101217140353.GA8762@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20101217140353.GA8762@aepfle.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Olaf Hering Cc: George Dunlap , Christoph Egger , "xen-devel@lists.xensource.com" , Jan Beulich List-Id: xen-devel@lists.xenproject.org On 17/12/2010 14:03, "Olaf Hering" wrote: > On Thu, Dec 16, Keir Fraser wrote: >=20 >> Excellent. I will lay groundwork and fix pte_{read,write}_atomic directl= y in >> -unstable and -4.0-testing. I will then post a proposed fix for EPT to t= he >> list. I don't know that code so well and I may not otherwise catch all >> places that require use of the new accessor macros. >=20 > Keir, >=20 > this failure may be related to the changes that went just into > xen-unstable, fails in openSuSE 11.2 and 11.3 on 32bit: Oops, I stared at the atomic_write64() implementation a while, I had an old version to basically copy across, and still I got it wrong. It's fixed by xen-unstable c/s 22572. Thanks, Keir > make[2]:=E2=80=82Entering=E2=80=82directory=E2=80=82`/usr/src/packages/BUILD/xen-unstable.h= g-4.1.22571 > /xen/arch/x86' > gcc=E2=80=82-fomit-frame-pointer=E2=80=82-fmessage-length=3D0=E2=80=82-O2=E2=80=82-Wall=E2=80=82 > -D_FORTIFY_SOURCE=3D2=E2=80=82-fstack-protector=E2=80=82-funwind-tables=E2=80=82 > -fasynchronous-unwind-tables=E2=80=82-O1=E2=80=82-fno-omit-frame-pointer=E2=80=82 > -fno-optimize-sibling-calls=E2=80=82-m32=E2=80=82-march=3Di686=E2=80=82-g=E2=80=82-fno-strict-alias= ing=E2=80=82 > -std=3Dgnu99=E2=80=82-Wall=E2=80=82-Wstrict-prototypes=E2=80=82-Wno-unused-value=E2=80=82 > -Wdeclaration-after-statement=E2=80=82=E2=80=82-nostdinc=E2=80=82-fno-builtin=E2=80=82-fno-common= =E2=80=82 > -Wredundant-decls=E2=80=82-iwithprefix=E2=80=82include=E2=80=82-Werror=E2=80=82-Wno-pointer-arith= =E2=80=82-pipe=E2=80=82 > -I/usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include=E2=80=82=E2=80=82 > -I/usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include/asm-x86/m= ach-g > eneric =E2=80=82=20 > -I/usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include/asm-x86/m= ach-d > efault =E2=80=82-msoft-float=E2=80=82-fno-stack-protector=E2=80=82-fno-exceptions=E2=80=82-g=E2=80=82-D= __XEN__=E2=80=82 > -DVERBOSE=E2=80=82-DCRASH_DEBUG=E2=80=82-fno-omit-frame-pointer=E2=80=82-DCONFIG_FRAME_POIN= TER=E2=80=82 > -DMAX_PHYS_CPUS=3D32=E2=80=82-MMD=E2=80=82-MF=E2=80=82.xen.d=E2=80=82-O1=E2=80=82-fno-omit-frame-pointer=E2= =80=82 > -fno-optimize-sibling-calls=E2=80=82-m32=E2=80=82-march=3Di686=E2=80=82-g=E2=80=82-fno-strict-alias= ing=E2=80=82 > -std=3Dgnu99=E2=80=82-Wall=E2=80=82-Wstrict-prototypes=E2=80=82-Wno-unused-value=E2=80=82 > -Wdeclaration-after-statement=E2=80=82=E2=80=82-nostdinc=E2=80=82-fno-builtin=E2=80=82-fno-common= =E2=80=82 > -Wredundant-decls=E2=80=82-iwithprefix=E2=80=82include=E2=80=82-Werror=E2=80=82-Wno-pointer-arith= =E2=80=82-pipe=E2=80=82 > -I/usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include=E2=80=82=E2=80=82 > -I/usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include/asm-x86/m= ach-g > eneric =E2=80=82=20 > -I/usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include/asm-x86/m= ach-d > efault =E2=80=82-msoft-float=E2=80=82-fno-stack-protector=E2=80=82-fno-exceptions=E2=80=82-g=E2=80=82-D= __XEN__=E2=80=82 > -DVERBOSE=E2=80=82-DCRASH_DEBUG=E2=80=82-fno-omit-frame-pointer=E2=80=82-DCONFIG_FRAME_POIN= TER=E2=80=82 > -DMAX_PHYS_CPUS=3D32=E2=80=82-MMD=E2=80=82-MF=E2=80=82.asm-offsets.s.d=E2=80=82-S=E2=80=82-o=E2=80=82asm-offset= s.s=E2=80=82 > x86_32/asm-offsets.c > cc1:=E2=80=82warnings=E2=80=82being=E2=80=82treated=E2=80=82as=E2=80=82errors > In=E2=80=82file=E2=80=82included=E2=80=82from=E2=80=82/usr/src/packages/BUILD/xen-unstable.hg-4.1= .22571/xen/in > clude/asm/spinlock.h:6, > =E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82from=E2=80=82/usr/src/packag= es/BUILD/xen-unstable.hg-4.1.22571/xen/in > clude/xen/spinlock.h:6, > =E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82from=E2=80=82/usr/src/packag= es/BUILD/xen-unstable.hg-4.1.22571/xen/in > clude/xen/sched.h:7, > =E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82from=E2=80=82x86_32/asm-offs= ets.c:9: > /usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include/asm/atomic.= h:=E2=80=82In > =E2=80=82function=E2=80=82'atomic_write64': > /usr/src/packages/BUILD/xen-unstable.hg-4.1.22571/xen/include/asm/atomic.= h:39: > =E2=80=82error:=E2=80=82operation=E2=80=82on=E2=80=82'old'=E2=80=82may=E2=80=82be=E2=80=82undefined > make[2]:=E2=80=82***=E2=80=82[asm-offsets.s]=E2=80=82Error=E2=80=821 > make[2]:=E2=80=82Leaving=E2=80=82directory=E2=80=82`/usr/src/packages/BUILD/xen-unstable.hg= -4.1.22571/ > xen/arch/x86' >=20 > 36 static inline void atomic_write64(volatile uint64_t *addr, uint64_t v= al) > 37 { > 38 uint64_t old =3D *addr, new, *__addr =3D (uint64_t *)addr; > 39 while ( (old =3D __cmpxchg8b(__addr, old, val)) !=3D old ) > 40 old =3D new; > 41 } >=20