cgminer.c


Log

Author Commit Date CI Message
Con Kolivas 0e0093e6 2012-08-24T01:23:54 Select pool regardless of whether we're lagging or not, and don't queue another request in switch pool to avoid infinite recursion.
Con Kolivas 7992e5f3 2012-08-24T00:41:14 Carry the needed bool over the work command queue.
Con Kolivas 37fa7d36 2012-08-24T00:35:26 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.
Con Kolivas 618b3e8b 2012-08-23T23:50:38 Track queued and staged per pool once again for future use.
Con Kolivas 4ca288e8 2012-08-23T16:55:14 Limit queued_getworks to double the expected queued maximum rather than factoring in number of pools.
Con Kolivas ad902695 2012-08-23T16:33:24 Minimise the number of getwork threads we generate.
Con Kolivas 0feb679b 2012-08-23T12:19:23 Only keep the last 6 blocks in the uthash database to keep memory usage constant. Storing more is unhelpful anyway.
Con Kolivas b74b54d9 2012-08-23T11:09:09 Check we haven't staged work while waiting for a curl entry before proceeding.
Con Kolivas 61df3013 2012-08-22T23:03:17 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.
ckolivas edd9b816 2012-08-22T10:07:20 Do not add time to dynamic opencl calculations over a getwork.
Con Kolivas 9de3a264 2012-08-21T22:51:34 Increase max curls to number of mining threads + queue * 2, accounting for up and downstream comms.
Con Kolivas 3ab5dba6 2012-08-21T22:50:09 Queue enough requests to get started.
Con Kolivas 3ebe8e8c 2012-08-21T22:09:11 Revert "Scale maximum number of curls up according to work submission rate." This reverts commit 1dff48e7595d4b407e6b31ecc5278455858157ea. Did not increase staged work even though it decreased queues.
Con Kolivas 3ceb57b8 2012-08-21T21:54:33 There is no point trying to clone_work in get_work() any more since we clone on every get_work_thread where possible.
Con Kolivas 787e40a7 2012-08-21T21:53:35 There is no point subtracting 1 from maxq in get_work_thread.
Con Kolivas 1dff48e7 2012-08-21T21:50:20 Scale maximum number of curls up according to work submission rate.
Con Kolivas 56be7522 2012-08-21T21:22:26 Roll back to 45f0ac7b482abe9d9d7c4644c286df6e70924145
Con Kolivas c1886c9c 2012-08-21T21:13:14 Assume we need a full allotment of work after lp and make clone_work clone_lpwork only.
Con Kolivas 82fa6e25 2012-08-21T21:11:22 There is no point running through clone_work from get_work() now that cloning is done from the get_work_thread.
Con Kolivas caa266ca 2012-08-21T21:10:23 Make opt_queue a function of mining threads in clone_work as well.
Con Kolivas 652efc69 2012-08-21T21:08:17 opt_queue should be a function of the number of mining threads.
Con Kolivas 8ed381f7 2012-08-21T19:47:30 Only set lagging flag once there are no staged work items.
Con Kolivas f5ac84b8 2012-08-21T19:32:05 select_pool does not switch back to the primary once lagging is disabled.
Con Kolivas af32fb9a 2012-08-21T00:28:50 Merge pull request #301 from kanoi/minerphp API new command 'coin' with mining information
ckolivas f71d635f 2012-08-21T17:02:11 Free work before retrying in get_work_thread.
Con Kolivas b3cfe472 2012-08-20T22:24:28 Increment total work counter under mutex lock.
Con Kolivas e8daf1d8 2012-08-20T12:45:07 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.
Kano b3e9858c 2012-08-20T16:07:20 API new command 'coin' with mining information
Con Kolivas 08948e02 2012-08-20T13:33:08 Increase curl reaping time to 5 minutes since comms between curl requests can be 2 mins apart with lots of rolltime.
Con Kolivas 51d485e2 2012-08-20T12:31:43 No need for extra variable in hash_push.
Con Kolivas c01284fb 2012-08-20T11:58:05 Remove short options -r and -R to allow them to be reused and remove readme entries for deprecated options.
Con Kolivas 8fc701dd 2012-08-20T11:18:37 Deprecate the opt_fail_pause parameter, leaving a null placeholder for existing configurations.
Con Kolivas 35cb7fd1 2012-08-20T11:16:38 Don't pause after failed getwork, set lagging flag and reassess.
Con Kolivas 69d8c339 2012-08-20T11:08:56 Add message to share if it's a resubmit.
Con Kolivas b622e97e 2012-08-20T11:03:28 We should not be pausing in trying to resubmit shares.
Con Kolivas a9278ce9 2012-08-20T11:00:10 Get rid of the extending fail pause on failed connects since we discard work after a period.
Con Kolivas 34b8dcb7 2012-08-20T10:58:12 get_work always returns true so turn it into a void function.
Con Kolivas 260b1c87 2012-08-20T10:54:59 get_work never returns false so get rid of fail pause loop.
Con Kolivas 4df9c387 2012-08-20T10:53:42 Get rid of pause and retry from get_upstream_work so we only do it from one place.
Con Kolivas 1f295cd7 2012-08-20T10:43:50 Deprecate the opt_retries feature as no one wants cgminer to automatically abort. Leave a null placeholder for configurations that still have it.
Con Kolivas f6d2853c 2012-08-18T19:53:43 Summary layout difference.
Con Kolivas ed3eb577 2012-08-18T15:44:48 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.
Con Kolivas 26ab7346 2012-08-18T15:27:53 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.
Con Kolivas d8c76bbd 2012-08-18T11:26:11 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.
Con Kolivas 8fa70809 2012-08-18T11:07:32 Don't try to start devices that don't support scrypt when scrypt mining.
Con Kolivas b814b42c 2012-08-16T18:55:09 Consider us lagging only once our queue is almost full and no staged work.
Con Kolivas b60f9da4 2012-08-16T17:24:04 Simplify the enough work algorithm dramatically.
Con Kolivas 0e56dffd 2012-08-16T17:01:25 Only queue from backup pools once we have nothing staged.
Con Kolivas e16b7566 2012-08-16T15:49:11 Don't keep queueing work indefinitely if we're in opt failover mode.
Con Kolivas 6d1949e6 2012-08-16T15:46:41 Make sure we don't opt out of queueing more work if all the queued work is from one pool.
Con Kolivas a5f7b953 2012-08-16T11:47:00 Set lagging flag if we're on the last of our staged items.
Con Kolivas ee9e621e 2012-08-16T10:59:49 Reinstate clone on grabbing work.
Con Kolivas 55f7c149 2012-08-16T10:55:57 Grab clones from hashlist wherever possible first.
Con Kolivas c3e32274 2012-08-16T10:41:01 Cull all the early queue requests since we request every time work is popped now.
Con Kolivas 0fbd60ae 2012-08-16T10:24:52 Keep track of staged rollable work item counts to speed up clone_available.
Con Kolivas 83b9ddfe 2012-08-16T10:18:30 Make expiry on should_roll to 2/3 time instead of share duration since some hardware will have very fast share times.
Con Kolivas 8697d6a2 2012-08-16T10:16:58 Do the cheaper comparison first.
Con Kolivas 381c56f8 2012-08-16T09:53:36 Check that we'll get 1 shares' worth of work time by rolling before saying we should roll the work.
Con Kolivas afcfea15 2012-08-16T09:30:49 Simplify all those total_secs usages by initialising it to 1 second.
Con Kolivas 5fadfdb2 2012-08-16T09:19:45 Overlap queued decrementing with staged incrementing.
Con Kolivas 9f1d9ce3 2012-08-16T00:16:13 Artificially set the pool lagging flag on pool switch in failover only mode as well.
Con Kolivas a6b97327 2012-08-16T00:09:50 Artificially set the pool lagging flag on work restart to avoid messages about slow pools after every longpoll.
Con Kolivas 44e81218 2012-08-15T22:56:18 Factor in opt_queue value into enough work queued or staged.
Con Kolivas 611f1cec 2012-08-15T22:48:08 Roll work whenever we can on getwork.
Con Kolivas fd0be1bb 2012-08-15T22:28:09 Queue requests for getwork regardless and test whether we should send for a getwork from the getwork thread itself.
Con Kolivas 7d77c016 2012-08-15T21:26:50 Get rid of age_work().
Con Kolivas d1508bd4 2012-08-14T14:45:34 Merge pull request #296 from kanoi/api API allow display/change failover-only setting (API v1.16)
Kano 95dff736 2012-08-14T12:54:27 API allow display/change failover-only setting
Con Kolivas 8e20456b 2012-08-14T09:13:59 Check we are not lagging as well as there is enough work in getwork.
Con Kolivas 00691aba 2012-08-11T20:42:05 Merge pull request #292 from kanoi/main Escape " and \ when writing json config file
Con Kolivas d66742a8 2012-08-12T11:04:51 Minimise locking and unlocking when getting counts by reusing shared mutex lock functions.
Con Kolivas c91a9545 2012-08-12T10:55:18 Avoid getting more work if by the time the getwork thread is spawned we find ourselves with enough work.
Con Kolivas f27bcb8e 2012-08-12T10:45:59 Going back to e68ecf5eb275e1cc2dc22c7db35b0bd8d9c799de
Con Kolivas c892ded6 2012-08-12T10:40:58 Make sure there are true pending staged work items as well in failover only mode.
Con Kolivas 61003df4 2012-08-12T10:33:26 In failover-only mode we need to queue enough work for the local pool and ignore the total queued count.
Con Kolivas 8aa61f66 2012-08-11T16:47:49 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.
Con Kolivas c0aaf56a 2012-08-11T16:11:53 Since all the counts use the same mutex, grab it only once.
Con Kolivas 4f9394be 2012-08-11T14:39:35 When popping work, grab cloned work first if possible since original work can be reused to make further clones.
Con Kolivas 8085ae68 2012-08-11T14:04:55 Further simplify the queue request mechanism.
Con Kolivas f83863a9 2012-08-11T13:30:41 Keep total queued count as a fake pending staged count to account for the period a queue is in flight before it is staged.
Con Kolivas e47dc873 2012-08-10T21:44:15 Clone work at the time of requesting it if an existing work item can be rolled.
Con Kolivas e68ecf5e 2012-08-10T20:18:04 Queue one request for each staged request removed, keeping the staged request count optimal at all times.
Kano 52e5524d 2012-08-09T18:01:35 Escape " and \ when writing json config file
ckolivas 3dd1658e 2012-08-07T12:10:01 We may as well leave one curl still available per pool instead of reaping the last one.
ckolivas c7bcad65 2012-08-07T11:59:54 Need to recheck the pool->curls count on regaining the pool lock after the pthread conditional wait returns.
ckolivas ad8c4b77 2012-08-07T11:52:37 Revert "Only add to the pool curlring and increment the counter under mutex lock." This reverts commit 8897e0657507072448f4e951ce1caadca15b4b30. Wrong fix. Recursive locking now.
ckolivas 145f04cc 2012-08-07T11:10:59 Display reaped debug message outside mutex lock to avoid recursive locking.
ckolivas 8897e065 2012-08-07T11:05:23 Only add to the pool curlring and increment the counter under mutex lock.
Con Kolivas 25fd6cd0 2012-08-05T15:35:37 Correct writing of scrypt parameters to config file based on command line parameters only.
Con Kolivas ac131d31 2012-08-04T22:34:47 Merge pull request #279 from tyeken8/tydus Add scrypt support while writing conf
Con Kolivas 7611499b 2012-08-05T14:57:46 Queue a request on pool switch in case we have no work from the new pool yet.
Con Kolivas 4efa31d2 2012-08-05T14:44:11 Display failover only mode in pool menu and allow it to be toggled live.
Con Kolivas 1a041668 2012-08-05T14:37:49 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.
Con Kolivas 499c594c 2012-08-05T14:29:21 There is no need for pool active testing to be mandatory any more with queue request changes.
Con Kolivas e4326e3c 2012-08-05T14:24:31 Fix harmless warnings.
Con Kolivas 9a45a6d9 2012-08-05T14:19:49 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().
Con Kolivas bf9c3247 2012-08-05T13:40:46 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.
Con Kolivas b66e0241 2012-08-04T09:52:18 Queue an extra request whenever staged work drops below mining thread count in hash_pop.
Con Kolivas b70ec3cb 2012-08-02T17:17:53 Merge pull request #283 from kanoi/icarus ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
Con Kolivas 15dc4bb3 2012-08-03T10:10:53 Scrypt mining does not support block testing yet so don't try to print it.