diff options
author | luigi1111 <luigi1111w@gmail.com> | 2022-03-02 18:50:37 -0500 |
---|---|---|
committer | luigi1111 <luigi1111w@gmail.com> | 2022-03-02 18:50:37 -0500 |
commit | 5a1c0606320d834ac05ce149b350317c5850283e (patch) | |
tree | 7feb6ba81069fe7fbc0639d260447e60699f7ddb | |
parent | Merge pull request #8135 (diff) | |
parent | crypto: fix constant randomx exceptions in large page allocator (diff) | |
download | monero-5a1c0606320d834ac05ce149b350317c5850283e.tar.xz |
Merge pull request #7084
06e6c8b crypto: fix constant randomx exceptions in large page allocator (moneromooo-monero)
-rw-r--r-- | src/crypto/rx-slow-hash.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/crypto/rx-slow-hash.c b/src/crypto/rx-slow-hash.c index 801987e37..247c9032f 100644 --- a/src/crypto/rx-slow-hash.c +++ b/src/crypto/rx-slow-hash.c @@ -63,6 +63,7 @@ static rx_state rx_s[2] = {{CTHR_MUTEX_INIT,{0},0,0},{CTHR_MUTEX_INIT,{0},0,0}}; static randomx_dataset *rx_dataset; static int rx_dataset_nomem; +static int rx_dataset_nolp; static uint64_t rx_dataset_height; static THREADV randomx_vm *rx_vm = NULL; @@ -316,10 +317,11 @@ void rx_slow_hash(const uint64_t mainheight, const uint64_t seedheight, const ch } CTHR_MUTEX_UNLOCK(rx_dataset_mutex); } - if (!(disabled_flags() & RANDOMX_FLAG_LARGE_PAGES)) { + if (!(disabled_flags() & RANDOMX_FLAG_LARGE_PAGES) && !rx_dataset_nolp) { rx_vm = randomx_create_vm(flags | RANDOMX_FLAG_LARGE_PAGES, rx_sp->rs_cache, rx_dataset); if(rx_vm == NULL) { //large pages failed mdebug(RX_LOGCAT, "Couldn't use largePages for RandomX VM"); + rx_dataset_nolp = 1; } } if (rx_vm == NULL) @@ -370,5 +372,6 @@ void rx_stop_mining(void) { randomx_release_dataset(rd); } rx_dataset_nomem = 0; + rx_dataset_nolp = 0; CTHR_MUTEX_UNLOCK(rx_dataset_mutex); } |