Browse Source

Code movement. Update stats counter more frequently.

Jeff Garzik 15 years ago
parent
commit
89a05600ba
1 changed files with 20 additions and 12 deletions
  1. 20 12
      cpu-miner.c

+ 20 - 12
cpu-miner.c

@@ -25,6 +25,7 @@
 enum {
 enum {
 	STAT_SLEEP_INTERVAL		= 10,
 	STAT_SLEEP_INTERVAL		= 10,
 	POW_SLEEP_INTERVAL		= 1,
 	POW_SLEEP_INTERVAL		= 1,
+	STAT_CTR_INTERVAL		= 10000000,
 };
 };
 
 
 static bool opt_verbose;
 static bool opt_verbose;
@@ -70,6 +71,17 @@ struct work {
 	BIGNUM		*target;
 	BIGNUM		*target;
 };
 };
 
 
+#define ___constant_swab32(x) ((u32)(                       \
+        (((u32)(x) & (u32)0x000000ffUL) << 24) |            \
+        (((u32)(x) & (u32)0x0000ff00UL) <<  8) |            \
+        (((u32)(x) & (u32)0x00ff0000UL) >>  8) |            \
+        (((u32)(x) & (u32)0xff000000UL) >> 24)))
+
+static inline uint32_t swab32(uint32_t v)
+{
+	return ___constant_swab32(v);
+}
+
 static void databuf_free(struct data_buffer *db)
 static void databuf_free(struct data_buffer *db)
 {
 {
 	if (!db)
 	if (!db)
@@ -325,17 +337,6 @@ static void inc_stats(uint64_t n_hashes)
 	pthread_mutex_unlock(&stats_mutex);
 	pthread_mutex_unlock(&stats_mutex);
 }
 }
 
 
-#define ___constant_swab32(x) ((u32)(                       \
-        (((u32)(x) & (u32)0x000000ffUL) << 24) |            \
-        (((u32)(x) & (u32)0x0000ff00UL) <<  8) |            \
-        (((u32)(x) & (u32)0x00ff0000UL) >>  8) |            \
-        (((u32)(x) & (u32)0xff000000UL) >> 24)))
-
-static inline uint32_t swab32(uint32_t v)
-{
-	return ___constant_swab32(v);
-}
-
 static void runhash(void *state, void *input, const void *init)
 static void runhash(void *state, void *input, const void *init)
 {
 {
 	memcpy(state, init, 32);
 	memcpy(state, init, 32);
@@ -354,6 +355,7 @@ static uint32_t scanhash(unsigned char *midstate, unsigned char *data,
 	uint32_t *hash32 = (uint32_t *) hash;
 	uint32_t *hash32 = (uint32_t *) hash;
 	uint32_t *nonce = (uint32_t *)(data + 12);
 	uint32_t *nonce = (uint32_t *)(data + 12);
 	uint32_t n;
 	uint32_t n;
+	unsigned long stat_ctr = 0;
 
 
 	while (1) {
 	while (1) {
 		n = *nonce;
 		n = *nonce;
@@ -376,8 +378,14 @@ static uint32_t scanhash(unsigned char *midstate, unsigned char *data,
 			return n;
 			return n;
 		}
 		}
 
 
+		stat_ctr++;
+		if (stat_ctr >= STAT_CTR_INTERVAL) {
+			inc_stats(STAT_CTR_INTERVAL);
+			stat_ctr = 0;
+		}
+
 		if ((n & 0xffffff) == 0) {
 		if ((n & 0xffffff) == 0) {
-			inc_stats(n);
+			inc_stats(stat_ctr);
 
 
 			if (opt_debug)
 			if (opt_debug)
 				fprintf(stderr, "DBG: end of nonce range\n");
 				fprintf(stderr, "DBG: end of nonce range\n");