1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-10 06:48:05 +00:00
Commit Graph

190 Commits

Author SHA1 Message Date
Con Kolivas
87708a6a0e Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp. 2012-05-04 23:05:00 +10:00
Kano
5c2bf84a37 Change FPGA detection order since BFL hangs on an ICA 2012-05-04 22:18:31 +10:00
Con Kolivas
4987958e6a Add a temporarily disabled state for enabled pools called POOL_REJECTING and use the work from each longpoll to help determine when a rejecting pool has started working again.
Switch pools based on the multipool strategy once a pool is re-enabled.
2012-05-04 20:10:38 +10:00
Con Kolivas
d5eb6650e2 Merge pull request #193 from kanoi/master
API add last share time to each pool + Correct Icarus U: & MH/s
2012-05-04 02:43:56 -07:00
ckolivas
376fcd3c02 Fix the benchmark feature by bypassing the new networking code. 2012-05-04 13:10:18 +10:00
ckolivas
4d090a587c Reset sequential reject counter after a pool is disabled for when it is re-enabled. 2012-05-04 12:51:32 +10:00
Kano
44fc698750 API add last share time to each pool 2012-05-04 00:13:42 +10:00
Con Kolivas
852f6a0eb0 Don't try to reap curls if benchmarking is enabled. 2012-05-03 22:39:12 +10:00
Con Kolivas
f0985f9978 Only show longpoll warning once when it has failed. 2012-05-03 16:25:07 +10:00
Con Kolivas
41d5813d8f Convert hashes to an unsigned long long as well. 2012-05-03 15:37:29 +10:00
Con Kolivas
a4f1af1733 Detect pools that have issues represented by endless rejected shares and disable them, with a parameter to optionally disable this feature. 2012-05-03 15:35:13 +10:00
Luke Dashjr
068018225c Bugfix: Use a 64-bit type for hashes_done (miner_thread) since it can overflow 32-bit on some FPGAs 2012-05-02 23:24:07 -04:00
Con Kolivas
5081c1824a Limit the number of curls we recruit on communication failures and with delaynet enabled to 5 by maintaining a per-pool curl count, and using a pthread conditional that wakes up when one is returned to the ring buffer. 2012-05-03 10:49:42 +10:00
Con Kolivas
d4405de704 Generalise add_pool() functions since they're repeated in add_pool_details. 2012-05-03 10:49:42 +10:00
Luke Dashjr
4ba9006d0e Disable failing devices such that the user can attempt to re-enable them 2012-05-03 10:49:42 +10:00
ckolivas
5cf4e188fd Increase pool watch interval to 30 seconds. 2012-05-03 10:49:42 +10:00
ckolivas
85008a7853 Reap curls that are unused for over a minute.
This allows connections to be closed, thereby allowing the number of curl handles to always be the minimum necessary to not delay networking.
2012-05-03 10:48:05 +10:00
Con Kolivas
ec3d057016 Use the ringbuffer of curls from the same pool for submit as well as getwork threads.
Since the curl handles were already connected to the same pool and are immediately available, share submission will not be delayed by getworks.
2012-05-03 10:47:15 +10:00
Con Kolivas
7d288eac9f Implement a scaleable networking framework designed to cope with any sized network requirements, yet minimise the number of connections being reoped.
Do this by create a ring buffer linked list of curl handles to be used by getwork, recruiting extra handles when none is immediately available.
2012-05-03 10:41:57 +10:00
Con Kolivas
89053c78da There is no need for the submit and getwork curls to be tied to the pool struct. 2012-05-01 19:12:37 +10:00
ckolivas
adda6e6680 Do not recruit extra connection threads if there have been connection errors to the pool in question. 2012-05-01 17:48:23 +10:00
ckolivas
7638511290 We should not retry submitting shares indefinitely or we may end up with a huge backlog during network outages, so discard stale shares if we failed to submit them and they've become stale in the interim. 2012-05-01 09:54:34 +10:00
Con Kolivas
b015348df4 Shorten stale share messages slightly. 2012-04-29 10:08:12 +10:00
Con Kolivas
7233890d85 Protect the freeing of current_hash under mutex_lock to prevent racing on it when set_curblock is hit concurrently. 2012-04-29 10:03:01 +10:00
Con Kolivas
53c22551f7 Change default behaviour to submitting stale, removing the --submit-stale option and adding a --no-submit-stale option. 2012-04-29 09:12:23 +10:00
Con Kolivas
f9123f0587 Make sure to start the getwork and submit threads when a pool is added on the fly. 2012-04-29 08:55:59 +10:00
Con Kolivas
5ad942d187 Faster hardware can easily outstrip the speed we can get work and submit shares when using only one connection per pool.
Test the queued list to see if any get/submits are already queued and if they are, start recruiting extra connections by generating new threads.
This allows us to reuse network connections at low loads but recuit new open connections as they're needed, so that cgminer can scale to hardware of any size.
2012-04-29 00:56:23 +10:00
Con Kolivas
628ac19977 Get rid of confusing "waiting on fresh work" part of longpoll message to minimise log width and add pool number to longpoll work restart message. 2012-04-28 14:00:34 +10:00
Con Kolivas
972860c0af Remove unused variable. 2012-04-28 13:36:27 +10:00
Con Kolivas
3362a2a447 Give a longpoll message for any longpoll that detects a block change, primary or backup, and also display which pool it was. 2012-04-28 13:31:27 +10:00
Con Kolivas
e1cf5029d4 Decrease utility display to one decimal place. 2012-04-28 12:22:23 +10:00
Con Kolivas
7b370bb2e7 Small cosmetic output alignment. 2012-04-28 09:19:32 +10:00
Con Kolivas
669b0deda3 Add pool number to stale share message. 2012-04-28 08:39:06 +10:00
Con Kolivas
03fab3f438 Remove thread id display from rejected shares as well. 2012-04-28 00:16:34 +10:00
Con Kolivas
86e94edb89 Set have_longpoll to true when there is at least one pool with longpoll. 2012-04-27 15:47:21 +10:00
Con Kolivas
0365878ac5 Don't display the thread ID since it adds no useful information over the device number. 2012-04-27 15:30:42 +10:00
Con Kolivas
08c721080d Don't display the first 8 bytes of a share since they will always be zero at >= 1 difficulty. 2012-04-27 15:29:31 +10:00
Con Kolivas
501e35a0e6 work->longpoll is reset across test_work_current so we need to recheck what pool it belongs to. 2012-04-27 14:02:29 +10:00
Con Kolivas
03abb70467 Use longpolls from backup pools with failover-only enabled just to check for block changes, but don't use them as work. 2012-04-27 13:59:43 +10:00
Con Kolivas
1ab318d0f3 Start longpoll only after we have tried to extract the longpoll URL. 2012-04-27 13:11:19 +10:00
Con Kolivas
b1c273e71b Check for submitold flag on resubmit of shares, and give different message for stale shares on retry. 2012-04-27 12:54:29 +10:00
Con Kolivas
5ece966f07 Check for submitold before submitstale. 2012-04-27 12:47:13 +10:00
Con Kolivas
ed718b2b50 Don't force fresh curl connections on anything but longpoll threads. 2012-04-27 12:28:51 +10:00
Con Kolivas
eda382990a Create one longpoll thread per pool, using backup pools for those pools that don't have longpoll.
Use the work created from the longpoll return only if we don't have failover-enabled, and only flag the work as a longpoll if it is the current pool.
This will work around the problem of trying to restart the single longpoll thread on pool changes that was leading to race conditions.
It will also have less work restarts from the multiple longpolls received from different pools.
2012-04-27 11:58:47 +10:00
Con Kolivas
e502fde52b Remove the ability to disable longpoll. It is not a useful feature and will conflict with planned changes to longpoll code. 2012-04-27 11:13:52 +10:00
Con Kolivas
8e84abfc22 Merge pull request #184 from luke-jr/bugfix_const_warning
Bugfix: Make initial_args a const char** to satisfy exec argument type warning (MinGW)
2012-04-26 17:36:19 -07:00
Con Kolivas
8d8f4ff856 Merge pull request #182 from kanoi/master
api.c 'devdetails' list static details of devices + ZTex ++
2012-04-26 16:38:17 -07:00
Luke Dashjr
90c5ef1fa7 Bugfix: Make initial_args a const char** to satisfy exec argument type warning (on Windows only) 2012-04-26 14:58:31 -04:00
Con Kolivas
4cd973264f Create discrete persistent submit and get work threads per pool, thus allowing all submitworks belonging to the same pool to reuse the same curl handle, and all getworks to reuse their own handle.
Use separate handles for submission to not make getwork potentially delay share submission which is time critical.
This will allow much more reusing of persistent connections instead of opening new ones which can flood routers.
This mandated a rework of the extra longpoll support (for when pools are switched) and this is managed by restarting longpoll cleanly and waiting for a thread join.
2012-04-26 23:29:21 +10:00
Kano
b3ac249e71 cgminer.c sharelog code consistency and compile warning fix 2012-04-26 00:20:16 +10:00