PERFORCE change 71492 for review
John Baldwin
jhb at FreeBSD.org
Mon Feb 21 12:25:21 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=71492
Change 71492 by jhb at jhb_slimer on 2005/02/21 20:25:13
MFi386: Don't use fences at all for UP kernels.
Affected files ...
.. //depot/projects/smpng/sys/amd64/include/atomic.h#6 edit
Differences ...
==== //depot/projects/smpng/sys/amd64/include/atomic.h#6 (text+ko) ====
@@ -162,6 +162,8 @@
#if defined(__GNUC__)
+#if defined(_KERNEL) && !defined(SMP)
+
#define ATOMIC_STORE_LOAD(TYPE) \
static __inline u_##TYPE \
atomic_load_acq_##TYPE(volatile u_##TYPE *p) \
@@ -169,6 +171,25 @@
u_##TYPE v; \
\
v = *p; \
+ return (v); \
+} \
+ \
+static __inline void \
+atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\
+{ \
+ *p = v; \
+} \
+struct __hack
+
+#else /* defined(SMP) */
+
+#define ATOMIC_STORE_LOAD(TYPE) \
+static __inline u_##TYPE \
+atomic_load_acq_##TYPE(volatile u_##TYPE *p) \
+{ \
+ u_##TYPE v; \
+ \
+ v = *p; \
__asm __volatile("lfence" ::: "memory"); \
return (v); \
} \
@@ -181,6 +202,8 @@
} \
struct __hack
+#endif /* !define(SMP) */
+
#else /* !defined(__GNUC__) */
extern int atomic_cmpset_int(volatile u_int *, u_int, u_int);
More information about the p4-projects
mailing list