cgminer.c


Log

Author Commit Date CI Message
Con Kolivas 17ba2dca 2012-06-25T10:51:45 Logic fail on queueing multiple requests at once. Just queue one at a time.
Con Kolivas 42ea29ca 2012-06-25T00:58:18 Use a queueing bool set under control_lock to prevent multiple calls to queue_request racing.
Con Kolivas 63dd598e 2012-06-25T00:42:51 Queue multiple requests at once when levels are low.
Con Kolivas 757922e4 2012-06-25T00:33:47 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.
Con Kolivas 49dd8fb5 2012-06-25T00:25:38 Don't decrement staged extras count from longpoll work.
Con Kolivas d93e5f71 2012-06-25T00:23:58 Count longpoll's contribution to the queue.
Con Kolivas 05bc638d 2012-06-25T00:08:50 Increase queued count before pushing message.
Con Kolivas 32f52721 2012-06-25T00:03:37 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 5d90c50fc08644c9b0c3fb7d508b2bc84e9a4163.
Con Kolivas 5d90c50f 2012-06-24T23:38:24 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.
Con Kolivas 47f66405 2012-06-24T23:10:02 Alternatively check staged work count for rolltime capable pools when deciding to queue requests.
Con Kolivas efa9569b 2012-06-24T22:59:56 Test we have enough work queued for pools with and without rolltime capability.
Con Kolivas 1bbc860a 2012-06-24T22:47:51 Don't count longpoll work as a staged extra work.
Con Kolivas ebaa615f 2012-06-24T22:16:04 Count extra cloned work in the total queued count.
Con Kolivas 74cd6548 2012-06-24T22:00:37 Use a static base measurement difference of how many items to clone since requests_staged may not climb while rolling.
Con Kolivas 7b57df11 2012-06-24T21:58:52 Allow 1/3 extra buffer of staged work when ageing it.
Con Kolivas 53269a97 2012-06-24T21:57:49 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 9f811c528f6eefbca5f16c92181783f756e3a68f.
Con Kolivas a05c8e3f 2012-06-24T21:57:18 Revert "Take into account total_queued as well when deciding whether to queue a fresh request or not." This reverts commit b20089fdb70a52ec029375beecebfd47efaee218.
Con Kolivas 750474bc 2012-06-24T21:56:53 Revert "Further simplify the total_queued counting mechanism and do all dec_queued from the one location." This reverts commit 790acad9f9223e4d532d8d38e00737c79b8e40fb.
Con Kolivas d2c1a6bd 2012-06-24T21:56:36 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 c8601722752bcc6d3db7efd0063f7f2d7f2f7d2a.
Con Kolivas c8601722 2012-06-24T21:52:07 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.
Con Kolivas 790acad9 2012-06-24T21:42:34 Further simplify the total_queued counting mechanism and do all dec_queued from the one location.
Con Kolivas b20089fd 2012-06-24T20:59:55 Take into account total_queued as well when deciding whether to queue a fresh request or not.
Con Kolivas ded16838 2012-06-24T20:48:02 Add the getwork delay time instead of subtracting it when determining if a share is stale.
Con Kolivas b5757d12 2012-06-24T20:45:47 Don't count getwork delay when determining if shares are stale.
Con Kolivas 9f811c52 2012-06-24T20:38:40 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.
Con Kolivas 411784a9 2012-06-24T19:53:31 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.
Con Kolivas 359635a8 2012-06-24T18:44:09 Only roll enough work to have one staged work for each mining thread.
Con Kolivas 0c970bbd 2012-06-24T18:22:20 Roll work again after duplicating it to prevent duplicates on return to the clone function.
Con Kolivas 610302af 2012-06-24T18:10:17 Abstract out work cloning and clone $mining_threads copies whenever a rollable work item is found and return a clone instead.
Con Kolivas a8ae1a43 2012-06-24T14:38:31 Rolltime should be used as the cutoff time for primary work as well as the rolled work, if present.
Con Kolivas c20a89d9 2012-06-24T14:20:29 Take into account average getwork delay as a marker of pool communications when considering work stale.
Con Kolivas f32ffb87 2012-06-24T13:20:17 Work out a rolling average getwork delay stored in pool_stats.
Con Kolivas 4e60a62a 2012-06-24T12:55:56 Getwork delay in stats should include retries for each getwork call.
ckolivas 6a45cbbd 2012-06-23T23:45:08 Merge branch 'master' of https://github.com/ckolivas/cgminer
ckolivas c5a21fab 2012-06-23T23:43:22 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.
Con Kolivas f70577b0 2012-06-19T04:38:49 Merge pull request #229 from luke-jr/modminer_primary modminer: Don't delay 2nd+ FPGAs during work restart
Luke Dashjr 1215da39 2012-06-18T05:51:09 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.
Paul Sheppard 7ae22e21 2012-06-16T20:24:40 Disable OpenCL code when not available.
Con Kolivas 8faf3c90 2012-06-16T09:22:11 Fix openwrt crashing on regeneratehash() by making check_solve a noop.
Con Kolivas bf3e1583 2012-06-14T21:36:23 Fix sign warning.
Con Kolivas 83bf9f43 2012-06-14T20:53:07 can_roll and should_roll should have no bearing on the cycle period within the miner_thread so remove it.
Con Kolivas ceec3f83 2012-06-14T20:36:17 Check for strategy being changed to load balance when enabling LPs.
Con Kolivas b0de3ede 2012-06-14T17:28:24 Check that all threads on the device that called get_work are waiting on getwork before considering the pool lagging.
Con Kolivas 44f5d55d 2012-06-14T17:16:37 Iterate over each thread belonging to each device in the hashmeter instead of searching for them now that they're a list.
Con Kolivas 6e2c12ee 2012-06-14T16:11:29 When using rotate pool strategy, ensure we only select from alive enabled pools.
Con Kolivas 79f4b570 2012-06-14T15:58:18 Start longpoll from every pool when load balance strategy is in use.
Con Kolivas dbe9056d 2012-06-14T15:42:43 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.
Luke Dashjr 4eb23c7e 2012-06-13T16:56:31 Bugfix: slay a variety of warnings
Luke Dashjr a78d616b 2012-06-12T16:31:17 modminer: Temperature sensor improvements Display the temperature of each of the (up to) 4 FPGAs
Luke Dashjr 76f96f47 2012-06-11T03:02:10 New driver: BTCFPGA ModMiner
Luke Dashjr d3fa59d7 2012-06-05T02:17:09 Abstract generally useful FPGA code into fpgautils.c
Kano fdcd72b9 2012-06-10T11:19:21 API add stats for pool getworks
Kano 3cb3f09a 2012-05-31T23:18:55 API save default config file if none specified
Con Kolivas 84064a2b 2012-05-31T19:25:33 Must unlock mutex within loop.
Con Kolivas 85bddde1 2012-05-31T19:20:40 Must unlock mutex after waking up on pthread conditional.
Con Kolivas 598476ca 2012-05-30T18:02:00 Merge pull request #204 from kanoi/icarus-timer Icarus: high accuracy timing and other bitstream speed support
Con Kolivas 624948e2 2012-05-31T09:44:51 Open a longpoll connection if a pool is in the REJECTING state as it's the only way to re-enable it automatically.
Con Kolivas 2586bda5 2012-05-31T09:40:32 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.
Con Kolivas 5c3a252b 2012-05-31T08:42:46 Merge branch 'master' of github.com:ckolivas/cgminer
Con Kolivas 85210ee7 2012-05-31T08:41:56 If shares are known stale, don't use them to decide to disable a pool for sequential rejects.
Kano 17b6f111 2012-05-16T23:53:13 Icarus: make --icarus-timing hidden and document it in FPGA-README
Kano b5ed958e 2012-05-16T22:25:21 Icarus: high accuracy timing and other bitstream speed support
Xiangfu 9414fa7c 2012-05-11T11:00:14 work_decode only needs swab32 on midstate under BIG ENDIAN
Kano c2e2e7e4 2012-05-07T20:23:20 save config bugfix: writing an extra ',' when no gpus
Con Kolivas 61696c07 2012-05-06T16:22:18 In the unlikely event of finding a block, display the block solved count with the pool it came from for auditing.
Con Kolivas 6282dfb4 2012-05-06T16:15:20 Display the device summary on exit even if a device has been disabled.
Con Kolivas 848373d1 2012-05-06T14:24:50 Ensure we test for a pool recovering from idle so long as it's not set to disabled.
Con Kolivas b85d7b54 2012-05-06T14:17:48 Revert "Perform all common pool initialisation in add_pool()." This reverts commit f8b66bde28a5a74fbc5688642318c3ca9b1b9e2a. Sets pools to dead by mistake at startup.
Con Kolivas 801d9eaa 2012-05-06T14:13:39 Fix pool number display.
Con Kolivas 233a812f 2012-05-06T13:30:27 Give cgminer -T message only if curses is in use.
Con Kolivas f8b66bde 2012-05-06T13:27:17 Perform all common pool initialisation in add_pool().
Con Kolivas 85c9e0c4 2012-05-05T06:38:30 Merge pull request #198 from kanoi/stats API add getwork stats to cgminer - accesable from API 'stats' - and devices can add stats also
Kano 976e27c4 2012-05-05T15:04:15 API add getwork stats to cgminer - accesable from API 'stats'
Con Kolivas 46a679f3 2012-05-05T12:55:00 Revert "Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp." This reverts commit 87708a6a0e151401aee6cebf624940467993707b. Broken.
Con Kolivas c322d9b5 2012-05-05T09:40:46 Don't initialise variables to zero when in global scope since they're already initialised.
Con Kolivas c8e1026d 2012-05-05T09:37:33 Get rid of unitialised variable warning when it's false.
Con Kolivas b3bc506d 2012-05-05T09:31:48 Move a pool to POOL_REJECTING to be disabled only after 3 minutes of continuous rejected shares.
Con Kolivas 87708a6a 2012-05-04T23:05:00 Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp.
Kano 5c2bf84a 2012-05-04T22:18:31 Change FPGA detection order since BFL hangs on an ICA
Con Kolivas 4987958e 2012-05-04T20:10:38 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.
Con Kolivas d5eb6650 2012-05-04T02:43:56 Merge pull request #193 from kanoi/master API add last share time to each pool + Correct Icarus U: & MH/s
ckolivas 376fcd3c 2012-05-04T13:10:18 Fix the benchmark feature by bypassing the new networking code.
ckolivas 4d090a58 2012-05-04T12:51:32 Reset sequential reject counter after a pool is disabled for when it is re-enabled.
Kano 44fc6987 2012-05-04T00:13:42 API add last share time to each pool
Con Kolivas 852f6a0e 2012-05-03T22:39:12 Don't try to reap curls if benchmarking is enabled.
Con Kolivas f0985f99 2012-05-03T16:25:07 Only show longpoll warning once when it has failed.
Con Kolivas 41d5813d 2012-05-03T15:37:29 Convert hashes to an unsigned long long as well.
Con Kolivas a4f1af17 2012-05-03T15:35:13 Detect pools that have issues represented by endless rejected shares and disable them, with a parameter to optionally disable this feature.
Luke Dashjr 06801822 2012-05-02T23:09:39 Bugfix: Use a 64-bit type for hashes_done (miner_thread) since it can overflow 32-bit on some FPGAs
Con Kolivas 5081c182 2012-05-03T09:24:25 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.
Con Kolivas d4405de7 2012-05-03T08:56:42 Generalise add_pool() functions since they're repeated in add_pool_details.
Luke Dashjr 4ba9006d 2012-05-02T10:28:09 Disable failing devices such that the user can attempt to re-enable them
ckolivas 5cf4e188 2012-05-02T11:17:06 Increase pool watch interval to 30 seconds.
ckolivas 85008a78 2012-05-02T10:12:07 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.
Con Kolivas ec3d0570 2012-05-01T21:07:16 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.
Con Kolivas 7d288eac 2012-05-01T19:59:37 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.
Con Kolivas 89053c78 2012-05-01T19:12:37 There is no need for the submit and getwork curls to be tied to the pool struct.
ckolivas adda6e66 2012-05-01T17:48:23 Do not recruit extra connection threads if there have been connection errors to the pool in question.
ckolivas 76385112 2012-05-01T09:54:34 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.
Con Kolivas b015348d 2012-04-29T10:08:12 Shorten stale share messages slightly.