All of lore.kernel.org
 help / color / mirror / Atom feed
* Memory barrier definitions in xenctrl.h  for ia64?
@ 2006-09-18 18:07 Daniel P. Berrange
  2006-09-18 19:12 ` Keir Fraser
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel P. Berrange @ 2006-09-18 18:07 UTC (permalink / raw)
  To: xen-devel

Looking in tools/libxc/xenctrl.h it seems we define macros for memory barriers, 

#if defined(__i386__)
#define mb()  __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" )
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
#elif defined(__x86_64__)
#define mb()  __asm__ __volatile__ ( "mfence" : : : "memory")
#define rmb() __asm__ __volatile__ ( "lfence" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
#elif defined(__ia64__)
/* FIXME */
#define mb()
#define rmb()
#define wmb()
#elif defined(__powerpc__)
/* XXX loosen these up later */
#define mb()   __asm__ __volatile__ ("sync" : : : "memory")
#define rmb()  __asm__ __volatile__ ("sync" : : : "memory") /* lwsync? */
#define wmb()  __asm__ __volatile__ ("sync" : : : "memory") /* eieio? */
#else
#error "Define barriers"
#endif

I'm not familiar with ia64 myself - does it really not need memory barriers?

The userspace tools blktap, xenfb & xconsoled are all using these macros in 
various places so if ia64 does indeed need memory barriers it looks like
there is some nasty bug potential here

Regards,
Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-09-18 19:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-18 18:07 Memory barrier definitions in xenctrl.h for ia64? Daniel P. Berrange
2006-09-18 19:12 ` Keir Fraser

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.