blob: 23b2f2aaf01b1be1e42314f408cf33e201a0a594 [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001From c486455e0691f9915018b9d8b133200a6c61a3c5 Mon Sep 17 00:00:00 2001
2From: Alistair Francis <alistair.francis@wdc.com>
3Date: Thu, 24 May 2018 09:58:42 -0700
4Subject: [PATCH] Remove atomics
5
6Based on this patch:
7https://github.com/patrikx3/lede-redis/blob/master/redis/patches/010-redis.patch
8
9Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
10---
11 deps/jemalloc/src/pages.c | 22 +---------------------
12 src/atomicvar.h | 4 ++--
13 2 files changed, 3 insertions(+), 23 deletions(-)
14
15diff --git a/deps/jemalloc/src/pages.c b/deps/jemalloc/src/pages.c
16index 83a167f6..8e82c78d 100644
17--- a/deps/jemalloc/src/pages.c
18+++ b/deps/jemalloc/src/pages.c
19@@ -147,27 +147,7 @@ pages_purge(void *addr, size_t size)
20 {
21 bool unzeroed;
22
23-#ifdef _WIN32
24- VirtualAlloc(addr, size, MEM_RESET, PAGE_READWRITE);
25- unzeroed = true;
26-#elif defined(JEMALLOC_HAVE_MADVISE)
27-# ifdef JEMALLOC_PURGE_MADVISE_DONTNEED
28-# define JEMALLOC_MADV_PURGE MADV_DONTNEED
29-# define JEMALLOC_MADV_ZEROS true
30-# elif defined(JEMALLOC_PURGE_MADVISE_FREE)
31-# define JEMALLOC_MADV_PURGE MADV_FREE
32-# define JEMALLOC_MADV_ZEROS false
33-# else
34-# error "No madvise(2) flag defined for purging unused dirty pages."
35-# endif
36- int err = madvise(addr, size, JEMALLOC_MADV_PURGE);
37- unzeroed = (!JEMALLOC_MADV_ZEROS || err != 0);
38-# undef JEMALLOC_MADV_PURGE
39-# undef JEMALLOC_MADV_ZEROS
40-#else
41- /* Last resort no-op. */
42- unzeroed = true;
43-#endif
44+ unzeroed = false;
45 return (unzeroed);
46 }
47
48diff --git a/src/atomicvar.h b/src/atomicvar.h
49index 84a5bbc5..f9b563c2 100644
50--- a/src/atomicvar.h
51+++ b/src/atomicvar.h
52@@ -68,7 +68,7 @@
53 * is reported. */
54 // #define __ATOMIC_VAR_FORCE_SYNC_MACROS
55
56-#if !defined(__ATOMIC_VAR_FORCE_SYNC_MACROS) && defined(__ATOMIC_RELAXED) && !defined(__sun) && (!defined(__clang__) || !defined(__APPLE__) || __apple_build_version__ > 4210057)
57+#if defined(CONFIG_EDAC_ATOMIC_SCRUB) && !defined(__ATOMIC_VAR_FORCE_SYNC_MACROS) && defined(__ATOMIC_RELAXED) && !defined(__sun) && (!defined(__clang__) || !defined(__APPLE__) || __apple_build_version__ > 4210057)
58 /* Implementation using __atomic macros. */
59
60 #define atomicIncr(var,count) __atomic_add_fetch(&var,(count),__ATOMIC_RELAXED)
61@@ -82,7 +82,7 @@
62 #define atomicSet(var,value) __atomic_store_n(&var,value,__ATOMIC_RELAXED)
63 #define REDIS_ATOMIC_API "atomic-builtin"
64
65-#elif defined(HAVE_ATOMIC)
66+#elif defined(CONFIG_EDAC_ATOMIC_SCRUB) && defined(HAVE_ATOMIC)
67 /* Implementation using __sync macros. */
68
69 #define atomicIncr(var,count) __sync_add_and_fetch(&var,(count))
70--
712.17.0
72