From: Anthony Liguori <aliguori@us.ibm.com>
To: xen-devel <xen-devel@lists.sourceforge.net>
Subject: [PATCH] Cleanup rmb()/wmb() usage
Date: Tue, 22 Feb 2005 21:38:53 -0600 [thread overview]
Message-ID: <421BFACD.7090606@us.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 629 bytes --]
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@us.ibm.com>
[-- Attachment #2: rmb_wmb_cleanup.diff --]
[-- Type: text/x-patch, Size: 2621 bytes --]
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 { \
next reply other threads:[~2005-02-23 3:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-23 3:38 Anthony Liguori [this message]
2005-02-23 7:18 ` [PATCH] Cleanup rmb()/wmb() usage Keir Fraser
2005-02-23 7:57 ` Anthony Liguori
2005-02-23 8:44 ` Keir Fraser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=421BFACD.7090606@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=xen-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.