Con Kolivas
8feb302945
Avoid recursive locking of the stgd lock.
2012-12-09 15:38:44 +11:00
Con Kolivas
c59aeb56ff
Revert "Wake the getwork scheduler after every restart threads."
...
This reverts commit 5b03e7497db5cc0cab7d2b788168c2d3f2b0fc87.
Redundant.
2012-12-09 15:29:06 +11:00
Con Kolivas
31f75098b5
Selectively discard all work items if a longpoll or stratum restart is received without a new block to work on.
2012-12-09 15:28:30 +11:00
Con Kolivas
5b03e7497d
Wake the getwork scheduler after every restart threads.
2012-12-09 15:11:49 +11:00
Con Kolivas
01b9c6dfbf
Make main() the getwork scheduler once everything is set up, so that all app exits use the kill_work and quit paths.
2012-12-09 08:22:13 +11:00
Con Kolivas
30f6840b5c
Only consider work stale for stratum of different job_id if it's not a share.
2012-12-08 22:08:23 +11:00
Con Kolivas
67a9af68a1
Hash_pop should signal further waiters on its own pthread conditional in case there are multiple waiters.
2012-12-08 21:53:06 +11:00
Con Kolivas
5c4c2d6786
Check the job_id has not changed on stratum work when deciding if the work is stale as might occur across disconnections.
2012-12-08 21:45:15 +11:00
Con Kolivas
fcb265322d
Perform pool_resus on getwork pool that generates work in getwork_thread.
2012-12-08 21:35:14 +11:00
Con Kolivas
3d1e9f5098
Set pool lagging message for getwork pool that falls to zero staged in getwork thread.
2012-12-08 21:32:49 +11:00
Con Kolivas
927730ae2c
Stage extra work when the primary pool is a getwork pool without rolltime.
2012-12-08 21:27:40 +11:00
Con Kolivas
24de9b8655
Do not try to clean up twice if kill message is given.
2012-12-08 21:23:33 +11:00
Con Kolivas
84b44fd852
Only recalculate total_staged in getwork thread if required.
2012-12-08 21:21:19 +11:00
Con Kolivas
b28055517e
Implement a completely new getwork scheduler.
...
Stage all work from the one thread, making it possible to serialise all requests minimising the number of getworks requested or local work generated.
Use a pthread conditional to wake up the thread whenever work is removed to generate enough work to stay above the watermark set by opt_queue.
Remove all remnants of the old queueing mechanism, deleting the now defunct queued count.
2012-12-08 21:13:04 +11:00
Con Kolivas
dd65818295
Remove all references to the now unused workio_cmd structure.
2012-12-07 13:45:03 +11:00
Con Kolivas
ed1b5cae0d
Remove the old workio command queue thread, replacing it with a kill conditional to exit the program.
2012-12-07 13:40:26 +11:00
Con Kolivas
59ddfd07a7
Remove getwork command from workio_cmd queues and do them directly from queue_request.
2012-12-07 13:32:23 +11:00
Con Kolivas
c99636f21b
Begin tearing down the old workio command queues by removing submit commands from there and submit them asynchronously via their own threads.
2012-12-07 13:21:46 +11:00
Con Kolivas
c0cd006f42
Allow pool active to be called on stratum or disabled pools in the watchpool thread if the pool has not been probed.
2012-12-04 21:49:11 +11:00
Con Kolivas
52b4bae961
Combine shared padding into one char.
2012-12-04 21:29:49 +11:00
Con Kolivas
e14d1d6e2a
Merge pull request #340 from kanoi/main
...
lock the threaded statistics updates
2012-12-04 00:18:10 -08:00
Kano
120fc7aff9
lock (most of) the threaded statistics updates
2012-12-04 19:14:27 +11:00
ckolivas
b86aa20bf6
Make need connection return true if a pool is idle.
2012-12-04 11:06:35 +11:00
Con Kolivas
777f0573c3
Merge pull request #339 from kanoi/api
...
API lock access to some summary statistics + API add Best Share to summary
2012-12-03 04:19:17 -08:00
Kano
e55fe73f9a
API add Best Share to summary
2012-12-03 23:08:11 +11:00
Con Kolivas
c4b17ae918
Check on creating new GBT work if the structures are up to date and update them as required rather than regularly.
2012-12-03 17:54:57 +11:00
Con Kolivas
401357e657
Enable backup stratum connections for getwork when the primary pool doesn't have longpoll aka solo mining.
2012-12-03 16:45:43 +11:00
Con Kolivas
289d6807ef
Check for correct absence of opt_fail_only in cnx_needed.
2012-12-03 16:16:00 +11:00
Con Kolivas
4b28c8595b
Remove unused variable.
2012-12-03 15:28:52 +11:00
Con Kolivas
f4d305a9cd
The specification for stratum has been elaborated to say that a changed diff applies only to new work so do not retarget when submitting shares.
2012-12-03 15:26:58 +11:00
Con Kolivas
1ad671b094
Use a variable length string array in submit_upstream_work to cope with massive GBT submissions.
2012-12-03 15:17:44 +11:00
Kano
a67e96c3e4
API lock access to some summary statistics (and copy them)
2012-12-03 11:36:15 +11:00
Con Kolivas
fc5d3a0eaf
Suspend stratum connections to backup pools when there is no requirement to potentially grab work from them.
2012-12-03 09:52:46 +11:00
Con Kolivas
9a71654761
Merge pull request #338 from denis2342/threadname
...
small patch to add names to threads, should work for linux, freebsd and osx
2012-12-02 12:46:01 -08:00
Denis Ahrens
4fbdc1eaa8
enumerate the mining threadnames
2012-12-02 18:36:15 +01:00
Kano
152e7e36a2
mmq usb v0.4 + api usb stats
2012-12-02 21:48:37 +11:00
Denis Ahrens
271b05ab04
setting the name of the threads for linux,freebsd,openbsd and osx
...
code is borrowed from bitcoins util.c, so it is already tested
2012-12-02 11:39:20 +01:00
Con Kolivas
4584068c67
Don't show broken WU value with scrypt mining.
2012-12-02 20:51:21 +11:00
Con Kolivas
b8843546e3
Remove unused getwork times in getswork.
2012-12-02 20:45:57 +11:00
Con Kolivas
cc14f16670
Make gen_stratum_work more robust by using a dynamically allocated array for the header in case bogus data is sent by the pool to avoid overflowing a static array.
2012-12-02 19:29:54 +11:00
Con Kolivas
f94cff77e6
Microoptimise and remove redundant copy of strdup function in calloc_strcat.
2012-12-02 18:06:55 +11:00
Con Kolivas
53c9cdaf56
scrypt_diff now returns a uint64_t
2012-12-02 16:56:36 +11:00
Con Kolivas
d8e18994d5
Support monitoring and reporting much higher diffs for scrypt mining, truncating irrelevant zeroes from displayed hash.
2012-12-01 23:36:17 +11:00
Con Kolivas
0ae02c6ec4
Since we will be using calloc_str to put a string into it, convert the function to calloc_strcat which does it automatically.
2012-12-01 08:26:31 +11:00
Con Kolivas
01eb807ca0
Revert "Handle crash exceptions by trying to restart cgminer unless the --no-restart option is used."
...
This reverts commit 68c881fde72f7aa92224cf4e4ba67a5af868dafc.
Does not reliably restart on crashes often enough and makes debugging more difficult.
2012-11-29 13:00:02 +11:00
Con Kolivas
bc4f6d928a
Count longpoll and GBT decodes as queued work since the count otherwise remains static.
2012-11-29 12:58:42 +11:00
Con Kolivas
1746e4714e
Use the string helper functions to create gbt blocks of any length.
2012-11-29 12:49:28 +11:00
Con Kolivas
217be6ed98
Do away with the flaky free_work api in the driver code which would often lose the work data in opencl and simply flush it before exiting the opencl scanhash.
2012-11-25 00:37:46 +11:00
Con Kolivas
c34ff36763
Use base_work for comparison just for cleanness in __copy_work
2012-11-24 23:08:14 +11:00
Con Kolivas
73671ab360
Remove all static work structs, using the make and free functions.
2012-11-24 18:45:02 +11:00