RandomX fixes
- Fixed possible infinite loop when updating RandomX dataset - Fixed used memory display - Allocate dataset and VM for RandomX only when it's actually used
This commit is contained in:
parent
50ace41766
commit
e8ac01d289
4 changed files with 34 additions and 10 deletions
|
@ -36,14 +36,9 @@
|
|||
template<size_t N>
|
||||
MultiWorker<N>::MultiWorker(ThreadHandle *handle)
|
||||
: Worker(handle)
|
||||
, m_rx_vm(nullptr)
|
||||
{
|
||||
m_memory = Mem::create(m_ctx, m_thread->algorithm(), N);
|
||||
|
||||
const int flags = RANDOMX_FLAG_LARGE_PAGES | RANDOMX_FLAG_HARD_AES | RANDOMX_FLAG_FULL_MEM | RANDOMX_FLAG_JIT;
|
||||
m_rx_vm = randomx_create_vm(static_cast<randomx_flags>(flags), nullptr, Workers::getDataset());
|
||||
if (!m_rx_vm) {
|
||||
m_rx_vm = randomx_create_vm(static_cast<randomx_flags>(flags - RANDOMX_FLAG_LARGE_PAGES), nullptr, Workers::getDataset());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -51,7 +46,22 @@ template<size_t N>
|
|||
MultiWorker<N>::~MultiWorker()
|
||||
{
|
||||
Mem::release(m_ctx, N, m_memory);
|
||||
randomx_destroy_vm(m_rx_vm);
|
||||
if (m_rx_vm) {
|
||||
randomx_destroy_vm(m_rx_vm);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<size_t N>
|
||||
void MultiWorker<N>::allocateRandomX_VM()
|
||||
{
|
||||
if (!m_rx_vm) {
|
||||
const int flags = RANDOMX_FLAG_LARGE_PAGES | RANDOMX_FLAG_HARD_AES | RANDOMX_FLAG_FULL_MEM | RANDOMX_FLAG_JIT;
|
||||
m_rx_vm = randomx_create_vm(static_cast<randomx_flags>(flags), nullptr, Workers::getDataset());
|
||||
if (!m_rx_vm) {
|
||||
m_rx_vm = randomx_create_vm(static_cast<randomx_flags>(flags - RANDOMX_FLAG_LARGE_PAGES), nullptr, Workers::getDataset());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -135,6 +145,7 @@ void MultiWorker<N>::start()
|
|||
|
||||
const xmrig::Variant v = m_state.job.algorithm().variant();
|
||||
if (v == xmrig::VARIANT_RX_WOW) {
|
||||
allocateRandomX_VM();
|
||||
Workers::updateDataset(m_state.job.seed_hash(), m_totalWays);
|
||||
randomx_calculate_hash(m_rx_vm, m_state.blob, m_state.job.size(), m_hash);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue