Con Kolivas
499c594cba
There is no need for pool active testing to be mandatory any more with queue request changes.
2012-08-05 14:29:21 +10:00
Con Kolivas
e4326e3ca2
Fix harmless warnings.
2012-08-05 14:24:31 +10:00
Con Kolivas
9a45a6d993
Check the current staged and global queued as well before queueing requests.
...
Discard stales before ageing work in the watchdog thread.
Queue requests after discarding and ageing work in watchdog thread.
Display accurate global queued in curses output.
Reuse variable in age_work().
2012-08-05 14:19:49 +10:00
Con Kolivas
bf9c324752
The queueing mechanism has become a complex state machine that is no longer predictable. Rewrite it from scratch watching only current queues in flight and staged work available on a pool by pool basis.
2012-08-05 13:40:46 +10:00
Con Kolivas
b66e0241f7
Queue an extra request whenever staged work drops below mining thread count in hash_pop.
2012-08-04 09:52:18 +10:00
Con Kolivas
b70ec3cb66
Merge pull request #283 from kanoi/icarus
...
ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
2012-08-02 17:17:53 -07:00
Con Kolivas
15dc4bb320
Scrypt mining does not support block testing yet so don't try to print it.
2012-08-03 10:10:53 +10:00
Con Kolivas
2953aa2502
We dropped the temporary stopping of curl recruiting on submit_fail by mistake, reinstate it.
2012-08-02 22:46:49 +10:00
Con Kolivas
9410875e2f
Make threads report in either side of the scanhash function in case we miss reporting in when restarting work.
2012-08-02 22:46:13 +10:00
ckolivas
d5dffa6aad
Don't make mandatory work and its clones last forever.
2012-08-02 16:45:12 +10:00
Con Kolivas
aa52db4539
Make test work for pool_active mandatory work items to smooth out staged work counts when in failover-only mode.
2012-08-01 23:42:00 +10:00
Kano
e067be421a
ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
2012-08-01 22:50:30 +10:00
Con Kolivas
8414a9a7e2
Add debugging output when work is found stale as to why.
2012-08-01 22:48:38 +10:00
Con Kolivas
d37d044fb7
Add some headroom to the number of curls available per pool to allow for longpoll and sendwork curls.
2012-08-01 20:05:30 +10:00
Tydus
fd51e5ba01
Add scrypt support while writing conf
2012-07-30 18:27:33 +08:00
Con Kolivas
99204bd59a
Display scrypt as being built in as well.
2012-07-30 14:07:03 +10:00
Con Kolivas
7a07c7d04c
Fix build warning about KL_SCRYPT when built without scrypt support.
2012-07-30 14:07:03 +10:00
Con Kolivas
c91148f193
Remove the low hash count determinant of hardware being sick. A low hash rate can be for poor network connectivity or scrypt mining, neither of which are due to sick hardware.
2012-07-30 09:02:23 +10:00
Con Kolivas
d8ec6d3e23
Display kilohash when suitable, but store the global mhash value still truly in megahashes to not break the API output.
2012-07-29 21:35:24 +10:00
Con Kolivas
b5517af024
Don't try and print curses output for devices that won't fit on the screen.
2012-07-29 21:07:24 +10:00
Con Kolivas
500ed85bb3
Merge pull request #271 from luke-jr/cg_logfixes
...
Logging bugfixes
2012-07-29 03:46:49 -07:00
Con Kolivas
28ac422ab8
Merge pull request #270 from luke-jr/bugfix_procname
...
Bugfix: Copy argv[0] given to dirname()
2012-07-29 03:45:10 -07:00
Con Kolivas
b40c8b848f
Limit total number of curls recruited per pool to the number of mining threads to prevent blasting the network when we only have one pool to talk to.
2012-07-29 19:10:40 +10:00
Con Kolivas
e87ff7c177
Keep a counter of enabled pools and use that instead of iterating over the pool list. Use that value to ensure we don't set the last remaining active pool to the rejecting state.
2012-07-29 13:15:39 +10:00
Con Kolivas
5148502c1e
Reinstate help information for lookup gap and thread concurrency since tc will often need to be manually set for optimal scrypt performance.
2012-07-25 22:30:37 +10:00
Con Kolivas
9a6c082ad1
Make the thread concurrency and lookup gap options hidden on the command line and autotune parameters with a newly parsed --shaders option.
2012-07-24 20:27:37 +10:00
Luke Dashjr
da4ff2bde1
Bugfix: Use a mutex to control non-curses output
...
Without this, there is no guarantee writes won't overlap (and it happens quite a bit on Windows with the bitforce driver)
2012-07-23 20:29:06 +00:00
Luke Dashjr
d98e561a0a
Simplify code to a single vprintf path for curses-less printing
2012-07-23 20:29:02 +00:00
Luke Dashjr
80593c47fc
Move opt_quiet check to my_log_curses, so it works for curses-less builds
2012-07-23 20:28:57 +00:00
Luke Dashjr
a1cb0d06d5
Bugfix: Copy argv[0] given to dirname()
...
Per manpage, dirname can (and does on GNU/Linux!) modify its argument
2012-07-23 15:48:00 +00:00
Con Kolivas
94c94d659a
Nonce testing for btc got screwed up, leading to no accepted shares. Fix it.
2012-07-23 07:38:58 +10:00
Con Kolivas
39f7d2fa74
Allow lookup gap and thread concurrency to be passed per device and store details in kernel binary filename.
2012-07-21 17:31:06 +10:00
Con Kolivas
b9e5f8e550
Revert "Use cpu scrypt code to check if an scrypt share is below target before submitting it."
...
This reverts commit 808f403a14
.
Conflicts:
findnonce.c
2012-07-21 10:28:41 +10:00
Con Kolivas
808f403a14
Use cpu scrypt code to check if an scrypt share is below target before submitting it.
2012-07-20 23:44:43 +10:00
Con Kolivas
d72add9af3
Send correct values to scrypt kernel to get it finally working.
2012-07-20 16:16:18 +10:00
Con Kolivas
dd25454594
Detach pthread from within the api thread in case it is terminated due to not being instantiated before pthread_cancel is called from main, leading to a segfault.
2012-07-16 22:04:48 +10:00
Con Kolivas
77b7ed4b9e
Debug output per thread hashrate is out by a factor of 1000.
2012-07-16 20:25:16 +10:00
Con Kolivas
76c37891ea
Handle KL_SCRYPT in config write.
2012-07-16 13:19:42 +10:00
Con Kolivas
5cd4bbd21c
Get rid of stuff.
2012-07-16 13:18:43 +10:00
Con Kolivas
6ac14f4280
Don't enqueuewrite buffer at all for pad8 and pass work details around for scrypt in dev_blk.
2012-07-16 13:14:21 +10:00
Luke Dashjr
a1edc7dbcb
Bugfix: Fix build without curses but with OpenCL
2012-07-15 05:37:49 +00:00
Con Kolivas
6c6c285268
Show Khash hashrates when scrypt is in use.
2012-07-14 22:25:41 +10:00
Con Kolivas
54f1b80824
Free the scratchbuf memory allocated in scrypt and don't check if CPUs are sick since they can't be. Prepare for khash hash rates in display.
2012-07-14 22:19:55 +10:00
Con Kolivas
a5ebb71216
Add cpumining capability for scrypt.
2012-07-14 22:01:20 +10:00
Con Kolivas
41daf99537
Calculate midstate in separate function and remove likely/unlikely macros since they're dependent on pools, not code design.
2012-07-14 09:45:55 +10:00
Con Kolivas
8230ab0549
Display in debug mode when we're making the midstate locally.
2012-07-14 01:10:50 +10:00
Con Kolivas
ea444d0239
Fix nonce submission code for scrypt.
2012-07-14 00:59:38 +10:00
Con Kolivas
0f43eb5eb7
Don't test nonce with sha and various fixes for scrypt.
2012-07-13 20:35:44 +10:00
Con Kolivas
dd740caa98
Provide initial support for the scrypt kernel to compile with and mine scrypt with the --scrypt option.
2012-07-13 19:02:43 +10:00
Con Kolivas
cbef2a6a65
Only try to shut down work cleanly if we've successfully connected and started mining.
2012-07-12 16:40:15 +10:00
Luke Dashjr
c57c308d1f
Bugfix: Don't declare devices SICK if they're just busy initializing
...
This mainly applies to ModMiner since it takes 4-5 minutes to upload the bitstream
2012-07-11 20:29:06 +00:00
ckolivas
5c7e03084a
Modify te scanhash API to use an int64_t and return -1 on error, allowing zero to be a valid return value.
2012-07-11 22:59:58 +10:00
ckolivas
f9d0324d2a
Check for work restart after the hashmeter is invoked for we lose the hashes otherwise contributed in the count.
2012-07-11 22:47:03 +10:00
ckolivas
1d153a140f
Remove disabled: label from mining thread function, using a separate mt_disable function.
2012-07-11 22:43:21 +10:00
ckolivas
af809b79be
Style changes.
2012-07-11 22:36:45 +10:00
Con Kolivas
2ce7f28bbc
Merge pull request #254 from luke-jr/work_restart2
...
Turn work_restart array into a bool in thr_info
2012-07-08 04:24:55 -07:00
Con Kolivas
ad02627e6b
Fix --benchmark not working since the dynamic addition of pools and pool stats.
2012-07-06 19:35:28 +10:00
Con Kolivas
fd55fab96a
Make bitforce nonce range support a command line option --bfl-range since enabling it decrease hashrate by 1%.
2012-07-06 16:54:00 +10:00
Luke Dashjr
d4af2d0535
Turn work_restart array into a bool in thr_info
2012-07-06 05:13:05 +00:00
Con Kolivas
274a40115e
Merge branch 'master' into mr
2012-07-05 16:45:05 +10:00
Con Kolivas
75eca07823
Restart_wait is only called with a ms value so incorporate that into the function.
2012-07-05 09:15:21 +10:00
Con Kolivas
8bc7d1c9a0
Only try to adjust dev width when curses is built in.
2012-07-05 08:59:09 +10:00
Con Kolivas
67e92de18c
Adjust device width column to be consistent.
2012-07-04 15:16:39 +10:00
Con Kolivas
ce93c2fc62
Use cgpu-> not gpus[] in watchdog thread.
2012-07-04 14:40:02 +10:00
Con Kolivas
7ada258bbf
Merge branch 'master' into bfl
2012-07-03 11:04:44 +10:00
Con Kolivas
610cf0f0a5
Minor style changes.
2012-07-03 10:48:42 +10:00
Sergei Krivonos
aaa9f62b3e
Made JSON error message verbose.
2012-07-03 01:01:37 +03:00
Paul Sheppard
ce850883e7
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-07-01 23:39:09 -07:00
Paul Sheppard
cc0ad5eaa7
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-07-01 23:35:06 -07:00
ckolivas
ac45260e18
Random style cleanups.
2012-07-02 16:12:35 +10:00
ckolivas
06ec47b3bd
Must always unlock mutex after cond timedwait.
2012-07-02 12:45:16 +10:00
ckolivas
df5d196f9a
Must unlock mutex if pthread_cond_wait succeeds.
2012-07-02 12:37:15 +10:00
ckolivas
fd7b21ed56
Use a pthread conditional that is broadcast whenever work restarts are required. Create a generic wait function waiting a specified time on that conditional that returns if the condition is met or a specified time passed to it has elapsed. Use this to do smarter polling in bitforce to abort work, queue more work, and check for results to minimise time spent working needlessly.
2012-07-02 10:54:20 +10:00
Paul Sheppard
a4a2000cc0
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-30 20:45:56 -07:00
ckolivas
830f2902b9
Numerous style police clean ups in cgminer.c
2012-07-01 11:09:06 +10:00
ckolivas
1e9421475c
Timersub is supported on all build platforms so do away with custom timerval_subtract function.
2012-07-01 10:44:23 +10:00
Paul Sheppard
efaa7398fb
Tweak sick/dead logic
...
(remove pre-computed time calculations)
2012-06-30 11:59:53 -07:00
Paul Sheppard
86c8bbe57e
Need to run Hashmeter all the time.
...
and not just if logging/display is enabled
2012-06-29 17:19:28 -07:00
Paul Sheppard
75a651c13f
Revert "Check for submit_stale before checking for work_restart"
...
Makes no sense to continue working on the old block whether submit_stale is enabled or not.
2012-06-28 16:08:10 -07:00
Paul Sheppard
baa480c137
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
cgminer.c
2012-06-28 08:22:55 -07:00
Paul Sheppard
f225392990
Add low hash threshold in sick/dead processing
...
Add check for fd in comms procedures
2012-06-28 08:20:45 -07:00
Con Kolivas
3267b534a8
Implement rudimentary X-Mining-Hashrate support.
2012-06-28 10:43:52 +10:00
Con Kolivas
4c5d41a8dd
Merge pull request #243 from kanoi/master
...
define, implement and document API option --api-groups
2012-06-27 16:03:46 -07:00
Con Kolivas
24316fc7fc
Revert "Work is checked if it's stale elsewhere outside of can_roll so there is no need to check it again."
...
This reverts commit 5ad58f9a5c
.
2012-06-28 07:27:57 +10:00
Paul Sheppard
62c3c66f17
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-27 08:18:12 -07:00
Con Kolivas
5ad58f9a5c
Work is checked if it's stale elsewhere outside of can_roll so there is no need to check it again.
2012-06-27 23:36:48 +10:00
Con Kolivas
eddd02fea1
Put upper bounds to under 2 hours that work can be rolled into the future for bitcoind will deem it invalid beyond that.
2012-06-27 23:32:50 +10:00
Con Kolivas
bcec5f5102
Revert "Check we don't exhaust the entire unsigned 32 bit ntime range when rolling time to cope with extremely high hashrates."
...
This reverts commit 522f620c89
.
Unrealistic. Limits are bitcoind related to 2 hours in the future.
2012-06-27 23:30:50 +10:00
Con Kolivas
383d35b221
Merge branch 'master' of github.com:ckolivas/cgminer
2012-06-27 22:35:38 +10:00
Con Kolivas
522f620c89
Check we don't exhaust the entire unsigned 32 bit ntime range when rolling time to cope with extremely high hashrates.
2012-06-27 22:34:46 +10:00
Kano
c21fc06560
define API option --api-groups
2012-06-27 21:28:18 +10:00
ckolivas
794b6558a3
Merge branch 'master' of https://github.com/ckolivas/cgminer
2012-06-27 10:55:50 +10:00
ckolivas
21a23a45d7
Work around pools that advertise very low expire= time inappropriately as this leads to many false positives for stale shares detected.
2012-06-27 10:15:57 +10:00
Paul Sheppard
d3e2b62c54
Change sick/dead processing to use device pointer, not gpu array.
...
Change BFL timing to adjust only when hashing complete (not error/idle etc.).
2012-06-26 14:45:48 -07:00
Paul Sheppard
78d5a81d70
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-26 12:32:09 -07:00
Con Kolivas
68a3a9ad10
There is no need for work to be a union in struct workio_cmd
2012-06-26 22:37:24 +10:00
ckolivas
b198423d17
Don't keep rolling work right up to the expire= cut off. Use 2/3 of the time between the scantime and the expiry as cutoff for reusing work.
2012-06-26 16:01:06 +10:00
ckolivas
6e80b63bb8
Revert "Increase the getwork delay factored in to determine if work vs share is stale to avoid too tight timing."
...
This reverts commit d8de1bbc5b
.
Wrong fix.
2012-06-26 15:43:03 +10:00
ckolivas
d8de1bbc5b
Increase the getwork delay factored in to determine if work vs share is stale to avoid too tight timing.
2012-06-26 13:07:08 +10:00
Paul Sheppard
1ef52e0bac
Check for submit_stale before checking for work_restart
...
(to keep Kano happy)
2012-06-25 19:23:10 -07:00
Paul Sheppard
df9e76bd73
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-25 10:56:04 -07:00
Paul Sheppard
90d82aa61d
Revert to pre pool merge
2012-06-25 10:27:08 -07:00
Con Kolivas
c027492fa4
Make the pools array a dynamically allocated array to allow unlimited pools to be added.
2012-06-25 17:06:26 +10:00
Con Kolivas
5cf4b7c432
Make the devices array a dynamically allocated array of pointers to allow unlimited devices.
2012-06-25 16:59:29 +10:00
Con Kolivas
17ba2dca63
Logic fail on queueing multiple requests at once. Just queue one at a time.
2012-06-25 10:51:45 +10:00
Con Kolivas
42ea29ca4e
Use a queueing bool set under control_lock to prevent multiple calls to queue_request racing.
2012-06-25 00:58:18 +10:00
Con Kolivas
63dd598e2a
Queue multiple requests at once when levels are low.
2012-06-25 00:42:51 +10:00
Con Kolivas
757922e4ce
Use the work clone flag to determine if we should subtract it from the total queued variable and provide a subtract queued function to prevent looping over locked code.
2012-06-25 00:33:47 +10:00
Con Kolivas
49dd8fb548
Don't decrement staged extras count from longpoll work.
2012-06-25 00:25:38 +10:00
Con Kolivas
d93e5f710d
Count longpoll's contribution to the queue.
2012-06-25 00:23:58 +10:00
Con Kolivas
05bc638d97
Increase queued count before pushing message.
2012-06-25 00:08:50 +10:00
Con Kolivas
32f5272123
Revert "With better bounds on the amount of work cloned, there is no need to age work and ageing it was picking off master work items that could be further rolled."
...
This reverts commit 5d90c50fc0
.
2012-06-25 00:03:37 +10:00
Con Kolivas
5d90c50fc0
With better bounds on the amount of work cloned, there is no need to age work and ageing it was picking off master work items that could be further rolled.
2012-06-24 23:38:24 +10:00
Con Kolivas
47f66405c0
Alternatively check staged work count for rolltime capable pools when deciding to queue requests.
2012-06-24 23:10:02 +10:00
Con Kolivas
efa9569b66
Test we have enough work queued for pools with and without rolltime capability.
2012-06-24 22:59:56 +10:00
Con Kolivas
1bbc860a15
Don't count longpoll work as a staged extra work.
2012-06-24 22:47:51 +10:00
Con Kolivas
ebaa615f6d
Count extra cloned work in the total queued count.
2012-06-24 22:16:04 +10:00
Con Kolivas
74cd6548a9
Use a static base measurement difference of how many items to clone since requests_staged may not climb while rolling.
2012-06-24 22:00:37 +10:00
Con Kolivas
7b57df1171
Allow 1/3 extra buffer of staged work when ageing it.
2012-06-24 21:58:52 +10:00
Con Kolivas
53269a97f3
Revert "Simplify the total_queued count to those staged not cloned and remove the locking since it's no longer a critical value."
...
This reverts commit 9f811c528f
.
2012-06-24 21:57:49 +10:00
Con Kolivas
a05c8e3fd9
Revert "Take into account total_queued as well when deciding whether to queue a fresh request or not."
...
This reverts commit b20089fdb7
.
2012-06-24 21:57:18 +10:00
Con Kolivas
750474bcfb
Revert "Further simplify the total_queued counting mechanism and do all dec_queued from the one location."
...
This reverts commit 790acad9f9
.
2012-06-24 21:56:53 +10:00
Con Kolivas
d2c1a6bd6b
Revert "Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work."
...
This reverts commit c860172275
.
2012-06-24 21:56:36 +10:00
Con Kolivas
c860172275
Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work.
2012-06-24 21:52:07 +10:00
Con Kolivas
790acad9f9
Further simplify the total_queued counting mechanism and do all dec_queued from the one location.
2012-06-24 21:42:34 +10:00
Con Kolivas
b20089fdb7
Take into account total_queued as well when deciding whether to queue a fresh request or not.
2012-06-24 20:59:55 +10:00
Con Kolivas
ded16838db
Add the getwork delay time instead of subtracting it when determining if a share is stale.
2012-06-24 20:48:02 +10:00
Con Kolivas
b5757d124b
Don't count getwork delay when determining if shares are stale.
2012-06-24 20:45:47 +10:00
Con Kolivas
9f811c528f
Simplify the total_queued count to those staged not cloned and remove the locking since it's no longer a critical value.
...
Clone only anticipated difference sicne there will be a lag from the value returned by requests_staged().
Keep 1/3 buffer of extra work items when ageing them.
2012-06-24 20:38:40 +10:00
Con Kolivas
411784a99d
As work is sorted by age, we can discard the oldest work at regular intervals to keep only 1 of the newest work items per mining thread.
2012-06-24 19:53:31 +10:00
Con Kolivas
359635a8cf
Only roll enough work to have one staged work for each mining thread.
2012-06-24 18:44:09 +10:00
Con Kolivas
0c970bbd1c
Roll work again after duplicating it to prevent duplicates on return to the clone function.
2012-06-24 18:22:20 +10:00
Con Kolivas
610302afcb
Abstract out work cloning and clone $mining_threads copies whenever a rollable work item is found and return a clone instead.
2012-06-24 18:10:17 +10:00
Con Kolivas
a8ae1a43ea
Rolltime should be used as the cutoff time for primary work as well as the rolled work, if present.
2012-06-24 14:38:31 +10:00
Con Kolivas
c20a89d998
Take into account average getwork delay as a marker of pool communications when considering work stale.
2012-06-24 14:20:29 +10:00
Con Kolivas
f32ffb8718
Work out a rolling average getwork delay stored in pool_stats.
2012-06-24 13:20:17 +10:00
Con Kolivas
4e60a62ae2
Getwork delay in stats should include retries for each getwork call.
2012-06-24 12:55:56 +10:00
ckolivas
6a45cbbdfb
Merge branch 'master' of https://github.com/ckolivas/cgminer
2012-06-23 23:45:08 +10:00
ckolivas
c5a21fabf0
Extend nrolltime to support the expiry= parameter. Do this by turning the rolltime bool into an integer set to the expiry time. If the pool supports rolltime but not expiry= then set the expiry time to the standard scantime.
2012-06-23 23:43:22 +10:00
Paul Sheppard
6ce4871b94
Merge branch 'conf_pools'
2012-06-20 15:49:51 -07:00
Paul Sheppard
0bcdc2cac4
Add ability to disable pools in config file.
...
Also fix pool writing in priorty order.
2012-06-20 15:49:07 -07:00
Paul Sheppard
57fa2be13b
Write pools in priority order
2012-06-20 11:40:28 -07:00
Paul Sheppard
e037028159
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-06-19 10:40:00 -07:00
Con Kolivas
f70577b097
Merge pull request #229 from luke-jr/modminer_primary
...
modminer: Don't delay 2nd+ FPGAs during work restart
2012-06-19 04:38:49 -07:00
Luke Dashjr
1215da39ee
modminer: Don't delay 2nd+ FPGAs during work restart
...
Add primary_thread boolean to threads to identify a single one as the "primary" thread for shared-resource multithreading.
This is needed since ModMiners use multiple threads to interface with independent hashing components.
2012-06-18 05:51:09 +00:00
Paul Sheppard
af27b40e34
Merge branch 'master' of https://github.com/pshep/cgminer.git
2012-06-17 09:47:02 -07:00
Paul Sheppard
fe4c0869bf
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
cgminer.c
2012-06-17 09:44:42 -07:00
Paul Sheppard
7ae22e21e3
Disable OpenCL code when not available.
2012-06-16 20:24:40 -07:00
Con Kolivas
8faf3c90b8
Fix openwrt crashing on regeneratehash() by making check_solve a noop.
2012-06-16 09:22:11 +10:00
Paul Sheppard
6ed75c96cb
Remove nDev limit in watchdog_thread
...
Can't work out why it was even there... so there could still be a reason
for it!
2012-06-15 12:11:28 -07:00
Paul Sheppard
fa3f357fc1
Sick/dead handling for non-gpus
2012-06-14 17:36:59 -07:00
Paul Sheppard
bc4a259af7
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-14 08:13:07 -07:00
Con Kolivas
bf3e15838f
Fix sign warning.
2012-06-14 21:36:23 +10:00
Con Kolivas
83bf9f4334
can_roll and should_roll should have no bearing on the cycle period within the miner_thread so remove it.
2012-06-14 20:53:07 +10:00
Con Kolivas
ceec3f83c3
Check for strategy being changed to load balance when enabling LPs.
2012-06-14 20:36:17 +10:00
Con Kolivas
b0de3edeb8
Check that all threads on the device that called get_work are waiting on getwork before considering the pool lagging.
2012-06-14 17:28:24 +10:00
Con Kolivas
44f5d55d51
Iterate over each thread belonging to each device in the hashmeter instead of searching for them now that they're a list.
2012-06-14 17:16:37 +10:00
Paul Sheppard
2d1f961046
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-14 00:05:31 -07:00
Con Kolivas
6e2c12eeb0
When using rotate pool strategy, ensure we only select from alive enabled pools.
2012-06-14 16:11:29 +10:00
Con Kolivas
79f4b570f7
Start longpoll from every pool when load balance strategy is in use.
2012-06-14 15:58:18 +10:00
Con Kolivas
dbe9056df4
Add mandatory and block fields to the work struct. Flag any shares that are detected as blocks as mandatory to submit, along with longpoll work from a previously rejecting pool.
2012-06-14 15:42:43 +10:00
Paul Sheppard
b94e199649
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-13 17:31:20 -07:00
Paul Sheppard
eff2d04df0
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
...
Conflicts:
cgminer.c
2012-06-13 12:31:33 -07:00
Luke Dashjr
4eb23c7ea3
Bugfix: slay a variety of warnings
2012-06-13 17:03:26 +00:00
Paul Sheppard
2384d0fbc6
Removed idle mode... again!?
...
Changed work_reset rate to every 100ms & use defines rather than numerics.
Change total sleep time to 4300ms after performance testing/measurement (now good to 916MH/s).
Changed timeout to 15s - Throttle time is 15s.
Added support for 'Busy' when submitting work.
Improved logging text to include device identifier.
Added a thread_enable api function, called when a thread is re-enabled.
... and removed useless re-init inside scanhash.
Use modminer introduced mutex.
2012-06-12 18:20:18 -07:00
Luke Dashjr
a78d616bc5
modminer: Temperature sensor improvements
...
Display the temperature of each of the (up to) 4 FPGAs
2012-06-12 17:04:03 +00:00
Paul Sheppard
861388f960
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-12 09:04:42 -07:00
Luke Dashjr
76f96f4717
New driver: BTCFPGA ModMiner
2012-06-12 02:38:36 +00:00
Luke Dashjr
d3fa59d76f
Abstract generally useful FPGA code into fpgautils.c
2012-06-12 02:35:45 +00:00
Paul Sheppard
bf4d6c3483
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-11 13:36:35 -07:00
Paul Sheppard
4889d7ecb2
Merge branch 'master' of git@github.com:pshep/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-06-11 13:09:27 -07:00
Paul Sheppard
820d662c9d
Removed idle mode.
...
Added watchdog thread BFL temperature monitoring.
2012-06-10 23:11:59 -07:00
Paul Sheppard
ebeaf15f18
Added idle mode
...
Idle is only set by pgadisable, so GPU/CPU is unaffected.
For Icarus/Ztex, in scanhash the thread is immediately set disabled then returns.
2012-06-09 19:30:32 -07:00
Kano
fdcd72b9ae
API add stats for pool getworks
2012-06-10 11:19:21 +10:00
Paul Sheppard
7f54adb4c9
Merge remote-tracking branch 'upstream/master'
2012-06-08 19:48:42 -07:00
Kano
3cb3f09a50
API save default config file if none specified
2012-05-31 23:18:55 +10:00
Con Kolivas
84064a2b1e
Must unlock mutex within loop.
2012-05-31 19:25:33 +10:00
Con Kolivas
85bddde1c0
Must unlock mutex after waking up on pthread conditional.
2012-05-31 19:20:40 +10:00
Con Kolivas
598476cae1
Merge pull request #204 from kanoi/icarus-timer
...
Icarus: high accuracy timing and other bitstream speed support
2012-05-30 18:02:00 -07:00
Con Kolivas
624948e246
Open a longpoll connection if a pool is in the REJECTING state as it's the only way to re-enable it automatically.
2012-05-31 09:44:51 +10:00
Con Kolivas
2586bda59a
Use only one longpoll as much as possible by using a pthread conditional broadcast that each longpoll thread waits on and checks if it's the current pool before opening its longpoll connection.
2012-05-31 09:40:32 +10:00
Con Kolivas
5c3a252b6d
Merge branch 'master' of github.com:ckolivas/cgminer
2012-05-31 08:42:46 +10:00
Con Kolivas
85210ee7a8
If shares are known stale, don't use them to decide to disable a pool for sequential rejects.
2012-05-31 08:41:56 +10:00
Paul Sheppard
cebd647f50
Messing with BFL code
2012-05-22 08:10:00 -07:00
Paul Sheppard
4d3cc0bc6d
Add check to 'i' (could be considered safer)
2012-05-18 10:57:19 -07:00
Paul Sheppard
407be57400
Change write_config so that pools are saved in priority order.
2012-05-16 16:26:05 -07:00
Kano
17b6f111a6
Icarus: make --icarus-timing hidden and document it in FPGA-README
2012-05-16 23:53:13 +10:00
Kano
b5ed958e84
Icarus: high accuracy timing and other bitstream speed support
2012-05-16 22:25:21 +10:00
Xiangfu
9414fa7c18
work_decode only needs swab32 on midstate under BIG ENDIAN
2012-05-11 12:15:30 +08:00
Kano
c2e2e7e437
save config bugfix: writing an extra ',' when no gpus
2012-05-07 20:23:20 +10:00
Con Kolivas
61696c072c
In the unlikely event of finding a block, display the block solved count with the pool it came from for auditing.
2012-05-06 16:22:18 +10:00
Con Kolivas
6282dfb405
Display the device summary on exit even if a device has been disabled.
2012-05-06 16:15:20 +10:00
Con Kolivas
848373d13b
Ensure we test for a pool recovering from idle so long as it's not set to disabled.
2012-05-06 14:24:50 +10:00
Con Kolivas
b85d7b5446
Revert "Perform all common pool initialisation in add_pool()."
...
This reverts commit f8b66bde28
.
Sets pools to dead by mistake at startup.
2012-05-06 14:17:48 +10:00
Con Kolivas
801d9eaa7b
Fix pool number display.
2012-05-06 14:13:39 +10:00
Con Kolivas
233a812f00
Give cgminer -T message only if curses is in use.
2012-05-06 13:30:27 +10:00
Con Kolivas
f8b66bde28
Perform all common pool initialisation in add_pool().
2012-05-06 13:27:17 +10:00
Con Kolivas
85c9e0c4b6
Merge pull request #198 from kanoi/stats
...
API add getwork stats to cgminer - accesable from API 'stats' - and devices can add stats also
2012-05-05 06:38:30 -07:00
Kano
976e27c4cb
API add getwork stats to cgminer - accesable from API 'stats'
2012-05-05 15:04:15 +10:00
Con Kolivas
46a679f39e
Revert "Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp."
...
This reverts commit 87708a6a0e
.
Broken.
2012-05-05 12:55:00 +10:00
Con Kolivas
c322d9b55e
Don't initialise variables to zero when in global scope since they're already initialised.
2012-05-05 09:40:46 +10:00
Con Kolivas
c8e1026dfb
Get rid of unitialised variable warning when it's false.
2012-05-05 09:37:33 +10:00
Con Kolivas
b3bc506d9a
Move a pool to POOL_REJECTING to be disabled only after 3 minutes of continuous rejected shares.
2012-05-05 09:31:48 +10:00
Con Kolivas
87708a6a0e
Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp.
2012-05-04 23:05:00 +10:00
Kano
5c2bf84a37
Change FPGA detection order since BFL hangs on an ICA
2012-05-04 22:18:31 +10:00
Con Kolivas
4987958e6a
Add a temporarily disabled state for enabled pools called POOL_REJECTING and use the work from each longpoll to help determine when a rejecting pool has started working again.
...
Switch pools based on the multipool strategy once a pool is re-enabled.
2012-05-04 20:10:38 +10:00
Con Kolivas
d5eb6650e2
Merge pull request #193 from kanoi/master
...
API add last share time to each pool + Correct Icarus U: & MH/s
2012-05-04 02:43:56 -07:00
ckolivas
376fcd3c02
Fix the benchmark feature by bypassing the new networking code.
2012-05-04 13:10:18 +10:00
ckolivas
4d090a587c
Reset sequential reject counter after a pool is disabled for when it is re-enabled.
2012-05-04 12:51:32 +10:00
Kano
44fc698750
API add last share time to each pool
2012-05-04 00:13:42 +10:00
Con Kolivas
852f6a0eb0
Don't try to reap curls if benchmarking is enabled.
2012-05-03 22:39:12 +10:00
Con Kolivas
f0985f9978
Only show longpoll warning once when it has failed.
2012-05-03 16:25:07 +10:00
Con Kolivas
41d5813d8f
Convert hashes to an unsigned long long as well.
2012-05-03 15:37:29 +10:00
Con Kolivas
a4f1af1733
Detect pools that have issues represented by endless rejected shares and disable them, with a parameter to optionally disable this feature.
2012-05-03 15:35:13 +10:00
Luke Dashjr
068018225c
Bugfix: Use a 64-bit type for hashes_done (miner_thread) since it can overflow 32-bit on some FPGAs
2012-05-02 23:24:07 -04:00
Con Kolivas
5081c1824a
Limit the number of curls we recruit on communication failures and with delaynet enabled to 5 by maintaining a per-pool curl count, and using a pthread conditional that wakes up when one is returned to the ring buffer.
2012-05-03 10:49:42 +10:00
Con Kolivas
d4405de704
Generalise add_pool() functions since they're repeated in add_pool_details.
2012-05-03 10:49:42 +10:00
Luke Dashjr
4ba9006d0e
Disable failing devices such that the user can attempt to re-enable them
2012-05-03 10:49:42 +10:00
ckolivas
5cf4e188fd
Increase pool watch interval to 30 seconds.
2012-05-03 10:49:42 +10:00
ckolivas
85008a7853
Reap curls that are unused for over a minute.
...
This allows connections to be closed, thereby allowing the number of curl handles to always be the minimum necessary to not delay networking.
2012-05-03 10:48:05 +10:00
Con Kolivas
ec3d057016
Use the ringbuffer of curls from the same pool for submit as well as getwork threads.
...
Since the curl handles were already connected to the same pool and are immediately available, share submission will not be delayed by getworks.
2012-05-03 10:47:15 +10:00
Con Kolivas
7d288eac9f
Implement a scaleable networking framework designed to cope with any sized network requirements, yet minimise the number of connections being reoped.
...
Do this by create a ring buffer linked list of curl handles to be used by getwork, recruiting extra handles when none is immediately available.
2012-05-03 10:41:57 +10:00
Con Kolivas
89053c78da
There is no need for the submit and getwork curls to be tied to the pool struct.
2012-05-01 19:12:37 +10:00
ckolivas
adda6e6680
Do not recruit extra connection threads if there have been connection errors to the pool in question.
2012-05-01 17:48:23 +10:00
ckolivas
7638511290
We should not retry submitting shares indefinitely or we may end up with a huge backlog during network outages, so discard stale shares if we failed to submit them and they've become stale in the interim.
2012-05-01 09:54:34 +10:00
Con Kolivas
b015348df4
Shorten stale share messages slightly.
2012-04-29 10:08:12 +10:00
Con Kolivas
7233890d85
Protect the freeing of current_hash under mutex_lock to prevent racing on it when set_curblock is hit concurrently.
2012-04-29 10:03:01 +10:00
Con Kolivas
53c22551f7
Change default behaviour to submitting stale, removing the --submit-stale option and adding a --no-submit-stale option.
2012-04-29 09:12:23 +10:00
Con Kolivas
f9123f0587
Make sure to start the getwork and submit threads when a pool is added on the fly.
2012-04-29 08:55:59 +10:00
Con Kolivas
5ad942d187
Faster hardware can easily outstrip the speed we can get work and submit shares when using only one connection per pool.
...
Test the queued list to see if any get/submits are already queued and if they are, start recruiting extra connections by generating new threads.
This allows us to reuse network connections at low loads but recuit new open connections as they're needed, so that cgminer can scale to hardware of any size.
2012-04-29 00:56:23 +10:00
Con Kolivas
628ac19977
Get rid of confusing "waiting on fresh work" part of longpoll message to minimise log width and add pool number to longpoll work restart message.
2012-04-28 14:00:34 +10:00
Con Kolivas
972860c0af
Remove unused variable.
2012-04-28 13:36:27 +10:00
Con Kolivas
3362a2a447
Give a longpoll message for any longpoll that detects a block change, primary or backup, and also display which pool it was.
2012-04-28 13:31:27 +10:00
Con Kolivas
e1cf5029d4
Decrease utility display to one decimal place.
2012-04-28 12:22:23 +10:00
Con Kolivas
7b370bb2e7
Small cosmetic output alignment.
2012-04-28 09:19:32 +10:00
Con Kolivas
669b0deda3
Add pool number to stale share message.
2012-04-28 08:39:06 +10:00
Con Kolivas
03fab3f438
Remove thread id display from rejected shares as well.
2012-04-28 00:16:34 +10:00
Con Kolivas
86e94edb89
Set have_longpoll to true when there is at least one pool with longpoll.
2012-04-27 15:47:21 +10:00
Con Kolivas
0365878ac5
Don't display the thread ID since it adds no useful information over the device number.
2012-04-27 15:30:42 +10:00
Con Kolivas
08c721080d
Don't display the first 8 bytes of a share since they will always be zero at >= 1 difficulty.
2012-04-27 15:29:31 +10:00
Con Kolivas
501e35a0e6
work->longpoll is reset across test_work_current so we need to recheck what pool it belongs to.
2012-04-27 14:02:29 +10:00
Con Kolivas
03abb70467
Use longpolls from backup pools with failover-only enabled just to check for block changes, but don't use them as work.
2012-04-27 13:59:43 +10:00
Con Kolivas
1ab318d0f3
Start longpoll only after we have tried to extract the longpoll URL.
2012-04-27 13:11:19 +10:00
Con Kolivas
b1c273e71b
Check for submitold flag on resubmit of shares, and give different message for stale shares on retry.
2012-04-27 12:54:29 +10:00
Con Kolivas
5ece966f07
Check for submitold before submitstale.
2012-04-27 12:47:13 +10:00
Con Kolivas
ed718b2b50
Don't force fresh curl connections on anything but longpoll threads.
2012-04-27 12:28:51 +10:00
Con Kolivas
eda382990a
Create one longpoll thread per pool, using backup pools for those pools that don't have longpoll.
...
Use the work created from the longpoll return only if we don't have failover-enabled, and only flag the work as a longpoll if it is the current pool.
This will work around the problem of trying to restart the single longpoll thread on pool changes that was leading to race conditions.
It will also have less work restarts from the multiple longpolls received from different pools.
2012-04-27 11:58:47 +10:00
Con Kolivas
e502fde52b
Remove the ability to disable longpoll. It is not a useful feature and will conflict with planned changes to longpoll code.
2012-04-27 11:13:52 +10:00
Con Kolivas
8e84abfc22
Merge pull request #184 from luke-jr/bugfix_const_warning
...
Bugfix: Make initial_args a const char** to satisfy exec argument type warning (MinGW)
2012-04-26 17:36:19 -07:00
Con Kolivas
8d8f4ff856
Merge pull request #182 from kanoi/master
...
api.c 'devdetails' list static details of devices + ZTex ++
2012-04-26 16:38:17 -07:00
Luke Dashjr
90c5ef1fa7
Bugfix: Make initial_args a const char** to satisfy exec argument type warning (on Windows only)
2012-04-26 14:58:31 -04:00
Con Kolivas
4cd973264f
Create discrete persistent submit and get work threads per pool, thus allowing all submitworks belonging to the same pool to reuse the same curl handle, and all getworks to reuse their own handle.
...
Use separate handles for submission to not make getwork potentially delay share submission which is time critical.
This will allow much more reusing of persistent connections instead of opening new ones which can flood routers.
This mandated a rework of the extra longpoll support (for when pools are switched) and this is managed by restarting longpoll cleanly and waiting for a thread join.
2012-04-26 23:29:21 +10:00
Kano
b3ac249e71
cgminer.c sharelog code consistency and compile warning fix
2012-04-26 00:20:16 +10:00
Luke Dashjr
4648330c9d
Support for share logging
2012-04-25 12:05:33 +10:00
Con Kolivas
f5f089f5b4
Add a --gpu-map option which will allow arbitrarily mapping ADL devices to OpenCL devices for instances where association by enumeration alone fails.
2012-04-23 17:40:47 +10:00
Con Kolivas
99331991ba
Increase upper limit on number of extra items to queue as some FPGA code can't yet reliably keep many devices busy.
2012-04-23 09:53:40 +10:00
Con Kolivas
d6edd07c4a
Display configuration file information when -c option is passed and only when file exists on loading default config file.
2012-04-22 21:09:36 +10:00
Con Kolivas
6ffdbc3aeb
Display configuration file loaded, if any, and debug output if configuration file parsing failed.
2012-04-22 20:50:50 +10:00
Con Kolivas
cfe3eb0b8a
Merge branch 'master' into ztex
...
Conflicts:
configure.ac
2012-04-22 10:43:31 +10:00
Luke Dashjr
0d92069760
Merge branch 'master' into align_temps
...
Conflicts:
cgminer.c
2012-04-21 03:32:57 -04:00
Luke Dashjr
657716e563
Merge branch 'master' into ztex
2012-04-21 02:56:20 -04:00
Con Kolivas
7b947882fe
Merge pull request #157 from luke-jr/unify_drivers
...
Unify drivers as driver-*.c and add driver name to API
2012-04-20 23:41:46 -07:00
Con Kolivas
86671f80a8
Make the status window and log window as large as can fit on startup, rechecking to see if it can be enlarged after the fact. This allows any number of devices to be displayed provided the window is made long enough without corrupting the output.
2012-04-21 16:39:14 +10:00
Luke Dashjr
b8778839e9
Merge branch 'master' into unify_drivers
...
Conflicts:
cgminer.c
2012-04-21 02:36:19 -04:00
Con Kolivas
c7cc2e4226
Merge branch 'master' into ztex
2012-04-21 14:03:41 +10:00
Con Kolivas
e08936c3fb
Merge pull request #166 from kanoi/master
...
api.c escape required characters in return strings + pools returns the username
2012-04-20 15:00:39 -07:00
Kano
2e1d2017de
API add removepool like the screen interface
2012-04-21 03:15:41 +10:00
Con Kolivas
46faefbe82
Merge branch 'ztex-master' of https://github.com/nelisky/cgminer into ztex
2012-04-20 21:20:03 +10:00
ckolivas
b80d22b9d2
Increase maximum number of displayed devices to 14, beyond which the screen becomes corrupted.
2012-04-20 14:24:58 +10:00
nelisky
7fe7d18dba
removing unused libusb_context pointer
2012-04-16 14:14:52 -07:00
nelisky
608a520573
Tweaks to make ztex work on a tp-link router with openwrt
2012-04-16 11:34:54 -07:00
nelisky
c3bda2b709
adding path to libusb include
2012-04-16 04:07:19 -07:00
nelisky
99a188f94f
initial commit with some support for ztex 1.15x board.
...
This version is just a rough draft, but it does alredy mine.
Conflicts:
cgminer.c
configure.ac
2012-04-16 04:01:51 -07:00
Con Kolivas
7c6090fbaf
Cache the initial arguments passed to cgminer and implement an attempted restart option from the settings menu.
2012-04-14 15:48:31 +10:00
Con Kolivas
f3e4305620
Disable per-device status lines when there are more than 8 devices since screen output will be corrupted, enumerating them to the log output instead at startup.
2012-04-14 14:11:58 +10:00
Con Kolivas
dceaa71a7b
Make sure to disable devices with any status not being DEV_ENABLED to ensure that thermal cutoff code works as it was setting the status to DEV_RECOVER.
2012-04-14 00:56:31 +10:00
Con Kolivas
0a4a2d9d65
Damping small changes in hashrate so dramatically has the tendency to always make the hashrate underread so go back to gentle damping instead.
2012-03-31 14:39:40 +11:00
Con Kolivas
c99c09d389
Merge pull request #161 from kanoi/master
...
When using '-m' on linux, send the forked process a SIGTERM on exit
2012-03-30 06:25:38 -07:00
Con Kolivas
7f64adc473
Merge pull request #160 from luke-jr/bugfix_realquiet_2
...
Bugfix: Skip enabling curses, if --real-quiet or listing devices
2012-03-30 06:25:07 -07:00
Kano
f9af5acf13
When using '-m' on linux, send the forked process a SIGTERM on exit
2012-03-30 22:28:43 +11:00
Con Kolivas
88ff55e70e
Use a time constant 0.63 for when large changes in hashrate are detected to damp change in case the large change is an aliasing artefact instead of a real change.
2012-03-29 21:02:42 +11:00
Con Kolivas
a1879c8057
Only increment stale counter if the detected stales are discarded.
2012-03-29 20:53:16 +11:00
ckolivas
35de9d1e07
Use slightly more damping on the decay time function in the never-ending quest to smooth off the hashmeter.
2012-03-29 09:35:48 +11:00
Con Kolivas
eb4233d500
Merge pull request #156 from luke-jr/ignore_redundant
...
Ignore redundant-with-build options
2012-03-28 04:26:20 -07:00
Con Kolivas
7458927f02
Merge pull request #155 from luke-jr/no_curses
...
Make curses TUI support optional at compile-time.
2012-03-28 04:25:54 -07:00
Con Kolivas
2beb3500d4
Merge pull request #153 from kanoi/master
...
Add API support for Icarus and Bitforce + Icarus fixes ++
2012-03-28 04:24:41 -07:00
Con Kolivas
ef1eafa40a
Provide locking around updates of cgpu hashrates as well to prevent multiple threads accessing data fields on the same device.
2012-03-28 21:58:04 +11:00
Con Kolivas
fa5e0675d6
Display the beginning of the new block in verbose mode in the logs.
2012-03-28 20:32:49 +11:00
Kano
eeec98098f
code changes for supporting a simple device history
2012-03-23 01:50:45 +11:00
Luke Dashjr
f05a319e01
CGPU API for device names
2012-03-18 21:32:01 -04:00
Luke Dashjr
303dbf4664
Abstract add_cgpu function, to handle device id numbering and devices array
2012-03-18 20:09:03 -04:00
Luke Dashjr
c739d0dc15
Merge branch 'bugfix_realquiet' into bugfix_realquiet_2
...
Conflicts:
cgminer.c
2012-03-13 13:11:55 -04:00
Luke Dashjr
03c94c02e9
Bugfix: Skip enabling curses, if --real-quiet or listing devices
2012-03-13 13:10:31 -04:00
Luke Dashjr
e131dfab31
Unify drivers as driver-*.c and add driver name to API
2012-03-13 12:18:23 -04:00
Luke Dashjr
b6ae200dad
Ignore reduntant-with-build options --disable-gpu, --no-adl, and --no-restart
2012-03-13 09:13:19 -04:00
Luke Dashjr
ed8382c88d
Make curses TUI support optional at compile-time.
2012-03-12 18:38:45 -04:00
Luke Dashjr
3a003b9ab8
Bugfix: Allow enabling CPU even without OpenCL support
2012-02-25 14:43:28 -05:00
Con Kolivas
daf1eff13c
Change failed-to-mine number of requested shares messge to avoid segfault on recursive calling of quit().
2012-02-26 00:46:19 +11:00
Con Kolivas
0412ac7c21
Only send out extra longpoll requests if we want longpolls.
2012-02-24 14:14:05 +11:00
Con Kolivas
dbb04a6922
Increase the speed of hashrate adaptation.
2012-02-24 14:14:05 +11:00