Brad Bishop | 1a4b7ee | 2018-12-16 17:11:34 -0800 | [diff] [blame^] | 1 | From c486455e0691f9915018b9d8b133200a6c61a3c5 Mon Sep 17 00:00:00 2001 |
| 2 | From: Alistair Francis <alistair.francis@wdc.com> |
| 3 | Date: Thu, 24 May 2018 09:58:42 -0700 |
| 4 | Subject: [PATCH] Remove atomics |
| 5 | |
| 6 | Based on this patch: |
| 7 | https://github.com/patrikx3/lede-redis/blob/master/redis/patches/010-redis.patch |
| 8 | |
| 9 | Signed-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 | |
| 15 | diff --git a/deps/jemalloc/src/pages.c b/deps/jemalloc/src/pages.c |
| 16 | index 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 | |
| 48 | diff --git a/src/atomicvar.h b/src/atomicvar.h |
| 49 | index 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 | -- |
| 71 | 2.17.0 |
| 72 | |