1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-01 18:55:36 +00:00
Commit Graph

436 Commits

Author SHA1 Message Date
Con Kolivas
fd55fab96a Make bitforce nonce range support a command line option --bfl-range since enabling it decrease hashrate by 1%. 2012-07-06 16:54:00 +10:00
Luke Dashjr
d4af2d0535 Turn work_restart array into a bool in thr_info 2012-07-06 05:13:05 +00:00
Con Kolivas
274a40115e Merge branch 'master' into mr 2012-07-05 16:45:05 +10:00
Con Kolivas
75eca07823 Restart_wait is only called with a ms value so incorporate that into the function. 2012-07-05 09:15:21 +10:00
Con Kolivas
8bc7d1c9a0 Only try to adjust dev width when curses is built in. 2012-07-05 08:59:09 +10:00
Con Kolivas
67e92de18c Adjust device width column to be consistent. 2012-07-04 15:16:39 +10:00
Con Kolivas
ce93c2fc62 Use cgpu-> not gpus[] in watchdog thread. 2012-07-04 14:40:02 +10:00
Con Kolivas
7ada258bbf Merge branch 'master' into bfl 2012-07-03 11:04:44 +10:00
Con Kolivas
610cf0f0a5 Minor style changes. 2012-07-03 10:48:42 +10:00
Sergei Krivonos
aaa9f62b3e Made JSON error message verbose. 2012-07-03 01:01:37 +03:00
Paul Sheppard
ce850883e7 Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	driver-bitforce.c
2012-07-01 23:39:09 -07:00
Paul Sheppard
cc0ad5eaa7 Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	driver-bitforce.c
2012-07-01 23:35:06 -07:00
ckolivas
ac45260e18 Random style cleanups. 2012-07-02 16:12:35 +10:00
ckolivas
06ec47b3bd Must always unlock mutex after cond timedwait. 2012-07-02 12:45:16 +10:00
ckolivas
df5d196f9a Must unlock mutex if pthread_cond_wait succeeds. 2012-07-02 12:37:15 +10:00
ckolivas
fd7b21ed56 Use a pthread conditional that is broadcast whenever work restarts are required. Create a generic wait function waiting a specified time on that conditional that returns if the condition is met or a specified time passed to it has elapsed. Use this to do smarter polling in bitforce to abort work, queue more work, and check for results to minimise time spent working needlessly. 2012-07-02 10:54:20 +10:00
Paul Sheppard
a4a2000cc0 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-30 20:45:56 -07:00
ckolivas
830f2902b9 Numerous style police clean ups in cgminer.c 2012-07-01 11:09:06 +10:00
ckolivas
1e9421475c Timersub is supported on all build platforms so do away with custom timerval_subtract function. 2012-07-01 10:44:23 +10:00
Paul Sheppard
efaa7398fb Tweak sick/dead logic
(remove pre-computed time calculations)
2012-06-30 11:59:53 -07:00
Paul Sheppard
86c8bbe57e Need to run Hashmeter all the time.
and not just if logging/display is enabled
2012-06-29 17:19:28 -07:00
Paul Sheppard
75a651c13f Revert "Check for submit_stale before checking for work_restart"
Makes no sense to continue working on the old block whether submit_stale is enabled or not.
2012-06-28 16:08:10 -07:00
Paul Sheppard
baa480c137 Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	cgminer.c
2012-06-28 08:22:55 -07:00
Paul Sheppard
f225392990 Add low hash threshold in sick/dead processing
Add check for fd in comms procedures
2012-06-28 08:20:45 -07:00
Con Kolivas
3267b534a8 Implement rudimentary X-Mining-Hashrate support. 2012-06-28 10:43:52 +10:00
Con Kolivas
4c5d41a8dd Merge pull request #243 from kanoi/master
define, implement and document API option --api-groups
2012-06-27 16:03:46 -07:00
Con Kolivas
24316fc7fc Revert "Work is checked if it's stale elsewhere outside of can_roll so there is no need to check it again."
This reverts commit 5ad58f9a5c.
2012-06-28 07:27:57 +10:00
Paul Sheppard
62c3c66f17 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-27 08:18:12 -07:00
Con Kolivas
5ad58f9a5c Work is checked if it's stale elsewhere outside of can_roll so there is no need to check it again. 2012-06-27 23:36:48 +10:00
Con Kolivas
eddd02fea1 Put upper bounds to under 2 hours that work can be rolled into the future for bitcoind will deem it invalid beyond that. 2012-06-27 23:32:50 +10:00
Con Kolivas
bcec5f5102 Revert "Check we don't exhaust the entire unsigned 32 bit ntime range when rolling time to cope with extremely high hashrates."
This reverts commit 522f620c89.

Unrealistic. Limits are bitcoind related to 2 hours in the future.
2012-06-27 23:30:50 +10:00
Con Kolivas
383d35b221 Merge branch 'master' of github.com:ckolivas/cgminer 2012-06-27 22:35:38 +10:00
Con Kolivas
522f620c89 Check we don't exhaust the entire unsigned 32 bit ntime range when rolling time to cope with extremely high hashrates. 2012-06-27 22:34:46 +10:00
Kano
c21fc06560 define API option --api-groups 2012-06-27 21:28:18 +10:00
ckolivas
794b6558a3 Merge branch 'master' of https://github.com/ckolivas/cgminer 2012-06-27 10:55:50 +10:00
ckolivas
21a23a45d7 Work around pools that advertise very low expire= time inappropriately as this leads to many false positives for stale shares detected. 2012-06-27 10:15:57 +10:00
Paul Sheppard
d3e2b62c54 Change sick/dead processing to use device pointer, not gpu array.
Change BFL timing to adjust only when hashing complete (not error/idle etc.).
2012-06-26 14:45:48 -07:00
Paul Sheppard
78d5a81d70 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-26 12:32:09 -07:00
Con Kolivas
68a3a9ad10 There is no need for work to be a union in struct workio_cmd 2012-06-26 22:37:24 +10:00
ckolivas
b198423d17 Don't keep rolling work right up to the expire= cut off. Use 2/3 of the time between the scantime and the expiry as cutoff for reusing work. 2012-06-26 16:01:06 +10:00
ckolivas
6e80b63bb8 Revert "Increase the getwork delay factored in to determine if work vs share is stale to avoid too tight timing."
This reverts commit d8de1bbc5b.

Wrong fix.
2012-06-26 15:43:03 +10:00
ckolivas
d8de1bbc5b Increase the getwork delay factored in to determine if work vs share is stale to avoid too tight timing. 2012-06-26 13:07:08 +10:00
Paul Sheppard
1ef52e0bac Check for submit_stale before checking for work_restart
(to keep Kano happy)
2012-06-25 19:23:10 -07:00
Paul Sheppard
df9e76bd73 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-25 10:56:04 -07:00
Paul Sheppard
90d82aa61d Revert to pre pool merge 2012-06-25 10:27:08 -07:00
Con Kolivas
c027492fa4 Make the pools array a dynamically allocated array to allow unlimited pools to be added. 2012-06-25 17:06:26 +10:00
Con Kolivas
5cf4b7c432 Make the devices array a dynamically allocated array of pointers to allow unlimited devices. 2012-06-25 16:59:29 +10:00
Con Kolivas
17ba2dca63 Logic fail on queueing multiple requests at once. Just queue one at a time. 2012-06-25 10:51:45 +10:00
Con Kolivas
42ea29ca4e Use a queueing bool set under control_lock to prevent multiple calls to queue_request racing. 2012-06-25 00:58:18 +10:00
Con Kolivas
63dd598e2a Queue multiple requests at once when levels are low. 2012-06-25 00:42:51 +10:00
Con Kolivas
757922e4ce Use the work clone flag to determine if we should subtract it from the total queued variable and provide a subtract queued function to prevent looping over locked code. 2012-06-25 00:33:47 +10:00
Con Kolivas
49dd8fb548 Don't decrement staged extras count from longpoll work. 2012-06-25 00:25:38 +10:00
Con Kolivas
d93e5f710d Count longpoll's contribution to the queue. 2012-06-25 00:23:58 +10:00
Con Kolivas
05bc638d97 Increase queued count before pushing message. 2012-06-25 00:08:50 +10:00
Con Kolivas
32f5272123 Revert "With better bounds on the amount of work cloned, there is no need to age work and ageing it was picking off master work items that could be further rolled."
This reverts commit 5d90c50fc0.
2012-06-25 00:03:37 +10:00
Con Kolivas
5d90c50fc0 With better bounds on the amount of work cloned, there is no need to age work and ageing it was picking off master work items that could be further rolled. 2012-06-24 23:38:24 +10:00
Con Kolivas
47f66405c0 Alternatively check staged work count for rolltime capable pools when deciding to queue requests. 2012-06-24 23:10:02 +10:00
Con Kolivas
efa9569b66 Test we have enough work queued for pools with and without rolltime capability. 2012-06-24 22:59:56 +10:00
Con Kolivas
1bbc860a15 Don't count longpoll work as a staged extra work. 2012-06-24 22:47:51 +10:00
Con Kolivas
ebaa615f6d Count extra cloned work in the total queued count. 2012-06-24 22:16:04 +10:00
Con Kolivas
74cd6548a9 Use a static base measurement difference of how many items to clone since requests_staged may not climb while rolling. 2012-06-24 22:00:37 +10:00
Con Kolivas
7b57df1171 Allow 1/3 extra buffer of staged work when ageing it. 2012-06-24 21:58:52 +10:00
Con Kolivas
53269a97f3 Revert "Simplify the total_queued count to those staged not cloned and remove the locking since it's no longer a critical value."
This reverts commit 9f811c528f.
2012-06-24 21:57:49 +10:00
Con Kolivas
a05c8e3fd9 Revert "Take into account total_queued as well when deciding whether to queue a fresh request or not."
This reverts commit b20089fdb7.
2012-06-24 21:57:18 +10:00
Con Kolivas
750474bcfb Revert "Further simplify the total_queued counting mechanism and do all dec_queued from the one location."
This reverts commit 790acad9f9.
2012-06-24 21:56:53 +10:00
Con Kolivas
d2c1a6bd6b Revert "Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work."
This reverts commit c860172275.
2012-06-24 21:56:36 +10:00
Con Kolivas
c860172275 Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work. 2012-06-24 21:52:07 +10:00
Con Kolivas
790acad9f9 Further simplify the total_queued counting mechanism and do all dec_queued from the one location. 2012-06-24 21:42:34 +10:00
Con Kolivas
b20089fdb7 Take into account total_queued as well when deciding whether to queue a fresh request or not. 2012-06-24 20:59:55 +10:00
Con Kolivas
ded16838db Add the getwork delay time instead of subtracting it when determining if a share is stale. 2012-06-24 20:48:02 +10:00
Con Kolivas
b5757d124b Don't count getwork delay when determining if shares are stale. 2012-06-24 20:45:47 +10:00
Con Kolivas
9f811c528f Simplify the total_queued count to those staged not cloned and remove the locking since it's no longer a critical value.
Clone only anticipated difference sicne there will be a lag from the value returned by requests_staged().
Keep 1/3 buffer of extra work items when ageing them.
2012-06-24 20:38:40 +10:00
Con Kolivas
411784a99d As work is sorted by age, we can discard the oldest work at regular intervals to keep only 1 of the newest work items per mining thread. 2012-06-24 19:53:31 +10:00
Con Kolivas
359635a8cf Only roll enough work to have one staged work for each mining thread. 2012-06-24 18:44:09 +10:00
Con Kolivas
0c970bbd1c Roll work again after duplicating it to prevent duplicates on return to the clone function. 2012-06-24 18:22:20 +10:00
Con Kolivas
610302afcb Abstract out work cloning and clone $mining_threads copies whenever a rollable work item is found and return a clone instead. 2012-06-24 18:10:17 +10:00
Con Kolivas
a8ae1a43ea Rolltime should be used as the cutoff time for primary work as well as the rolled work, if present. 2012-06-24 14:38:31 +10:00
Con Kolivas
c20a89d998 Take into account average getwork delay as a marker of pool communications when considering work stale. 2012-06-24 14:20:29 +10:00
Con Kolivas
f32ffb8718 Work out a rolling average getwork delay stored in pool_stats. 2012-06-24 13:20:17 +10:00
Con Kolivas
4e60a62ae2 Getwork delay in stats should include retries for each getwork call. 2012-06-24 12:55:56 +10:00
ckolivas
6a45cbbdfb Merge branch 'master' of https://github.com/ckolivas/cgminer 2012-06-23 23:45:08 +10:00
ckolivas
c5a21fabf0 Extend nrolltime to support the expiry= parameter. Do this by turning the rolltime bool into an integer set to the expiry time. If the pool supports rolltime but not expiry= then set the expiry time to the standard scantime. 2012-06-23 23:43:22 +10:00
Paul Sheppard
6ce4871b94 Merge branch 'conf_pools' 2012-06-20 15:49:51 -07:00
Paul Sheppard
0bcdc2cac4 Add ability to disable pools in config file.
Also fix pool writing in priorty order.
2012-06-20 15:49:07 -07:00
Paul Sheppard
57fa2be13b Write pools in priority order 2012-06-20 11:40:28 -07:00
Paul Sheppard
e037028159 Merge branch 'master' of https://github.com/ckolivas/cgminer.git
Conflicts:
	driver-bitforce.c
2012-06-19 10:40:00 -07:00
Con Kolivas
f70577b097 Merge pull request #229 from luke-jr/modminer_primary
modminer: Don't delay 2nd+ FPGAs during work restart
2012-06-19 04:38:49 -07:00
Luke Dashjr
1215da39ee modminer: Don't delay 2nd+ FPGAs during work restart
Add primary_thread boolean to threads to identify a single one as the "primary" thread for shared-resource multithreading.
This is needed since ModMiners use multiple threads to interface with independent hashing components.
2012-06-18 05:51:09 +00:00
Paul Sheppard
af27b40e34 Merge branch 'master' of https://github.com/pshep/cgminer.git 2012-06-17 09:47:02 -07:00
Paul Sheppard
fe4c0869bf Merge branch 'master' of git://github.com/ckolivas/cgminer.git
Conflicts:
	cgminer.c
2012-06-17 09:44:42 -07:00
Paul Sheppard
7ae22e21e3 Disable OpenCL code when not available. 2012-06-16 20:24:40 -07:00
Con Kolivas
8faf3c90b8 Fix openwrt crashing on regeneratehash() by making check_solve a noop. 2012-06-16 09:22:11 +10:00
Paul Sheppard
6ed75c96cb Remove nDev limit in watchdog_thread
Can't work out why it was even there... so there could still be a reason
for it!
2012-06-15 12:11:28 -07:00
Paul Sheppard
fa3f357fc1 Sick/dead handling for non-gpus 2012-06-14 17:36:59 -07:00
Paul Sheppard
bc4a259af7 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-14 08:13:07 -07:00
Con Kolivas
bf3e15838f Fix sign warning. 2012-06-14 21:36:23 +10:00
Con Kolivas
83bf9f4334 can_roll and should_roll should have no bearing on the cycle period within the miner_thread so remove it. 2012-06-14 20:53:07 +10:00
Con Kolivas
ceec3f83c3 Check for strategy being changed to load balance when enabling LPs. 2012-06-14 20:36:17 +10:00
Con Kolivas
b0de3edeb8 Check that all threads on the device that called get_work are waiting on getwork before considering the pool lagging. 2012-06-14 17:28:24 +10:00
Con Kolivas
44f5d55d51 Iterate over each thread belonging to each device in the hashmeter instead of searching for them now that they're a list. 2012-06-14 17:16:37 +10:00
Paul Sheppard
2d1f961046 Merge branch 'master' of git://github.com/ckolivas/cgminer.git 2012-06-14 00:05:31 -07:00
Con Kolivas
6e2c12eeb0 When using rotate pool strategy, ensure we only select from alive enabled pools. 2012-06-14 16:11:29 +10:00
Con Kolivas
79f4b570f7 Start longpoll from every pool when load balance strategy is in use. 2012-06-14 15:58:18 +10:00
Con Kolivas
dbe9056df4 Add mandatory and block fields to the work struct. Flag any shares that are detected as blocks as mandatory to submit, along with longpoll work from a previously rejecting pool. 2012-06-14 15:42:43 +10:00
Paul Sheppard
b94e199649 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-13 17:31:20 -07:00
Paul Sheppard
eff2d04df0 Merge branch 'master' of https://github.com/ckolivas/cgminer.git
Conflicts:
	cgminer.c
2012-06-13 12:31:33 -07:00
Luke Dashjr
4eb23c7ea3 Bugfix: slay a variety of warnings 2012-06-13 17:03:26 +00:00
Paul Sheppard
2384d0fbc6 Removed idle mode... again!?
Changed work_reset rate to every 100ms & use defines rather than numerics.
Change total sleep time to 4300ms after performance testing/measurement (now good to 916MH/s).
Changed timeout to 15s - Throttle time is 15s.
Added support for 'Busy' when submitting work.
Improved logging text to include device identifier.
Added a thread_enable api function, called when a thread is re-enabled.
... and removed useless re-init inside scanhash.
Use modminer introduced mutex.
2012-06-12 18:20:18 -07:00
Luke Dashjr
a78d616bc5 modminer: Temperature sensor improvements
Display the temperature of each of the (up to) 4 FPGAs
2012-06-12 17:04:03 +00:00
Paul Sheppard
861388f960 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-12 09:04:42 -07:00
Luke Dashjr
76f96f4717 New driver: BTCFPGA ModMiner 2012-06-12 02:38:36 +00:00
Luke Dashjr
d3fa59d76f Abstract generally useful FPGA code into fpgautils.c 2012-06-12 02:35:45 +00:00
Paul Sheppard
bf4d6c3483 Merge branch 'master' of https://github.com/ckolivas/cgminer.git 2012-06-11 13:36:35 -07:00
Paul Sheppard
4889d7ecb2 Merge branch 'master' of git@github.com:pshep/cgminer.git
Conflicts:
	driver-bitforce.c
2012-06-11 13:09:27 -07:00
Paul Sheppard
820d662c9d Removed idle mode.
Added watchdog thread BFL temperature monitoring.
2012-06-10 23:11:59 -07:00
Paul Sheppard
ebeaf15f18 Added idle mode
Idle is only set by pgadisable, so GPU/CPU is unaffected.
For Icarus/Ztex, in scanhash the thread is immediately set disabled then returns.
2012-06-09 19:30:32 -07:00
Kano
fdcd72b9ae API add stats for pool getworks 2012-06-10 11:19:21 +10:00
Paul Sheppard
7f54adb4c9 Merge remote-tracking branch 'upstream/master' 2012-06-08 19:48:42 -07:00
Kano
3cb3f09a50 API save default config file if none specified 2012-05-31 23:18:55 +10:00
Con Kolivas
84064a2b1e Must unlock mutex within loop. 2012-05-31 19:25:33 +10:00
Con Kolivas
85bddde1c0 Must unlock mutex after waking up on pthread conditional. 2012-05-31 19:20:40 +10:00
Con Kolivas
598476cae1 Merge pull request #204 from kanoi/icarus-timer
Icarus: high accuracy timing and other bitstream speed support
2012-05-30 18:02:00 -07:00
Con Kolivas
624948e246 Open a longpoll connection if a pool is in the REJECTING state as it's the only way to re-enable it automatically. 2012-05-31 09:44:51 +10:00
Con Kolivas
2586bda59a Use only one longpoll as much as possible by using a pthread conditional broadcast that each longpoll thread waits on and checks if it's the current pool before opening its longpoll connection. 2012-05-31 09:40:32 +10:00
Con Kolivas
5c3a252b6d Merge branch 'master' of github.com:ckolivas/cgminer 2012-05-31 08:42:46 +10:00
Con Kolivas
85210ee7a8 If shares are known stale, don't use them to decide to disable a pool for sequential rejects. 2012-05-31 08:41:56 +10:00
Paul Sheppard
cebd647f50 Messing with BFL code 2012-05-22 08:10:00 -07:00
Paul Sheppard
4d3cc0bc6d Add check to 'i' (could be considered safer) 2012-05-18 10:57:19 -07:00
Paul Sheppard
407be57400 Change write_config so that pools are saved in priority order. 2012-05-16 16:26:05 -07:00
Kano
17b6f111a6 Icarus: make --icarus-timing hidden and document it in FPGA-README 2012-05-16 23:53:13 +10:00
Kano
b5ed958e84 Icarus: high accuracy timing and other bitstream speed support 2012-05-16 22:25:21 +10:00
Xiangfu
9414fa7c18 work_decode only needs swab32 on midstate under BIG ENDIAN 2012-05-11 12:15:30 +08:00
Kano
c2e2e7e437 save config bugfix: writing an extra ',' when no gpus 2012-05-07 20:23:20 +10:00
Con Kolivas
61696c072c In the unlikely event of finding a block, display the block solved count with the pool it came from for auditing. 2012-05-06 16:22:18 +10:00
Con Kolivas
6282dfb405 Display the device summary on exit even if a device has been disabled. 2012-05-06 16:15:20 +10:00
Con Kolivas
848373d13b Ensure we test for a pool recovering from idle so long as it's not set to disabled. 2012-05-06 14:24:50 +10:00
Con Kolivas
b85d7b5446 Revert "Perform all common pool initialisation in add_pool()."
This reverts commit f8b66bde28.

Sets pools to dead by mistake at startup.
2012-05-06 14:17:48 +10:00
Con Kolivas
801d9eaa7b Fix pool number display. 2012-05-06 14:13:39 +10:00
Con Kolivas
233a812f00 Give cgminer -T message only if curses is in use. 2012-05-06 13:30:27 +10:00
Con Kolivas
f8b66bde28 Perform all common pool initialisation in add_pool(). 2012-05-06 13:27:17 +10:00
Con Kolivas
85c9e0c4b6 Merge pull request #198 from kanoi/stats
API add getwork stats to cgminer - accesable from API 'stats' - and devices can add stats also
2012-05-05 06:38:30 -07:00
Kano
976e27c4cb API add getwork stats to cgminer - accesable from API 'stats' 2012-05-05 15:04:15 +10:00
Con Kolivas
46a679f39e Revert "Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp."
This reverts commit 87708a6a0e.

Broken.
2012-05-05 12:55:00 +10:00
Con Kolivas
c322d9b55e Don't initialise variables to zero when in global scope since they're already initialised. 2012-05-05 09:40:46 +10:00
Con Kolivas
c8e1026dfb Get rid of unitialised variable warning when it's false. 2012-05-05 09:37:33 +10:00
Con Kolivas
b3bc506d9a Move a pool to POOL_REJECTING to be disabled only after 3 minutes of continuous rejected shares. 2012-05-05 09:31:48 +10:00
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