diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7aebd0f59..ff4795a7e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -172,6 +172,7 @@ jobs: submodules: 'true' - name: Install dependencies run: | + sudo apt-get -y update sudo apt-get install -y gfortran rpm mpich libmpich-dev libhwloc-dev gdb sudo sysctl -w kernel.yama.ptrace_scope=0 sudo sysctl -w kernel.randomize_va_space=0 @@ -219,7 +220,7 @@ jobs: if: ${{ matrix.xpmem_version }} run: | cd repos/xpmem - sudo apt-get install linux-headers-`uname -r` + sudo apt-get -y install linux-headers-`uname -r` ./autogen.sh ./configure --prefix=${XPMEM_INSTALL_DIR} make -j @@ -332,6 +333,7 @@ jobs: # - uses: actions/checkout@v2 # - name: Install dependencies # run: | +# sudo apt-get -y update # sudo apt-get install -y gfortran libhwloc-dev libev-dev libev-libevent-dev # # # LIBFABRIC @@ -531,6 +533,7 @@ jobs: submodules: 'true' - name: Install dependencies run: | + sudo apt-get -y update sudo apt-get install -y gfortran mpich libmpich-dev gdb sudo sysctl -w kernel.yama.ptrace_scope=0 sudo sysctl -w kernel.randomize_va_space=0 @@ -545,7 +548,7 @@ jobs: - name: Build XPMEM run: | cd repos/xpmem - sudo apt-get install linux-headers-`uname -r` + sudo apt-get -y install linux-headers-`uname -r` ./autogen.sh ./configure --prefix=/usr make -j @@ -648,6 +651,7 @@ jobs: submodules: 'true' - name: Install dependencies run: | + sudo apt-get -y update sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev libhwloc-dev gdb sudo sysctl -w kernel.yama.ptrace_scope=0 sudo sysctl -w kernel.randomize_va_space=0 @@ -662,7 +666,7 @@ jobs: - name: Build XPMEM run: | cd repos/xpmem - sudo apt-get install linux-headers-`uname -r` + sudo apt-get -y install linux-headers-`uname -r` ./autogen.sh ./configure --prefix=/usr make -j @@ -744,6 +748,7 @@ jobs: submodules: 'true' - name: Install dependencies run: | + sudo apt-get -y update sudo apt-get install -y gfortran mpich libmpich-dev libev-dev libev-libevent-dev libhwloc-dev gdb sudo sysctl -w kernel.yama.ptrace_scope=0 sudo sysctl -w kernel.randomize_va_space=0 @@ -758,7 +763,7 @@ jobs: - name: Build XPMEM run: | cd repos/xpmem - sudo apt-get install linux-headers-`uname -r` + sudo apt-get -y install linux-headers-`uname -r` ./autogen.sh ./configure --prefix=/usr make -j diff --git a/src/shmem_atomic.h b/src/shmem_atomic.h index 7fc35cccc..12a34599f 100644 --- a/src/shmem_atomic.h +++ b/src/shmem_atomic.h @@ -164,6 +164,11 @@ shmem_internal_cntr_dec(shmem_internal_cntr_t *val) { return; } +static inline +uint64_t +shmem_internal_cntr_fadd(shmem_internal_cntr_t *ptr, uint64_t value) { + return __atomic_fetch_add(ptr, value, __ATOMIC_RELEASE); +} # else /* HAVE_STDATOMIC_H */ #include @@ -197,6 +202,11 @@ shmem_internal_cntr_dec(shmem_internal_cntr_t *val) { return; } +static inline +uint64_t +shmem_internal_cntr_fadd(shmem_internal_cntr_t *ptr, uint64_t value) { + return atomic_fetch_add(ptr, value); +} # endif # else /* !define( ENABLE_THREADS ) */ @@ -228,6 +238,14 @@ shmem_internal_cntr_dec(shmem_internal_cntr_t *val) { *val = *val-1; return; } + +static inline +uint64_t +shmem_internal_cntr_fadd(shmem_internal_cntr_t *ptr, uint64_t value) { + uint64_t orig_value = *ptr; + *ptr = *ptr + value; + return orig_value; +} # endif /* ENABLE_THREADS */ #endif