444 Commits (26ab7346e3abd381f0444e7e8b0a4e5496142bc9)

Author SHA1 Message Date
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. 12 years ago
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. 12 years ago
Con Kolivas 8fa708093b Don't try to start devices that don't support scrypt when scrypt mining. 12 years ago
Con Kolivas b814b42c7f Consider us lagging only once our queue is almost full and no staged work. 12 years ago
Con Kolivas b60f9da4a5 Simplify the enough work algorithm dramatically. 12 years ago
Con Kolivas 0e56dffd92 Only queue from backup pools once we have nothing staged. 12 years ago
Con Kolivas e16b7566bd Don't keep queueing work indefinitely if we're in opt failover mode. 12 years ago
Con Kolivas 6d1949e694 Make sure we don't opt out of queueing more work if all the queued work is from one pool. 12 years ago
Con Kolivas a5f7b953fe Set lagging flag if we're on the last of our staged items. 12 years ago
Con Kolivas ee9e621e1c Reinstate clone on grabbing work. 12 years ago
Con Kolivas 55f7c14982 Grab clones from hashlist wherever possible first. 12 years ago
Con Kolivas c3e32274ee Cull all the early queue requests since we request every time work is popped now. 12 years ago
Con Kolivas 0fbd60ae37 Keep track of staged rollable work item counts to speed up clone_available. 12 years ago
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. 12 years ago
Con Kolivas 8697d6a2ce Do the cheaper comparison first. 12 years ago
Con Kolivas 381c56f811 Check that we'll get 1 shares' worth of work time by rolling before saying we should roll the work. 12 years ago
Con Kolivas afcfea15a7 Simplify all those total_secs usages by initialising it to 1 second. 12 years ago
Con Kolivas 5fadfdb219 Overlap queued decrementing with staged incrementing. 12 years ago
Con Kolivas 9f1d9ce3b7 Artificially set the pool lagging flag on pool switch in failover only mode as well. 12 years ago
Con Kolivas a6b97327e1 Artificially set the pool lagging flag on work restart to avoid messages about slow pools after every longpoll. 12 years ago
Con Kolivas 44e81218fd Factor in opt_queue value into enough work queued or staged. 12 years ago
Con Kolivas 611f1cec7c Roll work whenever we can on getwork. 12 years ago
Con Kolivas fd0be1bb51 Queue requests for getwork regardless and test whether we should send for a getwork from the getwork thread itself. 12 years ago
Con Kolivas 7d77c01619 Get rid of age_work(). 12 years ago
Kano 95dff7363e API allow display/change failover-only setting 12 years ago
Con Kolivas 8e20456bc0 Check we are not lagging as well as there is enough work in getwork. 12 years ago
Con Kolivas d66742a8c1 Minimise locking and unlocking when getting counts by reusing shared mutex lock functions. 12 years ago
Con Kolivas c91a95459b Avoid getting more work if by the time the getwork thread is spawned we find ourselves with enough work. 12 years ago
Con Kolivas f27bcb8ee5 Going back to e68ecf5eb2 12 years ago
Con Kolivas c892ded6e0 Make sure there are true pending staged work items as well in failover only mode. 12 years ago
Con Kolivas 61003df49f In failover-only mode we need to queue enough work for the local pool and ignore the total queued count. 12 years ago
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. 12 years ago
Con Kolivas c0aaf56a8d Since all the counts use the same mutex, grab it only once. 12 years ago
Con Kolivas 4f9394be81 When popping work, grab cloned work first if possible since original work can be reused to make further clones. 12 years ago
Con Kolivas 8085ae6854 Further simplify the queue request mechanism. 12 years ago
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. 12 years ago
Con Kolivas e47dc87355 Clone work at the time of requesting it if an existing work item can be rolled. 12 years ago
Con Kolivas e68ecf5eb2 Queue one request for each staged request removed, keeping the staged request count optimal at all times. 12 years ago
Kano 52e5524d7f Escape " and \ when writing json config file 12 years ago
ckolivas 3dd1658e1f We may as well leave one curl still available per pool instead of reaping the last one. 12 years ago
ckolivas c7bcad653b Need to recheck the pool->curls count on regaining the pool lock after the pthread conditional wait returns. 12 years ago
ckolivas ad8c4b7755 Revert "Only add to the pool curlring and increment the counter under mutex lock." 12 years ago
ckolivas 145f04ccc7 Display reaped debug message outside mutex lock to avoid recursive locking. 12 years ago
ckolivas 8897e06575 Only add to the pool curlring and increment the counter under mutex lock. 12 years ago
Con Kolivas 25fd6cd0fd Correct writing of scrypt parameters to config file based on command line parameters only. 12 years ago
Con Kolivas 7611499b11 Queue a request on pool switch in case we have no work from the new pool yet. 12 years ago
Con Kolivas 4efa31d2e7 Display failover only mode in pool menu and allow it to be toggled live. 12 years ago
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. 12 years ago
Con Kolivas 499c594cba There is no need for pool active testing to be mandatory any more with queue request changes. 12 years ago
Con Kolivas e4326e3ca2 Fix harmless warnings. 12 years ago