Con Kolivas
31f75098b5
Selectively discard all work items if a longpoll or stratum restart is received without a new block to work on.
12 years ago
Con Kolivas
5b03e7497d
Wake the getwork scheduler after every restart threads.
12 years ago
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.
12 years ago
Con Kolivas
30f6840b5c
Only consider work stale for stratum of different job_id if it's not a share.
12 years ago
Con Kolivas
67a9af68a1
Hash_pop should signal further waiters on its own pthread conditional in case there are multiple waiters.
12 years ago
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.
12 years ago
Con Kolivas
fcb265322d
Perform pool_resus on getwork pool that generates work in getwork_thread.
12 years ago
Con Kolivas
3d1e9f5098
Set pool lagging message for getwork pool that falls to zero staged in getwork thread.
12 years ago
Con Kolivas
927730ae2c
Stage extra work when the primary pool is a getwork pool without rolltime.
12 years ago
Con Kolivas
24de9b8655
Do not try to clean up twice if kill message is given.
12 years ago
Con Kolivas
84b44fd852
Only recalculate total_staged in getwork thread if required.
12 years ago
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.
12 years ago
Con Kolivas
dd65818295
Remove all references to the now unused workio_cmd structure.
12 years ago
Con Kolivas
ed1b5cae0d
Remove the old workio command queue thread, replacing it with a kill conditional to exit the program.
12 years ago
Con Kolivas
59ddfd07a7
Remove getwork command from workio_cmd queues and do them directly from queue_request.
12 years ago
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.
12 years ago
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.
12 years ago
Con Kolivas
52b4bae961
Combine shared padding into one char.
12 years ago
Kano
120fc7aff9
lock (most of) the threaded statistics updates
12 years ago
ckolivas
b86aa20bf6
Make need connection return true if a pool is idle.
12 years ago
Kano
e55fe73f9a
API add Best Share to summary
12 years ago
Con Kolivas
c4b17ae918
Check on creating new GBT work if the structures are up to date and update them as required rather than regularly.
12 years ago
Con Kolivas
401357e657
Enable backup stratum connections for getwork when the primary pool doesn't have longpoll aka solo mining.
12 years ago
Con Kolivas
289d6807ef
Check for correct absence of opt_fail_only in cnx_needed.
12 years ago
Con Kolivas
4b28c8595b
Remove unused variable.
12 years ago
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.
12 years ago
Con Kolivas
1ad671b094
Use a variable length string array in submit_upstream_work to cope with massive GBT submissions.
12 years ago
Kano
a67e96c3e4
API lock access to some summary statistics (and copy them)
12 years ago
Con Kolivas
fc5d3a0eaf
Suspend stratum connections to backup pools when there is no requirement to potentially grab work from them.
12 years ago
Denis Ahrens
4fbdc1eaa8
enumerate the mining threadnames
12 years ago
Kano
152e7e36a2
mmq usb v0.4 + api usb stats
12 years ago
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
12 years ago
Con Kolivas
4584068c67
Don't show broken WU value with scrypt mining.
12 years ago
Con Kolivas
b8843546e3
Remove unused getwork times in getswork.
12 years ago
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.
12 years ago
Con Kolivas
f94cff77e6
Microoptimise and remove redundant copy of strdup function in calloc_strcat.
12 years ago
Con Kolivas
53c9cdaf56
scrypt_diff now returns a uint64_t
12 years ago
Con Kolivas
d8e18994d5
Support monitoring and reporting much higher diffs for scrypt mining, truncating irrelevant zeroes from displayed hash.
12 years ago
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.
12 years ago
Con Kolivas
01eb807ca0
Revert "Handle crash exceptions by trying to restart cgminer unless the --no-restart option is used."
...
This reverts commit 68c881fde7
.
Does not reliably restart on crashes often enough and makes debugging more difficult.
12 years ago
Con Kolivas
bc4f6d928a
Count longpoll and GBT decodes as queued work since the count otherwise remains static.
12 years ago
Con Kolivas
1746e4714e
Use the string helper functions to create gbt blocks of any length.
12 years ago
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.
12 years ago
Con Kolivas
c34ff36763
Use base_work for comparison just for cleanness in __copy_work
12 years ago
Con Kolivas
73671ab360
Remove all static work structs, using the make and free functions.
12 years ago
Con Kolivas
3ab92ef6ad
Add pool no. to stale share detected message.
12 years ago
Con Kolivas
850d07dffb
Add info about which pool share became stale while resubmitting.
12 years ago
Con Kolivas
31e43944bc
Do not use or count or use the getworks submitted which are simply testing that pools are still up. This was increasing share leakage and making stats not reflect real work.
12 years ago
Con Kolivas
2d35ac2567
Track all dynamically allocated memory within the work struct by copying work structs in a common place, creating freshly allocated heap ram for all arrays within the copied struct.
...
Clear all work structs from the same place to ensure memory does not leak from arrays within the struct.
Convert the gbt coinbase and stratum strings within the work struct to heap ram.
This will allow arbitrary lengths without an upper limit for the strings, preventing the overflows that happen with GBT.
12 years ago
Con Kolivas
aa72db369e
Provide rudimentary support for the balancing failover strategies with stratum and GBT by switching pools silently on getwork requests.
12 years ago