Skip to content

Commit ecd88b9

Browse files
author
Giorgio Medico
committed
priority change
1 parent c537356 commit ecd88b9

5 files changed

Lines changed: 20 additions & 18 deletions

File tree

0 Bytes
Binary file not shown.
-16 Bytes
Binary file not shown.

src/NerdMinerV2.ino.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -161,35 +161,35 @@ void setup()
161161
// char *name = (char*) malloc(32);
162162
// sprintf(name, "(%d)", i);
163163

164-
// Start mining tasks
164+
// Start mining tasks - HW pinned to Core 0, SW unpinned to fill gaps
165165
//BaseType_t res = xTaskCreate(runWorker, name, 35000, (void*)name, 1, NULL);
166166
TaskHandle_t minerTask1, minerTask2 = NULL;
167167
#ifdef HARDWARE_SHA265
168168
#if defined(CONFIG_IDF_TARGET_ESP32)
169-
xTaskCreate(minerWorkerHw, "MinerHw-0", 3584, (void*)0, 3, &minerTask1); // Reduced for ESP32 classic
170-
//xTaskCreate(minerWorkerSw, "MinerSw-0", 5000, (void*)0, 1, &minerTask1); // Reduced for ESP32 classic
169+
xTaskCreatePinnedToCore(minerWorkerHw, "MinerHw-0", 3584, (void*)0, 3, &minerTask1, 0); // HW miner pinned to Core 0, Priority 3
170+
//xTaskCreate(minerWorkerSw, "MinerSw-0", 5000, (void*)0, 2, &minerTask1); // Reduced for ESP32 classic
171171
#else
172-
xTaskCreate(minerWorkerHw, "MinerHw-0", 4096, (void*)0, 3, &minerTask1);
172+
xTaskCreatePinnedToCore(minerWorkerHw, "MinerHw-0", 4096, (void*)0, 3, &minerTask1, 0); // HW miner pinned to Core 0, Priority 3
173173
#endif
174174
#else
175175
#if defined(CONFIG_IDF_TARGET_ESP32)
176-
xTaskCreate(minerWorkerSw, "MinerSw-0", 5000, (void*)0, 1, &minerTask1); // Reduced for ESP32 classic
176+
xTaskCreate(minerWorkerSw, "MinerSw-0", 5000, (void*)0, 2, &minerTask1); // SW miner unpinned, Priority 2
177177
#else
178-
xTaskCreate(minerWorkerSw, "MinerSw-0", 6000, (void*)0, 1, &minerTask1);
178+
xTaskCreate(minerWorkerSw, "MinerSw-0", 6000, (void*)0, 2, &minerTask1); // SW miner unpinned, Priority 2
179179
#endif
180180
#endif
181181
esp_task_wdt_add(minerTask1);
182182

183183
#if (SOC_CPU_CORES_NUM >= 2)
184184
#if defined(CONFIG_IDF_TARGET_ESP32)
185-
xTaskCreate(minerWorkerSw, "MinerSw-1", 5000, (void*)1, 1, &minerTask2); // Reduced for ESP32 classic
185+
xTaskCreate(minerWorkerSw, "MinerSw-1", 5000, (void*)1, 2, &minerTask2); // SW miner unpinned, Priority 2
186186
#else
187-
xTaskCreate(minerWorkerSw, "MinerSw-1", 6000, (void*)1, 1, &minerTask2);
187+
xTaskCreate(minerWorkerSw, "MinerSw-1", 6000, (void*)1, 2, &minerTask2); // SW miner unpinned, Priority 2
188188
#endif
189189
esp_task_wdt_add(minerTask2);
190190
#endif
191191

192-
vTaskPrioritySet(NULL, 4);
192+
vTaskPrioritySet(NULL, 2); // Main loop priority reduced to 2 (was 4)
193193

194194
/******** MONITOR SETUP *****/
195195
setup_monitor();

src/mining.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@
2525
//10 Jobs per second
2626
// #define NONCE_PER_JOB_SW 4096
2727
// #define NONCE_PER_JOB_HW 16*1024
28-
#define NONCE_PER_JOB_SW 8192
29-
#define NONCE_PER_JOB_HW 32*1024
28+
// #define NONCE_PER_JOB_SW 8192 // Previous value
29+
// #define NONCE_PER_JOB_HW 32*1024 // Previous value
30+
#define NONCE_PER_JOB_SW 16384 // Doubled for better throughput
31+
#define NONCE_PER_JOB_HW 64*1024 // Doubled for better throughput
3032

3133
//#define I2C_SLAVE
3234

@@ -597,7 +599,7 @@ void runStratumWorker(void *name) {
597599
#ifdef I2C_SLAVE
598600
if (i2c_slave_vector.empty() || job_pool == 0xFFFFFFFF)
599601
{
600-
vTaskDelay(50 / portTICK_PERIOD_MS); //Small delay
602+
vTaskDelay(20 / portTICK_PERIOD_MS); //Reduced delay for better job distribution
601603
} else
602604
{
603605
uint32_t time_start = millis();
@@ -632,7 +634,7 @@ void runStratumWorker(void *name) {
632634
vTaskDelay(40 / portTICK_PERIOD_MS);
633635
}
634636
#else
635-
vTaskDelay(50 / portTICK_PERIOD_MS); //Small delay
637+
vTaskDelay(20 / portTICK_PERIOD_MS); //Reduced delay for better job distribution
636638
#endif
637639

638640

@@ -1338,7 +1340,7 @@ void minerWorkerHw(void * task_id)
13381340
#endif //HARDWARE_SHA265
13391341

13401342

1341-
#define DELAY 1000 // Reduced from 500ms to 1000ms (2Hz -> 1Hz) to save CPU cycles
1343+
#define DELAY 2000 // Reduced from 1000ms to 2000ms (1Hz -> 0.5Hz) to save CPU cycles for mining
13421344
#define REDRAW_EVERY 10
13431345

13441346
void restoreStat() {

src/mining.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
// Network safety
1414
#define MAX_POOL_LINE_SIZE 4096
1515

16-
// Hardware SHA timeout
17-
#define SHA_HARDWARE_TIMEOUT_CYCLES 100000
16+
// Hardware SHA timeout (reduced for faster recovery from stuck hardware)
17+
#define SHA_HARDWARE_TIMEOUT_CYCLES 50000
1818

19-
// Job queue sizes
20-
#define JOB_QUEUE_SIZE 4
19+
// Job queue sizes (increased for better miner throughput)
20+
#define JOB_QUEUE_SIZE 8
2121
#define RESULT_LIST_SIZE 16
2222
#define SUBMISSION_MAP_MAX 16
2323

0 commit comments

Comments
 (0)