Con Kolivas
1b7db5bc9c
thr is always NULL going into queue_request now.
2012-08-27 09:47:55 +10:00
Con Kolivas
0e0093e602
Select pool regardless of whether we're lagging or not, and don't queue another request in switch pool to avoid infinite recursion.
2012-08-24 01:23:54 +10:00
Con Kolivas
7992e5f3c8
Carry the needed bool over the work command queue.
2012-08-24 00:41:14 +10:00
Con Kolivas
37fa7d36d4
Move the decision to queue further work upstream before threads are spawned based on fine grained per-pool stats and increment the queued count immediately.
2012-08-24 00:35:26 +10:00
Con Kolivas
618b3e8b11
Track queued and staged per pool once again for future use.
2012-08-23 23:50:38 +10:00
Con Kolivas
4ca288e820
Limit queued_getworks to double the expected queued maximum rather than factoring in number of pools.
2012-08-23 16:55:14 +10:00
Con Kolivas
ad90269508
Minimise the number of getwork threads we generate.
2012-08-23 16:33:24 +10:00
Con Kolivas
0feb679b67
Only keep the last 6 blocks in the uthash database to keep memory usage constant. Storing more is unhelpful anyway.
2012-08-23 12:19:23 +10:00
Con Kolivas
b74b54d95b
Check we haven't staged work while waiting for a curl entry before proceeding.
2012-08-23 11:09:09 +10:00
Con Kolivas
61df3013a8
Ignore the submit_fail flag when deciding whether to recruit more curls or not since we have upper bounds on how many curls can be recruited, this test is redundant and can lead to problems.
2012-08-22 23:03:17 +10:00
ckolivas
edd9b81622
Do not add time to dynamic opencl calculations over a getwork.
2012-08-22 10:07:20 +10:00
Con Kolivas
9de3a264fc
Increase max curls to number of mining threads + queue * 2, accounting for up and downstream comms.
2012-08-21 22:51:34 +10:00
Con Kolivas
3ab5dba67e
Queue enough requests to get started.
2012-08-21 22:50:09 +10:00
Con Kolivas
3ebe8e8c77
Revert "Scale maximum number of curls up according to work submission rate."
...
This reverts commit 1dff48e759
.
Did not increase staged work even though it decreased queues.
2012-08-21 22:09:11 +10:00
Con Kolivas
3ceb57b8f6
There is no point trying to clone_work in get_work() any more since we clone on every get_work_thread where possible.
2012-08-21 21:54:33 +10:00
Con Kolivas
787e40a7cc
There is no point subtracting 1 from maxq in get_work_thread.
2012-08-21 21:53:35 +10:00
Con Kolivas
1dff48e759
Scale maximum number of curls up according to work submission rate.
2012-08-21 21:50:20 +10:00
Con Kolivas
56be75228e
Roll back to 45f0ac7b48
2012-08-21 21:22:26 +10:00
Con Kolivas
c1886c9c99
Assume we need a full allotment of work after lp and make clone_work clone_lpwork only.
2012-08-21 21:13:14 +10:00
Con Kolivas
82fa6e25d5
There is no point running through clone_work from get_work() now that cloning is done from the get_work_thread.
2012-08-21 21:11:22 +10:00
Con Kolivas
caa266ca3b
Make opt_queue a function of mining threads in clone_work as well.
2012-08-21 21:10:23 +10:00
Con Kolivas
652efc6939
opt_queue should be a function of the number of mining threads.
2012-08-21 21:08:17 +10:00
Con Kolivas
8ed381f78a
Only set lagging flag once there are no staged work items.
2012-08-21 19:47:30 +10:00
Con Kolivas
f5ac84b804
select_pool does not switch back to the primary once lagging is disabled.
2012-08-21 19:32:05 +10:00
Con Kolivas
af32fb9a3d
Merge pull request #301 from kanoi/minerphp
...
API new command 'coin' with mining information
2012-08-21 00:28:50 -07:00
ckolivas
f71d635f0f
Free work before retrying in get_work_thread.
2012-08-21 17:02:11 +10:00
Con Kolivas
b3cfe47222
Increment total work counter under mutex lock.
2012-08-20 22:24:28 +10:00
Con Kolivas
e8daf1d8f2
Increment the queued count after the curl is popped in case there's a delay waiting on curls and we think we've queued work when in fact we're waiting on curls.
2012-08-20 16:19:28 +10:00
Kano
b3e9858c9f
API new command 'coin' with mining information
2012-08-20 16:07:20 +10:00
Con Kolivas
08948e02f3
Increase curl reaping time to 5 minutes since comms between curl requests can be 2 mins apart with lots of rolltime.
2012-08-20 16:02:32 +10:00
Con Kolivas
51d485e236
No need for extra variable in hash_push.
2012-08-20 16:02:32 +10:00
Con Kolivas
c01284fb07
Remove short options -r and -R to allow them to be reused and remove readme entries for deprecated options.
2012-08-20 11:58:05 +10:00
Con Kolivas
8fc701dd76
Deprecate the opt_fail_pause parameter, leaving a null placeholder for existing configurations.
2012-08-20 11:18:37 +10:00
Con Kolivas
35cb7fd101
Don't pause after failed getwork, set lagging flag and reassess.
2012-08-20 11:16:38 +10:00
Con Kolivas
69d8c339aa
Add message to share if it's a resubmit.
2012-08-20 11:08:56 +10:00
Con Kolivas
b622e97e3e
We should not be pausing in trying to resubmit shares.
2012-08-20 11:03:28 +10:00
Con Kolivas
a9278ce944
Get rid of the extending fail pause on failed connects since we discard work after a period.
2012-08-20 11:00:10 +10:00
Con Kolivas
34b8dcb7bc
get_work always returns true so turn it into a void function.
2012-08-20 10:58:12 +10:00
Con Kolivas
260b1c87c0
get_work never returns false so get rid of fail pause loop.
2012-08-20 10:54:59 +10:00
Con Kolivas
4df9c387f0
Get rid of pause and retry from get_upstream_work so we only do it from one place.
2012-08-20 10:53:42 +10:00
Con Kolivas
1f295cd7fa
Deprecate the opt_retries feature as no one wants cgminer to automatically abort. Leave a null placeholder for configurations that still have it.
2012-08-20 10:43:50 +10:00
Con Kolivas
f6d2853c9b
Summary layout difference.
2012-08-18 19:53:43 +10:00
Con Kolivas
ed3eb5771a
Introduce a new statistic, Work Utility, which is the number of difficulty 1 shares solved per minute. This is useful for measuring a relative rate of work that is independent of reject rate and target difficulty.
2012-08-18 15:44:48 +10:00
Con Kolivas
26ab7346e3
Implement a new pool strategy, BALANCE, which monitors work performed per pool as a rolling average every 10 minutes to try and distribute work evenly over all the pools.
...
Do this by monitoring diff1 solutions to allow different difficulty target pools to be treated equally, along with solo mining.
Update the documentation to describe this strategy and more accurately describe the load-balance one.
2012-08-18 15:27:53 +10:00
Con Kolivas
d8c76bbd08
Getwork fail was not being detected. Remove a vast amount of unused variables and functions used in the old queue request mechanism and redefine the getfail testing.
2012-08-18 11:26:11 +10:00
Con Kolivas
8fa708093b
Don't try to start devices that don't support scrypt when scrypt mining.
2012-08-18 11:07:32 +10:00
Con Kolivas
b814b42c7f
Consider us lagging only once our queue is almost full and no staged work.
2012-08-18 10:38:02 +10:00
Con Kolivas
b60f9da4a5
Simplify the enough work algorithm dramatically.
2012-08-18 10:37:05 +10:00
Con Kolivas
0e56dffd92
Only queue from backup pools once we have nothing staged.
2012-08-18 10:37:05 +10:00
Con Kolivas
e16b7566bd
Don't keep queueing work indefinitely if we're in opt failover mode.
2012-08-18 10:37:05 +10:00
Con Kolivas
6d1949e694
Make sure we don't opt out of queueing more work if all the queued work is from one pool.
2012-08-18 10:37:05 +10:00
Con Kolivas
a5f7b953fe
Set lagging flag if we're on the last of our staged items.
2012-08-18 10:37:05 +10:00
Con Kolivas
ee9e621e1c
Reinstate clone on grabbing work.
2012-08-18 10:37:05 +10:00
Con Kolivas
55f7c14982
Grab clones from hashlist wherever possible first.
2012-08-18 10:37:05 +10:00
Con Kolivas
c3e32274ee
Cull all the early queue requests since we request every time work is popped now.
2012-08-18 10:37:05 +10:00
Con Kolivas
0fbd60ae37
Keep track of staged rollable work item counts to speed up clone_available.
2012-08-18 10:37:05 +10:00
Con Kolivas
83b9ddfea4
Make expiry on should_roll to 2/3 time instead of share duration since some hardware will have very fast share times.
2012-08-18 10:37:05 +10:00
Con Kolivas
8697d6a2ce
Do the cheaper comparison first.
2012-08-18 10:37:05 +10:00
Con Kolivas
381c56f811
Check that we'll get 1 shares' worth of work time by rolling before saying we should roll the work.
2012-08-18 10:37:05 +10:00
Con Kolivas
afcfea15a7
Simplify all those total_secs usages by initialising it to 1 second.
2012-08-18 10:37:05 +10:00
Con Kolivas
5fadfdb219
Overlap queued decrementing with staged incrementing.
2012-08-18 10:37:05 +10:00
Con Kolivas
9f1d9ce3b7
Artificially set the pool lagging flag on pool switch in failover only mode as well.
2012-08-18 10:37:05 +10:00
Con Kolivas
a6b97327e1
Artificially set the pool lagging flag on work restart to avoid messages about slow pools after every longpoll.
2012-08-18 10:37:05 +10:00
Con Kolivas
44e81218fd
Factor in opt_queue value into enough work queued or staged.
2012-08-18 10:37:05 +10:00
Con Kolivas
611f1cec7c
Roll work whenever we can on getwork.
2012-08-18 10:37:05 +10:00
Con Kolivas
fd0be1bb51
Queue requests for getwork regardless and test whether we should send for a getwork from the getwork thread itself.
2012-08-18 10:37:04 +10:00
Con Kolivas
7d77c01619
Get rid of age_work().
2012-08-18 10:37:04 +10:00
Con Kolivas
d1508bd40e
Merge pull request #296 from kanoi/api
...
API allow display/change failover-only setting (API v1.16)
2012-08-14 14:45:34 -07:00
Kano
95dff7363e
API allow display/change failover-only setting
2012-08-14 12:54:27 +10:00
Con Kolivas
8e20456bc0
Check we are not lagging as well as there is enough work in getwork.
2012-08-14 09:13:59 +10:00
Con Kolivas
00691ababf
Merge pull request #292 from kanoi/main
...
Escape " and \ when writing json config file
2012-08-11 20:42:05 -07:00
Con Kolivas
d66742a8c1
Minimise locking and unlocking when getting counts by reusing shared mutex lock functions.
2012-08-12 11:04:51 +10:00
Con Kolivas
c91a95459b
Avoid getting more work if by the time the getwork thread is spawned we find ourselves with enough work.
2012-08-12 10:55:18 +10:00
Con Kolivas
f27bcb8ee5
Going back to e68ecf5eb2
2012-08-12 10:45:59 +10:00
Con Kolivas
c892ded6e0
Make sure there are true pending staged work items as well in failover only mode.
2012-08-12 10:40:58 +10:00
Con Kolivas
61003df49f
In failover-only mode we need to queue enough work for the local pool and ignore the total queued count.
2012-08-12 10:33:26 +10:00
Con Kolivas
8aa61f6626
Make sure we have work from the current pool somewhere in the queue in case the queue is full of requests from a pool that has just died.
2012-08-11 16:47:49 +10:00
Con Kolivas
c0aaf56a8d
Since all the counts use the same mutex, grab it only once.
2012-08-11 16:11:53 +10:00
Con Kolivas
4f9394be81
When popping work, grab cloned work first if possible since original work can be reused to make further clones.
2012-08-11 14:39:35 +10:00
Con Kolivas
8085ae6854
Further simplify the queue request mechanism.
2012-08-11 14:04:55 +10:00
Con Kolivas
f83863a996
Keep total queued count as a fake pending staged count to account for the period a queue is in flight before it is staged.
2012-08-11 13:30:41 +10:00
Con Kolivas
e47dc87355
Clone work at the time of requesting it if an existing work item can be rolled.
2012-08-10 21:44:15 +10:00
Con Kolivas
e68ecf5eb2
Queue one request for each staged request removed, keeping the staged request count optimal at all times.
2012-08-10 20:18:04 +10:00
Kano
52e5524d7f
Escape " and \ when writing json config file
2012-08-09 18:01:35 +10:00
ckolivas
3dd1658e1f
We may as well leave one curl still available per pool instead of reaping the last one.
2012-08-07 12:10:01 +10:00
ckolivas
c7bcad653b
Need to recheck the pool->curls count on regaining the pool lock after the pthread conditional wait returns.
2012-08-07 11:59:54 +10:00
ckolivas
ad8c4b7755
Revert "Only add to the pool curlring and increment the counter under mutex lock."
...
This reverts commit 8897e06575
.
Wrong fix. Recursive locking now.
2012-08-07 11:52:37 +10:00
ckolivas
145f04ccc7
Display reaped debug message outside mutex lock to avoid recursive locking.
2012-08-07 11:10:59 +10:00
ckolivas
8897e06575
Only add to the pool curlring and increment the counter under mutex lock.
2012-08-07 11:05:23 +10:00
Con Kolivas
25fd6cd0fd
Correct writing of scrypt parameters to config file based on command line parameters only.
2012-08-05 15:35:37 +10:00
Con Kolivas
ac131d3138
Merge pull request #279 from tyeken8/tydus
...
Add scrypt support while writing conf
2012-08-04 22:34:47 -07:00
Con Kolivas
7611499b11
Queue a request on pool switch in case we have no work from the new pool yet.
2012-08-05 14:57:46 +10:00
Con Kolivas
4efa31d2e7
Display failover only mode in pool menu and allow it to be toggled live.
2012-08-05 14:44:11 +10:00
Con Kolivas
1a041668a5
Reinstate check for system queueing lag when the current pool's queue is maxed out, there is no staged work, and the work is needed now.
2012-08-05 14:37:49 +10:00
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