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 ...@@ -33,25 +33,21 @@ class autoAdjust
{ {
public: public:
size_t hashMemSize; bool printConfig()
size_t halfHashMemSize;
autoAdjust()
{ {
size_t hashMemSizeKB;
size_t halfHashMemSizeKB;
if(::jconf::inst()->IsCurrencyMonero()) if(::jconf::inst()->IsCurrencyMonero())
{ {
hashMemSize = MONERO_MEMORY; hashMemSizeKB = MONERO_MEMORY / 1024u;
halfHashMemSize = hashMemSize / 2u; halfHashMemSizeKB = hashMemSizeKB / 2u;
} }
else else
{ {
hashMemSize = AEON_MEMORY; hashMemSizeKB = AEON_MEMORY / 1024u;
halfHashMemSize = hashMemSize / 2u; halfHashMemSizeKB = hashMemSizeKB / 2u;
} }
}
bool printConfig()
{
configEditor configTpl{}; configEditor configTpl{};
...@@ -63,9 +59,10 @@ public: ...@@ -63,9 +59,10 @@ public:
std::string conf; 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); 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"); conf += std::string(" { \"low_power_mode\" : false, \"no_prefetch\" : true, \"affine_to_cpu\" : false },\n");
...@@ -88,7 +85,7 @@ public: ...@@ -88,7 +85,7 @@ public:
if(L3KB_size <= 0) if(L3KB_size <= 0)
break; 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(" { \"low_power_mode\" : ");
conf += std::string(double_mode ? "true" : "false"); conf += std::string(double_mode ? "true" : "false");
...@@ -107,9 +104,9 @@ public: ...@@ -107,9 +104,9 @@ public:
aff_id++; aff_id++;
if(double_mode) if(double_mode)
L3KB_size -= hashMemSize * 2u; L3KB_size -= hashMemSizeKB * 2u;
else else
L3KB_size -= hashMemSize; L3KB_size -= hashMemSizeKB;
} }
} }
...@@ -142,7 +139,7 @@ private: ...@@ -142,7 +139,7 @@ private:
} }
L3KB_size = ((get_masked(cpu_info[1], 31, 22) + 1) * (get_masked(cpu_info[1], 21, 12) + 1) * 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; 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