Implemented RxNUMAStorage.

This commit is contained in:
XMRig 2019-10-05 08:24:28 +07:00
parent ad6dc876b3
commit 05928ccc25
9 changed files with 306 additions and 61 deletions

View file

@ -48,6 +48,12 @@ xmrig::RxDataset::RxDataset(bool hugePages, bool cache)
}
xmrig::RxDataset::RxDataset(RxCache *cache) :
m_cache(cache)
{
}
xmrig::RxDataset::~RxDataset()
{
if (m_dataset) {
@ -94,6 +100,22 @@ bool xmrig::RxDataset::init(const Buffer &seed, uint32_t numThreads)
}
size_t xmrig::RxDataset::size(bool cache) const
{
size_t size = 0;
if (m_dataset) {
size += maxSize();
}
if (cache && m_cache) {
size += RxCache::maxSize();
}
return size;
}
std::pair<uint32_t, uint32_t> xmrig::RxDataset::hugePages(bool cache) const
{
constexpr size_t twoMiB = 2u * 1024u * 1024u;
@ -123,6 +145,16 @@ void *xmrig::RxDataset::raw() const
}
void xmrig::RxDataset::setRaw(const void *raw)
{
if (!m_dataset) {
return;
}
memcpy(randomx_get_dataset_memory(m_dataset), raw, maxSize());
}
void xmrig::RxDataset::allocate(bool hugePages)
{
if (hugePages) {