mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-29 16:04:33 +00:00
Revert "Only update the thread getwork queue count if it actually results in a getwork request from the server."
This reverts commit 2e607d44f2baa8e8f1156e7bd074128e1e0e8eeb. The count looks far too difficult to add up with this change since many are queued generically.
This commit is contained in:
parent
2e607d44f2
commit
0fe22d8d94
28
main.c
28
main.c
@ -1096,8 +1096,6 @@ static bool get_upstream_work(struct work *work, bool lagging)
|
||||
work->pool = pool;
|
||||
total_getworks++;
|
||||
pool->getwork_requested++;
|
||||
if (work->thr)
|
||||
work->thr->cgpu->getworks++;
|
||||
|
||||
json_decref(val);
|
||||
out:
|
||||
@ -1222,11 +1220,6 @@ static void *get_work_thread(void *userdata)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (wc->thr)
|
||||
ret_work->thr = wc->thr;
|
||||
else
|
||||
ret_work->thr = NULL;
|
||||
|
||||
/* obtain new work from bitcoin via JSON-RPC */
|
||||
while (!get_upstream_work(ret_work, wc->lagging)) {
|
||||
if (unlikely((opt_retries >= 0) && (++failures > opt_retries))) {
|
||||
@ -2275,7 +2268,7 @@ static void pool_resus(struct pool *pool)
|
||||
switch_pools(NULL);
|
||||
}
|
||||
|
||||
static bool queue_request(struct thr_info *thr)
|
||||
static bool queue_request(void)
|
||||
{
|
||||
int maxq = opt_queue + mining_threads;
|
||||
struct workio_cmd *wc;
|
||||
@ -2297,10 +2290,8 @@ static bool queue_request(struct thr_info *thr)
|
||||
}
|
||||
|
||||
wc->cmd = WC_GET_WORK;
|
||||
if (thr)
|
||||
wc->thr = thr;
|
||||
else
|
||||
wc->thr = NULL;
|
||||
/* The get work does not belong to any thread */
|
||||
wc->thr = NULL;
|
||||
|
||||
/* If we've queued more than 2/3 of the maximum and still have no
|
||||
* staged work, consider the system lagging and allow work to be
|
||||
@ -2372,7 +2363,7 @@ static void flush_requests(void)
|
||||
|
||||
for (i = 0; i < stale; i++) {
|
||||
/* Queue a whole batch of new requests */
|
||||
if (unlikely(!queue_request(NULL))) {
|
||||
if (unlikely(!queue_request())) {
|
||||
applog(LOG_ERR, "Failed to queue requests in flush_requests");
|
||||
kill_work();
|
||||
break;
|
||||
@ -2454,7 +2445,7 @@ static bool get_work(struct work *work, bool requested, struct thr_info *thr,
|
||||
thread_reportout(thr);
|
||||
retry:
|
||||
pool = current_pool();
|
||||
if (unlikely(!requested && !queue_request(NULL))) {
|
||||
if (unlikely(!requested && !queue_request())) {
|
||||
applog(LOG_WARNING, "Failed to queue_request in get_work");
|
||||
goto out;
|
||||
}
|
||||
@ -2682,6 +2673,7 @@ static void *miner_thread(void *userdata)
|
||||
"mining thread %d", thr_id);
|
||||
goto out;
|
||||
}
|
||||
mythr->cgpu->getworks++;
|
||||
needs_work = requested = false;
|
||||
total_hashes = 0;
|
||||
max_nonce = work.blk.nonce + hashes_done;
|
||||
@ -2802,7 +2794,7 @@ static void *miner_thread(void *userdata)
|
||||
timeval_subtract(&diff, &tv_end, &tv_workstart);
|
||||
if (!requested && (diff.tv_sec >= request_interval)) {
|
||||
thread_reportout(mythr);
|
||||
if (unlikely(!queue_request(mythr))) {
|
||||
if (unlikely(!queue_request())) {
|
||||
applog(LOG_ERR, "Failed to queue_request in miner_thread %d", thr_id);
|
||||
goto out;
|
||||
}
|
||||
@ -3005,6 +2997,7 @@ static void *gpuminer_thread(void *userdata)
|
||||
"gpu mining thread %d", thr_id);
|
||||
goto out;
|
||||
}
|
||||
mythr->cgpu->getworks++;
|
||||
requested = false;
|
||||
precalc_hash(&work->blk, (uint32_t *)(work->midstate), (uint32_t *)(work->data + 64));
|
||||
work->blk.nonce = 0;
|
||||
@ -3055,6 +3048,7 @@ static void *gpuminer_thread(void *userdata)
|
||||
"gpu mining thread %d", thr_id);
|
||||
goto out;
|
||||
}
|
||||
mythr->cgpu->getworks++;
|
||||
requested = false;
|
||||
|
||||
precalc_hash(&work->blk, (uint32_t *)(work->midstate), (uint32_t *)(work->data + 64));
|
||||
@ -3110,7 +3104,7 @@ static void *gpuminer_thread(void *userdata)
|
||||
#endif
|
||||
if (diff.tv_sec > request_interval || work->blk.nonce > request_nonce) {
|
||||
thread_reportout(mythr);
|
||||
if (unlikely(!queue_request(mythr))) {
|
||||
if (unlikely(!queue_request())) {
|
||||
applog(LOG_ERR, "Failed to queue_request in gpuminer_thread %d", thr_id);
|
||||
goto out;
|
||||
}
|
||||
@ -3444,7 +3438,7 @@ static void *watchdog_thread(void *userdata)
|
||||
|
||||
sleep(interval);
|
||||
if (requests_queued() < opt_queue)
|
||||
queue_request(NULL);
|
||||
queue_request();
|
||||
|
||||
hashmeter(-1, &zero_tv, 0);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user