mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-23 13:04:29 +00:00
Decrease avalon frequency in auto mode if we are unable to maintain the temperature in the optimal range.
This commit is contained in:
parent
da680f5162
commit
ce214e1270
@ -885,7 +885,11 @@ static void *avalon_send_tasks(void *userdata)
|
|||||||
|
|
||||||
if (opt_avalon_auto && info->auto_queued >= AVALON_AUTO_CYCLE) {
|
if (opt_avalon_auto && info->auto_queued >= AVALON_AUTO_CYCLE) {
|
||||||
mutex_lock(&info->lock);
|
mutex_lock(&info->lock);
|
||||||
if (info->auto_nonces >= (AVALON_AUTO_CYCLE * 19 / 20) &&
|
if (!info->optimal) {
|
||||||
|
applog(LOG_WARNING, "AVA%i: Above optimal temperature, throttling",
|
||||||
|
avalon->device_id);
|
||||||
|
avalon_dec_freq(info);
|
||||||
|
} else if (info->auto_nonces >= (AVALON_AUTO_CYCLE * 19 / 20) &&
|
||||||
info->auto_nonces <= (AVALON_AUTO_CYCLE * 21 / 20)) {
|
info->auto_nonces <= (AVALON_AUTO_CYCLE * 21 / 20)) {
|
||||||
int total = info->auto_nonces + info->auto_hw;
|
int total = info->auto_nonces + info->auto_hw;
|
||||||
|
|
||||||
@ -1083,6 +1087,10 @@ static inline void adjust_fan(struct avalon_info *info)
|
|||||||
temp_drop(info, temp_new);
|
temp_drop(info, temp_new);
|
||||||
}
|
}
|
||||||
info->temp_old = temp_new;
|
info->temp_old = temp_new;
|
||||||
|
if (info->temp_old <= opt_avalon_temp)
|
||||||
|
info->optimal = true;
|
||||||
|
else
|
||||||
|
info->optimal = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void avalon_update_temps(struct cgpu_info *avalon, struct avalon_info *info,
|
static void avalon_update_temps(struct cgpu_info *avalon, struct avalon_info *info,
|
||||||
|
@ -134,6 +134,7 @@ struct avalon_info {
|
|||||||
bool idle;
|
bool idle;
|
||||||
bool reset;
|
bool reset;
|
||||||
bool overheat;
|
bool overheat;
|
||||||
|
bool optimal;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define AVALON_WRITE_SIZE (sizeof(struct avalon_task))
|
#define AVALON_WRITE_SIZE (sizeof(struct avalon_task))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user