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
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