diff --git a/src/Mem.cpp b/src/Mem.cpp index 1865ba36..fdc3d727 100644 --- a/src/Mem.cpp +++ b/src/Mem.cpp @@ -62,7 +62,7 @@ ScratchPadMem Mem::create(ScratchPad** scratchPads, int threadId) scratchPadMem.realSize = scratchPadSize * getThreadHashFactor(threadId); scratchPadMem.size = scratchPadSize * getThreadHashFactor(threadId); scratchPadMem.size += scratchPadMem.size % MEMORY; - scratchPadMem.pages = scratchPadMem.size / MEMORY; + scratchPadMem.pages = std::max(scratchPadMem.size / MEMORY, static_cast(1)); allocate(scratchPadMem, m_useHugePages); diff --git a/src/Options.cpp b/src/Options.cpp index d4a11fe4..76fc679c 100644 --- a/src/Options.cpp +++ b/src/Options.cpp @@ -1098,7 +1098,7 @@ bool Options::setAlgo(const char *algo) } - if (i == ARRAY_SIZE(algo_names) - 1 && (!strcmp(algo, "cn-ultra-lite") || !strcmp(algo, "cryptonight-ultra-lite") || !strcmp(algo, "cryptonight-ultralight"))) { + if (i == ARRAY_SIZE(algo_names) - 1 && (!strcmp(algo, "cn-ultra-lite") || !strcmp(algo, "cryptonight-ultra-lite") || !strcmp(algo, "cryptonight-ultralight") || !strcmp(algo, "cryptonight-turtle") || !strcmp(algo, "cn-turtle") || !strcmp(algo, "cryptonight-pico") || !strcmp(algo, "cn-pico"))) { m_algo = ALGO_CRYPTONIGHT_ULTRALITE; break; } diff --git a/src/crypto/CryptoNight.h b/src/crypto/CryptoNight.h index 9d8f2cca..10415ca9 100644 --- a/src/crypto/CryptoNight.h +++ b/src/crypto/CryptoNight.h @@ -31,6 +31,8 @@ #include "AsmOptimization.h" #include "Options.h" +#define ONE_MB 1048576 + #define MEMORY 2097152 /* 2 MiB */ #define MEMORY_LITE 1048576 /* 1 MiB */ #define MEMORY_SUPER_LITE 524288 /* 512 KiB */ diff --git a/src/workers/MultiWorker.cpp b/src/workers/MultiWorker.cpp index a2ffc84a..5646b54b 100644 --- a/src/workers/MultiWorker.cpp +++ b/src/workers/MultiWorker.cpp @@ -102,13 +102,13 @@ MultiWorker::~MultiWorker() void MultiWorker::start() { - const size_t memory = scratchPadMem.realSize / 1048576; + size_t memory = scratchPadMem.realSize > ONE_MB ? scratchPadMem.realSize / ONE_MB : scratchPadMem.realSize / 1024; if (Options::i()->colors()) { - LOG_INFO(WHITE_BOLD("Starting thread ") GREEN_BOLD("%zu/%zu") " affined to core: " GREEN_BOLD("#%d") " -> huge pages:" GREEN_BOLD(" %s%zu/%zu") " scratchpad: " CYAN_BOLD("%zu.0 MB"), + LOG_INFO(WHITE_BOLD("Starting thread ") GREEN_BOLD("%zu/%zu") " affined to core: " GREEN_BOLD("#%d") " -> huge pages:" GREEN_BOLD(" %s%zu/%zu") " scratchpad: " CYAN_BOLD("%zu.0 %s"), m_id+1, Options::i()->threads(), m_affinedCpu, (scratchPadMem.hugePages == scratchPadMem.pages ? "\x1B[1;32m" : (scratchPadMem.hugePages == 0 ? "\x1B[1;31m" : "\x1B[1;33m")), - scratchPadMem.hugePages, scratchPadMem.pages, memory); + scratchPadMem.hugePages, scratchPadMem.pages, memory, scratchPadMem.realSize > ONE_MB ? "MB" : "KB"); } else { LOG_INFO("Starting thread %zu/%zu affined to core: #%d -> huge pages: %zu/%zu scratchpad: %zu.0 MB",