[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] Cleanup rmb()/wmb() usage
This is a pretty simple patch to use the read/write barriers defined in asm/system.h instead of using hardcoded versions in various places throughout Xen. I've checked and using asm/system.h generates the same code on my system. I also tested xcs and it seems to work fine. I haven't tested blktap but again, it's generating the same code. Right now, wmb() is defined as a NOP on any 386 architecture. Some Intel clones require a non-NOP wmb(). Using asm/system.h ensures we do the right thing. It's against xen-unstable as of today. Regards, Anthony Liguori Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> diff -ur xen-unstable-orig/tools/blktap/blktaplib.h xen-unstable/tools/blktap/blktaplib.h --- xen-unstable-orig/tools/blktap/blktaplib.h 2005-02-21 22:19:26.000000000 -0600 +++ xen-unstable/tools/blktap/blktaplib.h 2005-02-22 21:26:06.000000000 -0600 @@ -18,14 +18,9 @@ typedef int16_t s16; typedef int32_t s32; typedef int64_t s64; - -#if defined(__i386__) -#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define wmb() __asm__ __volatile__ ( "" : : : "memory" ) -#else -#error "Define barriers" -#endif - + +#include <asm/system.h> + #include <sys/user.h> #include <xen/xen.h> #include <xen/io/blkif.h> diff -ur xen-unstable-orig/tools/python/xen/lowlevel/xu/xu.c xen-unstable/tools/python/xen/lowlevel/xu/xu.c --- xen-unstable-orig/tools/python/xen/lowlevel/xu/xu.c 2005-02-21 22:19:25.000000000 -0600 +++ xen-unstable/tools/python/xen/lowlevel/xu/xu.c 2005-02-22 21:23:50.000000000 -0600 @@ -27,6 +27,8 @@ #include <xen/io/domain_controller.h> #include <xen/linux/privcmd.h> +#include <asm/system.h> + #define XENPKG "xen.lowlevel.xu" /* Needed for Python versions earlier than 2.3. */ @@ -49,14 +51,6 @@ /* Size of a machine page frame. */ #define PAGE_SIZE 4096 -#if defined(__i386__) -#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define wmb() __asm__ __volatile__ ( "" : : : "memory" ) -#else -#error "Define barriers" -#endif - - /* Set the close-on-exec flag on a file descriptor. Doesn't currently bother * to check for errors. */ /* diff -ur xen-unstable-orig/tools/xcs/xcs.h xen-unstable/tools/xcs/xcs.h --- xen-unstable-orig/tools/xcs/xcs.h 2005-02-21 22:19:31.000000000 -0600 +++ xen-unstable/tools/xcs/xcs.h 2005-02-22 21:24:12.000000000 -0600 @@ -16,6 +16,7 @@ #include <xen/io/domain_controller.h> #include <xen/linux/privcmd.h> #include <sys/time.h> +#include <asm/system.h> #include "xcs_proto.h" /* ------[ Debug macros ]--------------------------------------------------*/ @@ -39,13 +40,6 @@ /* Size of a machine page frame. */ #define PAGE_SIZE 4096 -#if defined(__i386__) -#define rmb() __asm__ __volatile__ ( "lock; addl $0,0(%%esp)" : : : "memory" ) -#define wmb() __asm__ __volatile__ ( "" : : : "memory" ) -#else -#error "Define barriers" -#endif - #ifndef timersub /* XOPEN and __BSD don't cooperate well... */ #define timersub(a, b, result) \ do { \
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |