Skip to content
Snippets Groups Projects
Unverified Commit 3a31266c authored by fireice-uk's avatar fireice-uk Committed by GitHub
Browse files

Merge pull request #846 from psychocrypt/fix-cpuMemAutodetection

fix autosuggestion CPU
parents 91a2dccb 054ee94f
No related branches found
No related tags found
No related merge requests found
......@@ -33,25 +33,21 @@ class autoAdjust
{
public:
size_t hashMemSize;
size_t halfHashMemSize;
autoAdjust()
bool printConfig()
{
size_t hashMemSizeKB;
size_t halfHashMemSizeKB;
if(::jconf::inst()->IsCurrencyMonero())
{
hashMemSize = MONERO_MEMORY;
halfHashMemSize = hashMemSize / 2u;
hashMemSizeKB = MONERO_MEMORY / 1024u;
halfHashMemSizeKB = hashMemSizeKB / 2u;
}
else
{
hashMemSize = AEON_MEMORY;
halfHashMemSize = hashMemSize / 2u;
hashMemSizeKB = AEON_MEMORY / 1024u;
halfHashMemSizeKB = hashMemSizeKB / 2u;
}
}
bool printConfig()
{
configEditor configTpl{};
......@@ -63,9 +59,10 @@ public:
std::string conf;
if(!detectL3Size() || L3KB_size < halfHashMemSize || L3KB_size > (halfHashMemSize * 100u))
if(!detectL3Size() || L3KB_size < halfHashMemSizeKB || L3KB_size > (halfHashMemSizeKB * 2048u))
{
if(L3KB_size < halfHashMemSize || L3KB_size > (halfHashMemSize * 100))
if(L3KB_size < halfHashMemSizeKB || L3KB_size > (halfHashMemSizeKB * 2048))
printer::inst()->print_msg(L0, "Autoconf failed: L3 size sanity check failed - %u KB.", L3KB_size);
conf += std::string(" { \"low_power_mode\" : false, \"no_prefetch\" : true, \"affine_to_cpu\" : false },\n");
......@@ -88,7 +85,7 @@ public:
if(L3KB_size <= 0)
break;
double_mode = L3KB_size / hashMemSize > (int32_t)(corecnt-i);
double_mode = L3KB_size / hashMemSizeKB > (int32_t)(corecnt-i);
conf += std::string(" { \"low_power_mode\" : ");
conf += std::string(double_mode ? "true" : "false");
......@@ -107,9 +104,9 @@ public:
aff_id++;
if(double_mode)
L3KB_size -= hashMemSize * 2u;
L3KB_size -= hashMemSizeKB * 2u;
else
L3KB_size -= hashMemSize;
L3KB_size -= hashMemSizeKB;
}
}
......@@ -142,7 +139,7 @@ private:
}
L3KB_size = ((get_masked(cpu_info[1], 31, 22) + 1) * (get_masked(cpu_info[1], 21, 12) + 1) *
(get_masked(cpu_info[1], 11, 0) + 1) * (cpu_info[2] + 1)) / halfHashMemSize;
(get_masked(cpu_info[1], 11, 0) + 1) * (cpu_info[2] + 1)) / 1024;
return true;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment