Alex Williamson
2007-May-10 16:35 UTC
[Xen-devel] [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Remove atomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
On Thu, 2007-05-10 at 16:00 +0100, Xen staging patchbot-unstable wrote:> # HG changeset patch > # User Christian Limpach <Christian.Limpach@xensource.com> > # Date 1178809115 -3600 > # Node ID 8f510bf078c7745696547b5245ba95ac5a6192bc > # Parent a4467c0971ba0e876637478b7f5e37ce344768c0 > [qemu] Remove atomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its > users.ia64intrin.h is all but empty in gcc 4.1.2, so there''s no point in including it. dm-exec is still making use of a few of these too, but I guess it''s easy enough to inline them there. Patch below. Thanks, Alex Signed-off-by: Alex Williamson <alex.williamson@hp.com> --- diff -r 07b1e917c9d8 tools/ioemu/exec-all.h --- a/tools/ioemu/exec-all.h Thu May 10 16:22:27 2007 +0100 +++ b/tools/ioemu/exec-all.h Thu May 10 10:13:17 2007 -0600 @@ -474,8 +474,6 @@ static inline int testandset (int *p) #endif #ifdef __ia64 -#include <ia64intrin.h> - static inline int testandset (int *p) { return __sync_lock_test_and_set (p, 1); diff -r 07b1e917c9d8 tools/ioemu/target-i386-dm/exec-dm.c --- a/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10 16:22:27 2007 +0100 +++ b/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10 10:11:38 2007 -0600 @@ -360,6 +360,11 @@ CPUReadMemoryFunc **cpu_get_io_memory_re } #ifdef __ia64__ + +#define __ia64_fc(addr) asm volatile ("fc %0" :: "r"(addr) : "memory") +#define ia64_sync_i() asm volatile (";; sync.i" ::: "memory") +#define ia64_srlz_i() asm volatile (";; srlz.i ;;" ::: "memory") + /* IA64 has seperate I/D cache, with coherence maintained by DMA controller. * So to emulate right behavior that guest OS is assumed, we need to flush * I/D cache here. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Christian Limpach
2007-May-10 20:01 UTC
[Xen-devel] RE: [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
> ia64intrin.h is all but empty in gcc 4.1.2, so there''s no point in > including it. dm-exec is still making use of a few of these > too, but I > guess it''s easy enough to inline them there. Patch below. Thanks,Would it also work to just leave the include in exec-all.h? I was confused and thought that it was a local include which is why I put #ifndef CONFIG_DM around all the testandset definitions. So, if I remove the #ifndef CONFIG_DM, anything including exec-all.h should still compile, right? Do I still need the extra #define''s in that case? christian> > Alex > > Signed-off-by: Alex Williamson <alex.williamson@hp.com> > --- > > diff -r 07b1e917c9d8 tools/ioemu/exec-all.h > --- a/tools/ioemu/exec-all.h Thu May 10 16:22:27 2007 +0100 > +++ b/tools/ioemu/exec-all.h Thu May 10 10:13:17 2007 -0600 > @@ -474,8 +474,6 @@ static inline int testandset (int *p) > #endif > > #ifdef __ia64 > -#include <ia64intrin.h> > - > static inline int testandset (int *p) > { > return __sync_lock_test_and_set (p, 1); > diff -r 07b1e917c9d8 tools/ioemu/target-i386-dm/exec-dm.c > --- a/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10 > 16:22:27 2007 +0100 > +++ b/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10 > 10:11:38 2007 -0600 > @@ -360,6 +360,11 @@ CPUReadMemoryFunc **cpu_get_io_memory_re > } > > #ifdef __ia64__ > + > +#define __ia64_fc(addr) asm volatile ("fc %0" :: > "r"(addr) : "memory") > +#define ia64_sync_i() asm volatile (";; sync.i" ::: "memory") > +#define ia64_srlz_i() asm volatile (";; srlz.i ;;" > ::: "memory") > + > /* IA64 has seperate I/D cache, with coherence maintained by > DMA controller. > * So to emulate right behavior that guest OS is assumed, we > need to flush > * I/D cache here. > > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Alex Williamson
2007-May-10 21:09 UTC
[Xen-devel] RE: [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
On Thu, 2007-05-10 at 13:01 -0700, Christian Limpach wrote:> > ia64intrin.h is all but empty in gcc 4.1.2, so there''s no point in > > including it. dm-exec is still making use of a few of these > > too, but I > > guess it''s easy enough to inline them there. Patch below. Thanks, > > Would it also work to just leave the include in exec-all.h? I was > confused and thought that it was a local include which is why I put > #ifndef CONFIG_DM around all the testandset definitions. > > So, if I remove the #ifndef CONFIG_DM, anything including exec-all.h > should still compile, right? Do I still need the extra #define''s in > that case?ia64intrin.h is basically empty, so making it included for the dm-exec build doesn''t really help. The defines still need to come from somewhere. We could replace <ia64intrin.h> with <asm/gcc_intrin.h>, but for this trivial case, I''d rather not get tied up including kernel headers in userspace tools. Thanks, Alex -- Alex Williamson HP Open Source & Linux Org. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel