Browse Source

Revert "Loop in bitforce scanhash till end nonce reaches full nonce range."

This reverts commit e10aa2092b.
nfactor-troky
Con Kolivas 13 years ago
parent
commit
870ba0c70e
  1. 78
      driver-bitforce.c

78
driver-bitforce.c

@ -420,52 +420,50 @@ static uint64_t bitforce_scanhash(struct thr_info *thr, struct work *work, uint6 @@ -420,52 +420,50 @@ static uint64_t bitforce_scanhash(struct thr_info *thr, struct work *work, uint6
struct cgpu_info *bitforce = thr->cgpu;
unsigned int sleep_time;
struct timeval tdiff;
uint64_t ret = 1;
uint64_t ret;
while (bitforce->end_nonce < 0xffffffff) {
bitforce->wait_ms = 0;
ret = bitforce_send_work(thr, work);
bitforce->wait_ms = 0;
ret = bitforce_send_work(thr, work);
if (!bitforce->nonce_range) {
/* Initially wait 2/3 of the average cycle time so we can request more
work before full scan is up */
sleep_time = (2 * bitforce->sleep_ms) / 3;
ms_to_timeval(sleep_time, &tdiff);
if (!restart_wait(&tdiff))
return 1;
if (!bitforce->nonce_range) {
/* Initially wait 2/3 of the average cycle time so we can request more
work before full scan is up */
sleep_time = (2 * bitforce->sleep_ms) / 3;
ms_to_timeval(sleep_time, &tdiff);
if (!restart_wait(&tdiff))
return 1;
bitforce->wait_ms += sleep_time;
queue_request(thr, false);
bitforce->wait_ms += sleep_time;
queue_request(thr, false);
/* Now wait athe final 1/3rd; no bitforce should be finished by now */
sleep_time = bitforce->sleep_ms - sleep_time;
ms_to_timeval(sleep_time, &tdiff);
if (!restart_wait(&tdiff))
return 1;
bitforce->wait_ms += sleep_time;
} else {
sleep_time = bitforce->sleep_ms;
ms_to_timeval(sleep_time, &tdiff);
if (!restart_wait(&tdiff))
return 1;
/* queue extra request once more than 2/3 is done */
if (work->blk.nonce > 0xffffffff / 3 * 2)
queue_request(thr, false);
}
if (ret)
ret = bitforce_get_result(thr, work);
/* Now wait athe final 1/3rd; no bitforce should be finished by now */
sleep_time = bitforce->sleep_ms - sleep_time;
ms_to_timeval(sleep_time, &tdiff);
if (!restart_wait(&tdiff))
return 1;
if (!ret) {
applog(LOG_ERR, "BFL%i: Comms error", bitforce->device_id);
bitforce->device_last_not_well = time(NULL);
bitforce->device_not_well_reason = REASON_DEV_COMMS_ERROR;
bitforce->dev_comms_error_count++;
/* empty read buffer */
biforce_clear_buffer(bitforce);
bitforce->wait_ms += sleep_time;
} else {
sleep_time = bitforce->sleep_ms;
ms_to_timeval(sleep_time, &tdiff);
if (!restart_wait(&tdiff))
return 1;
}
/* queue extra request once more than 2/3 is done */
if (work->blk.nonce > 0xffffffff / 3 * 2)
queue_request(thr, false);
}
if (ret)
ret = bitforce_get_result(thr, work);
if (!ret) {
ret = 1;
applog(LOG_ERR, "BFL%i: Comms error", bitforce->device_id);
bitforce->device_last_not_well = time(NULL);
bitforce->device_not_well_reason = REASON_DEV_COMMS_ERROR;
bitforce->dev_comms_error_count++;
/* empty read buffer */
biforce_clear_buffer(bitforce);
}
return ret;
}

Loading…
Cancel
Save