WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-ia64-devel] Re: [PATCH 02/27] ia64/xen: introduce synch bitops whic

To: "Luck, Tony" <tony.luck@xxxxxxxxx>
Subject: [Xen-ia64-devel] Re: [PATCH 02/27] ia64/xen: introduce synch bitops which is necessary for ia64/xen support.
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Thu, 19 Jun 2008 21:05:56 +0900
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, "linux-ia64@xxxxxxxxxxxxxxx" <linux-ia64@xxxxxxxxxxxxxxx>, "virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx" <virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx>, Robin Holt <holt@xxxxxxx>, "xen-ia64-devel@xxxxxxxxxxxxxxxxxxx" <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 19 Jun 2008 05:06:12 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <57C9024A16AD2D4C97DC78E552063EA3061C5BF1@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <12130840433561-git-send-email-yamahata@xxxxxxxxxxxxx> <1213084043534-git-send-email-yamahata@xxxxxxxxxxxxx> <57C9024A16AD2D4C97DC78E552063EA3061C5BF1@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.6i
On Tue, Jun 17, 2008 at 04:24:10PM -0700, Luck, Tony wrote:

> +/*
> + * Copyright 1992, Linus Torvalds.
> + * Heavily modified to provide guaranteed strong synchronisation
> + * when communicating with Xen or other guest OSes running on other CPUs.
> + */
> 
> Presumably Linus didn't write this in 1992.  Perhaps this file
> contains enough new material to warrant your own copyright?

Ah yes, I carried out the comment from old files.
I had hesited to eliminated the copyright.

> +static inline int sync_const_test_bit(int nr, const volatile void *addr)
> +{
> +       return test_bit(nr, addr);
> +}
> +
> +static inline int sync_var_test_bit(int nr, volatile void *addr)
> +{
> +       return test_bit(nr, addr);
> +}
>  ...
> +#define sync_test_bit(nr,addr)                 \
> +       (__builtin_constant_p(nr) ?             \
> +        sync_const_test_bit((nr), (addr)) :    \
> +        sync_var_test_bit((nr), (addr)))
> 
> What use is this?  It doesn't matter whether "nr" is constant or
> not you still end up using "test_bit" ... so why make the compiler
> do all the extra work when you just mean this?

Yes.

>From 45188e8d0d45b12ac7293098bf115874caf7bb5f Mon Sep 17 00:00:00 2001
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Thu, 19 Jun 2008 18:31:07 +0900
Subject: [PATCH] ia64/xen: introduce synch bitops which is necessary for 
ia64/xen support.

define sync bitops which is necessary for ia64/xen.

Cc: Robin Holt <holt@xxxxxxx>
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Cc: "Luck, Tony" <tony.luck@xxxxxxxxx>
---
 include/asm-ia64/sync_bitops.h |   50 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)
 create mode 100644 include/asm-ia64/sync_bitops.h

diff --git a/include/asm-ia64/sync_bitops.h b/include/asm-ia64/sync_bitops.h
new file mode 100644
index 0000000..8d4b9af
--- /dev/null
+++ b/include/asm-ia64/sync_bitops.h
@@ -0,0 +1,50 @@
+#ifndef _ASM_IA64_SYNC_BITOPS_H
+#define _ASM_IA64_SYNC_BITOPS_H
+
+/*
+ * Copyright (C) 2008 Isaku Yamahata <yamahata at valinux co jp>
+ *
+ * Based on synch_bitops.h which Dan Magenhaimer wrote.
+ *
+ * bit operations which provide guaranteed strong synchronisation
+ * when communicating with Xen or other guest OSes running on other CPUs.
+ */
+
+static inline void sync_set_bit(int nr, volatile void *addr)
+{
+       set_bit(nr, addr);
+}
+
+static inline void sync_clear_bit(int nr, volatile void *addr)
+{
+       clear_bit(nr, addr);
+}
+
+static inline void sync_change_bit(int nr, volatile void *addr)
+{
+       change_bit(nr, addr);
+}
+
+static inline int sync_test_and_set_bit(int nr, volatile void *addr)
+{
+       return test_and_set_bit(nr, addr);
+}
+
+static inline int sync_test_and_clear_bit(int nr, volatile void *addr)
+{
+       return test_and_clear_bit(nr, addr);
+}
+
+static inline int sync_test_and_change_bit(int nr, volatile void *addr)
+{
+       return test_and_change_bit(nr, addr);
+}
+
+static inline int sync_test_bit(int nr, const volatile void *addr)
+{
+       return test_bit(nr, addr);
+}
+
+#define sync_cmpxchg(ptr, old, new) cmpxchg_acq((ptr), (old), (new))
+
+#endif /* _ASM_IA64_SYNC_BITOPS_H */
-- 
1.5.3



-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

<Prev in Thread] Current Thread [Next in Thread>