1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-11 07:17:58 +00:00
Commit Graph

811 Commits

Author SHA1 Message Date
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 68c881fde7.

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
Con Kolivas
3ab92ef6ad Add pool no. to stale share detected message. 2012-11-24 13:35:00 +11:00
Con Kolivas
850d07dffb Add info about which pool share became stale while resubmitting. 2012-11-24 12:58:58 +11:00
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. 2012-11-24 10:58:46 +11:00
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.
2012-11-24 10:47:20 +11:00
Con Kolivas
aa72db369e Provide rudimentary support for the balancing failover strategies with stratum and GBT by switching pools silently on getwork requests. 2012-11-18 23:04:01 +11:00
Con Kolivas
40a3331e72 Remove unintentional block of code in reuse_work. 2012-11-18 22:27:03 +11:00
Con Kolivas
9ad02fe303 Support workid for block submission on GBT pools that use it. 2012-11-18 21:48:44 +11:00
Con Kolivas
61f4e9d604 Revert "Discard all work on longpoll, not just work cgminer recognises as stale."
This reverts commit 1470eea903.

Work block update makes this unnecessary.
2012-11-18 17:22:48 +11:00
Con Kolivas
f14bf5b16c Merge pull request #326 from pshep/error_counters
Error counters
2012-11-17 22:06:49 -08:00
Con Kolivas
4039ee7a93 Convert pool not responding and pool alive message on backup pools to verbose level only since they mean a single failed getwork. 2012-11-18 16:53:39 +11:00
Con Kolivas
52b86b5137 Update work block on the longpoll work item before calling restart threads to ensure all work but the longpoll work item gets discarded when we call discard_stale from restart_threads. 2012-11-18 16:38:24 +11:00
Con Kolivas
1470eea903 Discard all work on longpoll, not just work cgminer recognises as stale. 2012-11-18 15:54:14 +11:00
Con Kolivas
88983306fd Do not attempt to remove the stratum share hash after unsuccessful submission since it may already be removed by clear_stratum_shares. 2012-11-18 15:50:04 +11:00
Con Kolivas
d15515bea4 Check against a double for current pool diff. 2012-11-15 13:09:00 +11:00
Con Kolivas
b3864d1a94 Support for fractional diffs and the classic just-below-1 share all FFs diff target. 2012-11-15 09:18:58 +11:00
Con Kolivas
1832dbd7f6 Make header larger on gen stratum work to accomodate \0 at the end. 2012-11-11 22:57:48 +11:00
Con Kolivas
66a9577197 Fix mistaken disabling of opt_restart in other code. 2012-11-11 21:48:07 +11:00
Con Kolivas
89cb14199a Use stratum block change from backup pools as an alternative to longpoll for pools that don't support LP. 2012-11-11 20:53:27 +11:00
Con Kolivas
38eb4ee43b Check share target diff for best_share to be calculated when solo mining. 2012-11-11 18:09:46 +11:00
Con Kolivas
7993095ec3 Round some more static string arrays to 4 byte boundaries. 2012-11-11 17:53:20 +11:00
Con Kolivas
17aa87be3a There is no need for the static arrays to be larger than required, so long as they're 4 byte aligned to appease ARM. 2012-11-11 17:37:58 +11:00
Con Kolivas
149781cf47 Revert "Change default log interval to 3 seconds for faster screen refreshes since vardiff will prevent massive on screen hash updates in the future."
This reverts commit f1f6b31faf.

Screen update frequency is what I wanted to change, not the log interval.
2012-11-11 17:14:55 +11:00
Con Kolivas
298ffcbc9e Store the full stratum url information in rpc_url for correct configuration file saving. 2012-11-11 17:14:24 +11:00
Con Kolivas
2cf0767cff Put in a hack to prevent dud work from sneaking into test_work_current being seen as a new block. 2012-11-11 16:33:20 +11:00
Con Kolivas
ad2ed57f12 Reset the work->longpoll flag where it will affect stratum work items as well. 2012-11-11 16:30:09 +11:00
Con Kolivas
1d7e19f2f2 Check for both coinbase/append and submit/coinbase support before using GBT protocol. 2012-11-11 16:10:45 +11:00
Con Kolivas
878f4d53ab First pass through testing for GBT should not set probed to true since we are about to probe again. 2012-11-11 16:05:39 +11:00
Con Kolivas
598ee76d37 Hash1 is only used by the deprecated cpu mining code and never changes so remove it from the work struct and bypass needing to process the value for all other mining. 2012-11-11 09:51:37 +11:00
Con Kolivas
f1f6b31faf Change default log interval to 3 seconds for faster screen refreshes since vardiff will prevent massive on screen hash updates in the future. 2012-11-07 23:32:01 +11:00
Con Kolivas
6893c0be43 Get a work item once per second for all getwork and GBT pools to test they're still alive and to maintain a current GBT template. 2012-11-07 23:28:49 +11:00
Paul Sheppard
dad6c70420 Merge branch 'master' into error_counters 2012-11-06 09:46:05 -08:00
Con Kolivas
dd671baaa1 Get a fresh block template with GBT pools on switching to them. 2012-11-06 17:42:49 +11:00
Con Kolivas
be82cc7fba Reset work flags to prevent GBT shares from being submitted as stratum ones after switching. 2012-11-06 14:01:32 +11:00
Con Kolivas
a47a7886d5 Only retarget stratum shares to new pool diff if diff has dropped. 2012-11-06 11:39:25 +11:00
Con Kolivas
498882d829 Remove resetting of probed variable when detecting GBT. 2012-11-06 10:39:34 +11:00
Con Kolivas
27ce497a7c Count lost stratum share submits and increase message priority to warning. 2012-11-06 09:50:36 +11:00
Con Kolivas
418d15deba Only retrieve a new block template for GBT pools that are the current pool. 2012-11-06 09:43:55 +11:00
Paul Sheppard
69f341c5bb Remove errant counter. 2012-11-05 08:01:15 -08:00
Con Kolivas
75d0a45a10 Show which pool untracked share messages have come from. 2012-11-05 23:47:44 +11:00
Con Kolivas
e0157208ab Add management for dead GBT pools. 2012-11-05 23:44:00 +11:00
Con Kolivas
9ebc321cd1 Merge branch 'master' into gbt 2012-11-05 23:34:58 +11:00
Con Kolivas
ffb8a29abf Count lost shares with stratum as submit stale lost. 2012-11-05 23:25:36 +11:00
Con Kolivas
0465fef553 Discard record of stratum shares sent and report lost shares on disconnection since they will never be reported back. 2012-11-05 23:22:36 +11:00
Con Kolivas
0314081157 Swab, don't just swap the bytes in the GBT target. 2012-11-05 22:12:27 +11:00
Con Kolivas
275bb9c05e Change status window message for GBT connected pools versus LP. 2012-11-05 18:05:25 +11:00
Con Kolivas
1321cb0e0d Generate a gbt work item from longpoll when required to set new block and message appropriately. 2012-11-05 17:57:33 +11:00
Con Kolivas
10ea5fbf97 Use existing pool submit_old bool from gbt data. 2012-11-05 16:57:48 +11:00
Con Kolivas
f71b423080 Retrieve a new block template if more than 30 seconds has elapsed since the last one to keep the data current and test the pool is still alive. 2012-11-05 16:48:19 +11:00
Con Kolivas
fc94e00fd1 Update GBT longpollid every time we request a new longpoll. 2012-11-05 16:34:44 +11:00
Con Kolivas
cc7c274543 Manage appropriate response codes for share submission with GBT. 2012-11-05 16:28:52 +11:00
Con Kolivas
345e72e66e Allow the longpoll thread to start with GBT and only set the longpollid once. 2012-11-05 16:17:04 +11:00
Con Kolivas
85f400bf80 Correct last few components of GBT block generation courtesy of Luke-jr. 2012-11-05 15:57:47 +11:00
Con Kolivas
14c436ee1f Use correct length for offsetting extra nonce and remaining data. 2012-11-05 15:28:07 +11:00
Paul Sheppard
9f74e650b3 Tidy up device error counts 2012-11-04 20:17:43 -08:00
Con Kolivas
a4e78be1ed Flip all 80 bytes in the flip function which was wrongly named flip256 for its purpose. 2012-11-05 14:56:57 +11:00
Con Kolivas
8bc677a6ca Calculate midstate for gbt work and remove now unused variable. 2012-11-05 14:44:58 +11:00
Con Kolivas
0ba5f0f94b Use a standard function for flipping bytes. 2012-11-05 14:02:43 +11:00
Con Kolivas
734f3d1c54 Insert the extra nonce and remaining data in the correct position in the coinbase. 2012-11-05 11:49:22 +11:00
Con Kolivas
611c3164dc Remove txn size debugging and enlarge gbt block string to prevent overflow. 2012-11-05 10:55:55 +11:00
Con Kolivas
bd384883da Remove varint display debugging. 2012-11-05 08:39:33 +11:00