From 054ee94f9efb8d0fda52e368c3d357dea47575da Mon Sep 17 00:00:00 2001
From: psychocrypt <psychocryptHPC@gmail.com>
Date: Tue, 9 Jan 2018 21:01:30 +0100
Subject: [PATCH] fix usage of bytes instead of KB

bug was introduced with #67

- increase the L3 sanity check to 2GiB
- fix usage of byte instead of KB
---
 xmrstak/backend/cpu/autoAdjust.hpp | 31 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/xmrstak/backend/cpu/autoAdjust.hpp b/xmrstak/backend/cpu/autoAdjust.hpp
index b5575e9..db805ec 100644
--- a/xmrstak/backend/cpu/autoAdjust.hpp
+++ b/xmrstak/backend/cpu/autoAdjust.hpp
@@ -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;
 			}
 		}
 
-- 
GitLab