mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-24 13:34:22 +00:00
core: remove benchmark mode.
It cannot be used as-is. It should probably be implemented as a standalone "fake pool" application anyway, to properly gauge the effect of queue/scantime/expiry and network latency. If someone really needs this, they can revert this commit.
This commit is contained in:
parent
474c783316
commit
a7d2356cef
@ -33,7 +33,7 @@ endif
|
||||
|
||||
sgminer_SOURCES := miner.c miner.h
|
||||
sgminer_SOURCES += api.c
|
||||
sgminer_SOURCES += elist.h compat.h bench_block.h
|
||||
sgminer_SOURCES += elist.h compat.h
|
||||
sgminer_SOURCES += util.c util.h uthash.h
|
||||
sgminer_SOURCES += sha2.c sha2.h
|
||||
sgminer_SOURCES += logging.c logging.h
|
||||
|
@ -431,7 +431,7 @@ displayed for Accepted or Rejected work done. An example would be:
|
||||
The first 2 hex codes are the previous block hash, the rest are reported in
|
||||
seconds unless stated otherwise:
|
||||
The previous hash is followed by the getwork mode used M:X where X is one of
|
||||
P:Pool, T:Test Pool, L:LP or B:Benchmark,
|
||||
P:Pool, T:Test Pool or L:LP,
|
||||
then D:d.ddd is the difficulty required to get a share from the work,
|
||||
then G:hh:mm:ss:n.nnn, which is when the getwork or LP was sent to the pool and
|
||||
the n.nnn is how long it took to reply,
|
||||
|
@ -1,39 +0,0 @@
|
||||
#if !defined(__BENCH_BLOCK_H__)
|
||||
#define __BENCH_BLOCK_H__ 1
|
||||
|
||||
// Random work pulled from a pool
|
||||
#define SGMINER_BENCHMARK_BLOCK \
|
||||
0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0xD8, 0x07, 0x17, 0xC9, 0x13, 0x6F, 0xDC, 0xBE, 0xDE, 0xB7, \
|
||||
0xB2, 0x14, 0xEF, 0xD1, 0x72, 0x7F, 0xA3, 0x72, 0xB2, 0x5D, 0x88, 0xF0, 0x00, 0x00, 0x05, 0xAA, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x92, 0x8B, 0x4C, 0x77, 0xF5, 0xB2, 0xE6, 0x56, 0x96, 0x27, 0xE0, 0x66, \
|
||||
0x3C, 0x5B, 0xDD, 0xDC, 0x88, 0x6A, 0x7D, 0x7C, 0x7B, 0x8C, 0xE4, 0x92, 0x38, 0x92, 0x58, 0x2E, \
|
||||
0x18, 0x4D, 0x95, 0x9E, 0x4E, 0x44, 0xF1, 0x5F, 0x1A, 0x08, 0xE1, 0xE5, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, \
|
||||
0x86, 0x7E, 0x3A, 0xAF, 0x37, 0x83, 0xAF, 0xA0, 0xB5, 0x33, 0x2C, 0x28, 0xED, 0xA9, 0x89, 0x3E, \
|
||||
0x0A, 0xB6, 0x46, 0x81, 0xC2, 0x71, 0x4F, 0x34, 0x5A, 0x74, 0x89, 0x0E, 0x2B, 0x04, 0xB3, 0x16, \
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF6, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x55, 0xF1, 0x44, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x79, 0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
|
||||
#endif // !defined(__BENCH_BLOCK_H__)
|
82
miner.c
82
miner.c
@ -53,7 +53,6 @@ char *curly = ":D";
|
||||
#include "findnonce.h"
|
||||
#include "adl.h"
|
||||
#include "driver-opencl.h"
|
||||
#include "bench_block.h"
|
||||
|
||||
#include "algorithm.h"
|
||||
#include "scrypt.h"
|
||||
@ -82,7 +81,6 @@ static char packagename[256];
|
||||
|
||||
bool opt_work_update;
|
||||
bool opt_protocol;
|
||||
static bool opt_benchmark;
|
||||
bool have_longpoll;
|
||||
bool want_per_device_stats;
|
||||
bool use_syslog;
|
||||
@ -1182,9 +1180,6 @@ static struct opt_table opt_config_table[] = {
|
||||
OPT_WITHOUT_ARG("--balance",
|
||||
set_balance, &pool_strategy,
|
||||
"Change multipool strategy from failover to even share balance"),
|
||||
OPT_WITHOUT_ARG("--benchmark",
|
||||
opt_set_bool, &opt_benchmark,
|
||||
"Run sgminer in benchmark mode - produces no shares"),
|
||||
#ifdef HAVE_CURSES
|
||||
OPT_WITHOUT_ARG("--compact",
|
||||
opt_set_bool, &opt_compact,
|
||||
@ -3098,24 +3093,6 @@ static void calc_diff(struct work *work, double known)
|
||||
}
|
||||
}
|
||||
|
||||
static void get_benchmark_work(struct work *work)
|
||||
{
|
||||
// Use a random work block pulled from a pool
|
||||
static uint8_t bench_block[] = { SGMINER_BENCHMARK_BLOCK };
|
||||
|
||||
size_t bench_size = sizeof(*work);
|
||||
size_t work_size = sizeof(bench_block);
|
||||
size_t min_size = (work_size < bench_size ? work_size : bench_size);
|
||||
memset(work, 0, sizeof(*work));
|
||||
memcpy(work, &bench_block, min_size);
|
||||
work->mandatory = true;
|
||||
work->pool = pools[0];
|
||||
cgtime(&work->tv_getwork);
|
||||
copy_time(&work->tv_getwork_reply, &work->tv_getwork);
|
||||
work->getwork_mode = GETWORK_MODE_BENCHMARK;
|
||||
calc_diff(work, 0);
|
||||
}
|
||||
|
||||
#ifdef HAVE_CURSES
|
||||
static void disable_curses_windows(void)
|
||||
{
|
||||
@ -3624,9 +3601,6 @@ static bool stale_work(struct work *work, bool share)
|
||||
struct pool *pool;
|
||||
int getwork_delay;
|
||||
|
||||
if (opt_benchmark)
|
||||
return false;
|
||||
|
||||
if (work->work_block != work_block) {
|
||||
applog(LOG_DEBUG, "Work stale due to block mismatch");
|
||||
return true;
|
||||
@ -7057,33 +7031,6 @@ void reinit_device(struct cgpu_info *cgpu)
|
||||
|
||||
static struct timeval rotate_tv;
|
||||
|
||||
/* We reap curls if they are unused for over a minute */
|
||||
static void reap_curl(struct pool *pool)
|
||||
{
|
||||
struct curl_ent *ent, *iter;
|
||||
struct timeval now;
|
||||
int reaped = 0;
|
||||
|
||||
cgtime(&now);
|
||||
|
||||
mutex_lock(&pool->pool_lock);
|
||||
list_for_each_entry_safe(ent, iter, &pool->curlring, node) {
|
||||
if (pool->curls < 2)
|
||||
break;
|
||||
if (now.tv_sec - ent->tv.tv_sec > 300) {
|
||||
reaped++;
|
||||
pool->curls--;
|
||||
list_del(&ent->node);
|
||||
curl_easy_cleanup(ent->curl);
|
||||
free(ent);
|
||||
}
|
||||
}
|
||||
mutex_unlock(&pool->pool_lock);
|
||||
|
||||
if (reaped)
|
||||
applog(LOG_DEBUG, "Reaped %d curl%s from %s", reaped, reaped > 1 ? "s" : "", pool->name);
|
||||
}
|
||||
|
||||
static void *watchpool_thread(void __maybe_unused *userdata)
|
||||
{
|
||||
int intervals = 0;
|
||||
@ -7105,9 +7052,6 @@ static void *watchpool_thread(void __maybe_unused *userdata)
|
||||
for (i = 0; i < total_pools; i++) {
|
||||
struct pool *pool = pools[i];
|
||||
|
||||
if (!opt_benchmark)
|
||||
reap_curl(pool);
|
||||
|
||||
/* Get a rolling utility per pool over 10 mins */
|
||||
if (intervals > 19) {
|
||||
int shares = pool->diff1 - pool->last_shares;
|
||||
@ -8041,21 +7985,6 @@ int main(int argc, char *argv[])
|
||||
if (!config_loaded)
|
||||
load_default_config();
|
||||
|
||||
if (opt_benchmark) {
|
||||
struct pool *pool;
|
||||
|
||||
// FIXME: executes always (leftover from SHA256d days)
|
||||
quit(1, "Cannot use benchmark mode with scrypt");
|
||||
pool = add_pool();
|
||||
pool->rpc_url = (char *)malloc(255);
|
||||
strcpy(pool->rpc_url, "Benchmark");
|
||||
pool->rpc_user = pool->rpc_url;
|
||||
pool->rpc_pass = pool->rpc_url;
|
||||
enable_pool(pool);
|
||||
pool->idle = false;
|
||||
successful_connect = true;
|
||||
}
|
||||
|
||||
#ifdef HAVE_CURSES
|
||||
if (opt_realquiet || opt_display_devs)
|
||||
use_curses = false;
|
||||
@ -8233,9 +8162,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if (opt_benchmark)
|
||||
goto begin_bench;
|
||||
|
||||
/* Set pool state */
|
||||
for (i = 0; i < total_pools; i++) {
|
||||
struct pool *pool = pools[i];
|
||||
@ -8297,7 +8223,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
} while (!pools_active);
|
||||
|
||||
begin_bench:
|
||||
total_mhashes_done = 0;
|
||||
for (i = 0; i < total_devices; i++) {
|
||||
struct cgpu_info *cgpu = devices[i];
|
||||
@ -8426,13 +8351,6 @@ retry:
|
||||
continue;
|
||||
}
|
||||
|
||||
if (opt_benchmark) {
|
||||
get_benchmark_work(work);
|
||||
applog(LOG_DEBUG, "Generated benchmark work");
|
||||
stage_work(work);
|
||||
continue;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBCURL
|
||||
struct curl_ent *ce;
|
||||
|
||||
|
1
miner.h
1
miner.h
@ -1301,7 +1301,6 @@ struct pool {
|
||||
#define GETWORK_MODE_TESTPOOL 'T'
|
||||
#define GETWORK_MODE_POOL 'P'
|
||||
#define GETWORK_MODE_LP 'L'
|
||||
#define GETWORK_MODE_BENCHMARK 'B'
|
||||
#define GETWORK_MODE_STRATUM 'S'
|
||||
#define GETWORK_MODE_GBT 'G'
|
||||
|
||||
|
@ -272,7 +272,6 @@ exit 0</Command>
|
||||
<ClInclude Include="..\adl.h" />
|
||||
<ClInclude Include="..\algorithm.h" />
|
||||
<ClInclude Include="..\arg-nonnull.h" />
|
||||
<ClInclude Include="..\bench_block.h" />
|
||||
<ClInclude Include="..\c++defs.h" />
|
||||
<ClInclude Include="..\compat.h" />
|
||||
<ClInclude Include="..\compat\jansson-2.5\src\hashtable.h" />
|
||||
|
@ -106,9 +106,6 @@
|
||||
<ClInclude Include="..\arg-nonnull.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\bench_block.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\c++defs.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
Loading…
x
Reference in New Issue
Block a user