From 70cddc06ba9b690f8ef3c27f378504cd7705fcdf Mon Sep 17 00:00:00 2001 From: SChernykh Date: Thu, 4 Mar 2021 10:02:35 +0100 Subject: [PATCH] Fix crash in cn-heavy on Zen3 with manual thread count --- src/backend/cpu/CpuWorker.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/cpu/CpuWorker.cpp b/src/backend/cpu/CpuWorker.cpp index aed79190..6263f89a 100644 --- a/src/backend/cpu/CpuWorker.cpp +++ b/src/backend/cpu/CpuWorker.cpp @@ -86,7 +86,9 @@ xmrig::CpuWorker::CpuWorker(size_t id, const CpuLaunchData &data) : if ((N == 1) && (m_av == CnHash::AV_SINGLE) && (m_algorithm.family() == Algorithm::CN_HEAVY) && (m_assembly != Assembly::NONE) && (Cpu::info()->arch() == ICpuInfo::ARCH_ZEN3)) { std::lock_guard lock(cn_heavyZen3MemoryMutex); if (!cn_heavyZen3Memory) { - cn_heavyZen3Memory = new VirtualMemory(m_algorithm.l3() * m_threads, data.hugePages, false, false, node()); + // Round up number of threads to the multiple of 8 + const size_t N = ((m_threads + 7) / 8) * 8; + cn_heavyZen3Memory = new VirtualMemory(m_algorithm.l3() * N, data.hugePages, false, false, node()); } m_memory = cn_heavyZen3Memory; }