Browse Source

API stats add some pool getwork difficulty stats

nfactor-troky
Kano 12 years ago
parent
commit
7c32562d80
  1. 2
      API-README
  2. 5
      api.c
  3. 17
      cgminer.c
  4. 5
      miner.h

2
API-README

@ -401,6 +401,8 @@ Modified API commands: @@ -401,6 +401,8 @@ Modified API commands:
'pools' - add 'Proxy Type', 'Proxy', 'Difficulty Accepted', 'Difficulty Rejected',
'Difficulty Stale', 'Last Share Difficulty'
'config' - add 'Queue', 'Expiry'
'stats' - add 'Work Diff', 'Min Diff', 'Max Diff', 'Min Diff Count',
'Max Diff Count' to the pool stats
----------

5
api.c

@ -2789,6 +2789,11 @@ static int itemstats(int i, char *id, struct cgminer_stats *stats, struct cgmine @@ -2789,6 +2789,11 @@ static int itemstats(int i, char *id, struct cgminer_stats *stats, struct cgmine
root = api_add_bool(root, "Work Can Roll", &(pool_stats->canroll), false);
root = api_add_bool(root, "Work Had Expire", &(pool_stats->hadexpire), false);
root = api_add_uint32(root, "Work Roll Time", &(pool_stats->rolltime), false);
root = api_add_diff(root, "Work Diff", &(pool_stats->last_diff), false);
root = api_add_diff(root, "Min Diff", &(pool_stats->min_diff), false);
root = api_add_diff(root, "Max Diff", &(pool_stats->max_diff), false);
root = api_add_uint32(root, "Min Diff Count", &(pool_stats->min_diff_count), false);
root = api_add_uint32(root, "Max Diff Count", &(pool_stats->max_diff_count), false);
}
if (extra)

17
cgminer.c

@ -2047,6 +2047,7 @@ static double DIFFEXACTONE = 269599466671506397946670150870196306736371444225405 @@ -2047,6 +2047,7 @@ static double DIFFEXACTONE = 269599466671506397946670150870196306736371444225405
*/
static void calc_diff(struct work *work)
{
struct cgminer_pool_stats *pool_stats = &(work->pool->cgminer_pool_stats);
double targ;
int i;
@ -2057,6 +2058,22 @@ static void calc_diff(struct work *work) @@ -2057,6 +2058,22 @@ static void calc_diff(struct work *work)
}
work->work_difficulty = DIFFEXACTONE / (targ ? : DIFFEXACTONE);
pool_stats->last_diff = work->work_difficulty;
if (work->work_difficulty == pool_stats->min_diff)
pool_stats->min_diff_count++;
else if (work->work_difficulty < pool_stats->min_diff || pool_stats->min_diff == 0) {
pool_stats->min_diff = work->work_difficulty;
pool_stats->min_diff_count = 1;
}
if (work->work_difficulty == pool_stats->max_diff)
pool_stats->max_diff_count++;
else if (work->work_difficulty > pool_stats->max_diff) {
pool_stats->max_diff = work->work_difficulty;
pool_stats->max_diff_count = 1;
}
}
static void get_benchmark_work(struct work *work)

5
miner.h

@ -314,6 +314,11 @@ struct cgminer_pool_stats { @@ -314,6 +314,11 @@ struct cgminer_pool_stats {
bool canroll;
bool hadexpire;
uint32_t rolltime;
double min_diff;
double max_diff;
double last_diff;
uint32_t min_diff_count;
uint32_t max_diff_count;
};
struct cgpu_info {

Loading…
Cancel
Save