main.c


Log

Author Commit Date CI Message
Con Kolivas 57c93d7e 2011-08-26T13:02:15 Prevent segfault on exit for when accessory threads don't exist.
Con Kolivas e81a362b 2011-08-25T23:33:41 Bump threshhold for lag up to maximum queued but no staged work.
Con Kolivas 5b488811 2011-08-25T21:49:23 Only consider pool lagging if more than one item is queued.
Con Kolivas 3d5f5554 2011-08-25T14:42:03 Allow a custom kernel path to be entered on the command line.
Con Kolivas 7dc3db23 2011-08-25T11:19:40 Implement SSE2 32 bit assembly algorithm as well.
Con Kolivas a4ec961e 2011-08-25T10:21:49 We can queue all the necessary work without hitting frequent stales now with the time and string stale protection active all the time. This prevents a pool being falsely labelled as not providing work fast enough.
Con Kolivas 81aedc97 2011-08-25T08:10:30 Add message about needing one server.
Con Kolivas f2f0ba80 2011-08-24T23:34:22 Revert "Revert "Since we roll work all the time now, we end up staging a lot of work without queueing, so don't queue if we've already got staged work."" This reverts commit cea1cf6cc0c5100ac332801d9fd596435f27aea7. This wasn't eht cause of the false positives.
Con Kolivas cea1cf6c 2011-08-24T23:26:30 Revert "Since we roll work all the time now, we end up staging a lot of work without queueing, so don't queue if we've already got staged work." This reverts commit b81077f36a74e1c1f58b36a9401245134a8d373a. This creates too many false positives for pool not providing work fast enough.
Con Kolivas 5a2cf5a6 2011-08-24T23:23:09 Get start times just before mining begins to not have very slow rise in average.
Con Kolivas b643b56a 2011-08-24T23:14:52 Allow LP to reset block detect and block detect lp flags to know who really came first.
Con Kolivas 73c98e1e 2011-08-24T22:07:05 Check if there is more than one work item queued before complaining about a slow pool.
Con Kolivas dbf0a136 2011-08-24T21:50:04 Use the new hashes directly for counts instead of the fragile counters currently in use.
Con Kolivas 0899ee86 2011-08-24T20:45:30 Only consider pool slow to respond if we can't even roll work.
Con Kolivas 6197ff20 2011-08-24T20:13:05 Remove silly debugging output.
Con Kolivas 93f4163a 2011-08-24T17:32:36 Create a hash list of all the blocks created and search them to detect when a new block has definitely appeared, using that information to detect stale work and discard it.
Con Kolivas b81077f3 2011-08-24T12:50:44 Since we roll work all the time now, we end up staging a lot of work without queueing, so don't queue if we've already got staged work.
Con Kolivas bf3033e0 2011-08-24T08:23:22 Make restarting of GPUs optional for systems that hang on any attempt to restart them. Fix DEAD status by comparing it to last live time rather than last attempted restart time since that happens every minute.
Con Kolivas 666fcc3f 2011-08-24T08:06:15 Move staged threads to hashes so we can sort them by time.
Con Kolivas bca84c3b 2011-08-24T08:23:22 Make restarting of GPUs optional for systems that hang on any attempt to restart them. Fix DEAD status by comparing it to last live time rather than last attempted restart time since that happens every minute.
Con Kolivas d9accc48 2011-08-23T12:34:32 Put a lower limit on the nonce increment in cpu mining.
Con Kolivas f6591379 2011-08-23T12:17:21 Minimise how much more work can be given in cpu mining threads each interval.
Con Kolivas 5acdbec4 2011-08-23T12:04:26 Make the fail-pause progressively longer each time it fails until the network recovers.
Con Kolivas b4d6b11b 2011-08-23T11:57:08 Only display the lagging message if we've requested the work earlier.
Con Kolivas ced4a9ac 2011-08-23T11:40:48 Clean up the pool switching to not be dependent on whether the work can roll or not by setting a lagging flag and then the idle flag.
Con Kolivas 088ee2fa 2011-08-23T10:47:47 Only use one thread to determine if a GPU is sick or well, and make sure to reset the sick restart attempt time.
Con Kolivas 7c6dfacc 2011-08-21T08:55:31 Display which longpoll failed and don't free the ram for lp_url since it belongs to the pool hdr path.
Con Kolivas 6f741597 2011-08-20T23:36:18 Use any longpoll available, and don't disable it if switching to a server that doesn't have it.
Con Kolivas b358bdc0 2011-08-20T23:11:12 Never automatically disable any pools but just specify them as idle if they're unresponsive at startup.
Con Kolivas 324d849b 2011-08-20T23:03:49 Attempt to restart a GPU once every minute while it's sick. Don't kill off the reinit thread if it fails to init a GPU but returns safely. Only declare a GPU dead if there's been no sign of activity from the reinit thread for 10 mins.
Con Kolivas 1b228ee3 2011-08-20T22:39:20 Re-enable devices immediately after ther old threads would have been killed off in case the first attempt to restart them fails but we still want them emabled.
Con Kolivas 75018d0d 2011-08-20T22:22:11 Release cl resources should the gpu mining thread abort.
Con Kolivas a754cc3f 2011-08-18T23:07:30 Suppress correct log output when display per-device status.
Con Kolivas 6f769e0f 2011-08-18T22:17:55 Add the ability to enable/disable per-device stats on the fly and match logging on/off.
Con Kolivas e414490b 2011-08-18T22:07:06 Don't display rolling status if per device stats is enabled.
Con Kolivas 2798b8c5 2011-08-18T21:35:37 Merge branch 'master' of github.com:ckolivas/cgminer
Con Kolivas 64e7cdd6 2011-08-18T21:32:45 The new phatk kernel needs a different nonce passed according to how many vectors are in use. This fixes breakage that otherwise occurs when 1 or 4 vectors are chosen.
Znort 987 e49bfbf2 2011-08-18T12:17:10 Add per-device statics log output
Znort 987 f66dec74 2011-08-17T11:45:17 Fix a crash with --algo auto
Con Kolivas cf54f9b8 2011-08-17T16:07:15 Move to 256 sized buffers and don't risk overwrite by using only 127 mask.
Con Kolivas 52e521a7 2011-08-17T15:48:07 Revert "Copy the work before returning from creating a thread in case we change the work before copying it." This reverts commit 6bf4d781e9d9620779d3fb924037941929e738c9. Causing a double free error.
Phateus d15d225a 2011-08-16T23:19:46 Changed phatk version to 2.2
Con Kolivas 6bf4d781 2011-08-17T14:44:13 Copy the work before returning from creating a thread in case we change the work before copying it.
Con Kolivas 1e77f044 2011-08-17T12:43:39 Clean up the longpoll management to ensure the right paths go to the right pool and display whether we're connected to LP or not in the status line.
Con Kolivas 074b8193 2011-08-16T11:21:26 Flush output.
Con Kolivas 53a4245a 2011-08-16T11:15:04 Log summary at the end as per any other output.
Con Kolivas 939a0e02 2011-08-16T10:46:25 Only show cpu algo in summary if cpu mining.
Con Kolivas cdece1f2 2011-08-16T10:45:02 Simplify code and tidy output.
Con Kolivas 8e38a149 2011-08-16T10:37:34 Simplify output code and remove HW errors from CPU stats.
Con Kolivas c53a7b0d 2011-08-16T10:26:42 Only display the CPU algo when we're CPU mining.
Con Kolivas 8febf57a 2011-08-16T09:45:16 Keep options in alphabetical order.
Con Kolivas 845af911 2011-08-16T09:42:26 Add --submit-stale option which submits all shares, regardless of whether they would normally be considered stale.
Znort 987 eed634a3 2011-08-16T00:04:50 Merge branch 'ckolivas-master' into merge-ckolivas-master
Con Kolivas 4e48561a 2011-08-15T22:21:17 Rework the last-initialised time displayed.
Con Kolivas cfe8534c 2011-08-15T22:07:28 Partial restart of threads has proven to be unsuccessful so reinstate device re-initialisation to restart GPUs. Do this by having a reinit thread that is told via a queue which device to restart. If this thread fails to return from opencl code, it should not interrupt the workings of other devices.
Con Kolivas 42d49ffd 2011-08-15T20:28:25 Revert "Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards." This reverts commit 8f186e61e250e71bd606cabb52795eaa0c9ad423.
Con Kolivas cf543507 2011-08-15T20:27:02 Revert "Preinitialise the devices only once on startup." This reverts commit 071a0ad2f156ab492ebea6c5a60a1e49a62466de.
Con Kolivas b1289a01 2011-08-15T20:26:46 Revert "Move the non cl_ variables into the cgpu info struct to allow creating a new cl state on reinit, preserving known GPU variables." This reverts commit 28880d0dc7c601ee4479921502b66e913e38e36d.
Con Kolivas 7c50bb02 2011-08-15T20:26:27 Revert "Display last initialised time in gpu management info." This reverts commit 177e07aed32e6b38f615f52d3243620625ff93e0.
Con Kolivas cac54f30 2011-08-15T20:25:18 Revert "When pinging a sick cpu, flush finish and then ping it in a separate thread in the hope it recovers, but without blocking code elsewhere." This reverts commit a466942fd880d157cc0b5968805b2159f556fc20.
Znort 987 92af1925 2011-08-15T15:08:13 Remove benchmark data from main.c
Znort 987 8256402a 2011-08-15T14:58:36 Remove harmless warning on win32
Znort 987 593022df 2011-08-15T11:51:27 Added somme comments
Znort 987 e923ac78 2011-08-15T11:53:19 Add CPU algo used to summary
Znort 987 4e3f38d0 2011-08-15T12:06:23 Re-indent code for fork_monitor
Znort 987 39bdec8b 2011-08-15T11:57:31 Various minor changes - Fixed a type bug on 32bit platform in algo bench - Some re-indenting
Znort 987 75639da1 2011-08-15T12:03:46 Add WIN32 safe CPU benchmark method Method for WIN32 - Add a hidden '--bench-algo' option to cgminer that only benchmarks the specified algorithm. - Create a chunk of shared mem - Launch a new instance of cgminer with --bench-algo, and act as a debugger for it to silently catch crashes. - Once it completes, either successfully or because of a crash, read benchmarked value from shared mem
Znort 987 84b0467c 2011-08-15T11:49:06 Fix broken assert in algo bencher
Znort 987 6fd06387 2011-08-15T12:02:34 On unix, make algo benchmark more generic
Znort 987 01886493 2011-08-15T11:59:00 Add set_non_blocking routing In preparation for upcoming generic unix automated algorithm benchmark method (as opposed to linux specific), add a utility method.
Znort 987 29f0f9bc 2011-08-15T11:55:12 Properly detect number of cores on WIN32
Znort 987 7158f9f9 2011-08-12T13:38:18 Add automated benchmark of the CPU hashers The --algo switch now accepts the "auto" argument. When "auto" is passed to --algo, cgminer starts by benchmarking all the CPU algorithms it nows about and picks the fastest. This is useful for benchmarking, but also for folks who run cgminer on a large number of heterogeneous computers because it saves them from having to configure each instance optimally. Caveat emptor: depending on the platform, some algorithms will fail with "illegal instruction" (e.g. via padlock code on non via platforms, or SSE4 code on non SSE4 platforms). To protect against this, cgminer runs the benchmarks in a child process. The crash, if any occurs in the child, and the parent marks this algo as "fails" and continues benchmarking the next algorithm. Unfortunately, this safeguard is only implemented for Linux because I have no clue how to do this on win32 (nor access to a win32 box).
Con Kolivas 50504ef9 2011-08-14T13:57:58 If a work item has had any mining done on it, don't consider it discarded work.
Con Kolivas 656067a4 2011-08-14T12:30:50 Stale work test should respect age of rolled work as well.
Con Kolivas 23240805 2011-08-14T11:35:53 Stick to rolling only work from the current pool unless we're in load balance mode or lagging to avoid aggressive rolling imitating load balancing.
Con Kolivas 01aadda2 2011-08-14T11:24:38 Simply set the time of day when the work is decoded.
Con Kolivas 639d38fb 2011-08-14T07:54:45 Revert "Make sure to give work items a starting time only once when they're staged." This reverts commit 626ae10d7c90c8a21897343758e5dd0b00016950. Failed to address all work items.
Con Kolivas 626ae10d 2011-08-14T02:33:55 Make sure to give work items a starting time only once when they're staged.
Con Kolivas d6dd5d70 2011-08-14T01:54:47 Test each work item to see if it can be rolled instead of per-pool and roll whenever possible, adhering to the 60 second timeout.
Con Kolivas e9b8344a 2011-08-13T09:10:13 Free all work in one place allowing us to perform actions on it in the future.
Con Kolivas 6da13fb8 2011-08-12T23:58:00 Only put the message that a pool is down if not pinging it every minute.
Con Kolivas 510be5c9 2011-08-12T22:08:27 Summary on exit is sometimes getting lost without a flush of stdout.
Con Kolivas 42c22025 2011-08-12T21:43:33 The can_roll function fails inappropriately in stale_work.
Con Kolivas d39e5abf 2011-08-12T21:22:47 We can't hit this path since the earlier check for stale work will prevent us ever finding work it can roll here.
Con Kolivas 17e5e17e 2011-08-12T20:34:51 Only consider a pool lagging if we actually need the work and we have none staged despite queue requests stacking up.
Con Kolivas a466942f 2011-08-12T20:20:42 When pinging a sick cpu, flush finish and then ping it in a separate thread in the hope it recovers, but without blocking code elsewhere.
Con Kolivas 177e07ae 2011-08-12T14:25:44 Display last initialised time in gpu management info.
Con Kolivas 28880d0d 2011-08-13T20:54:20 Move the non cl_ variables into the cgpu info struct to allow creating a new cl state on reinit, preserving known GPU variables. Create a new context from scratch in initCQ in case something was corrupted to maximise our chance of succesfully creating a new worker thread.
Con Kolivas 071a0ad2 2011-08-12T13:00:25 Preinitialise the devices only once on startup.
Znort 987 2e31e168 2011-08-11T14:34:43 Add missing fflush(stdout) for --ndevs
Znort 987 353789da 2011-08-11T13:36:28 Use tab to indent code instead of spaces
Znort 987 83fa2158 2011-08-11T13:29:29 Lots more verbiage in error messages
Znort 987 1cbfcba2 2011-08-11T13:24:20 Disable --monitor-stderr on WIN32
Con Kolivas 467c52bb 2011-08-11T12:38:42 Allocate work from one function to be able to initialise variables added later.
Znort 987 79c989dd 2011-08-08T18:25:54 Add new option: --monitor <cmd> Option lets user specify a command <cmd> that will get forked by cgminer on startup. cgminer's stderr output subsequently gets piped directly to this command. This permits smart batch monitoring of the miner by a baby-sitter log parser while retaining the full benefit of the curses interface, e.g. when running cgminer under screen. Doing the same thing is possible using advanced bash redirection paraphernalia, but it is somewhat of a pain, especially when running screen'd. This option makes things more straightforward.
Con Kolivas 1725a1c0 2011-07-30T23:19:53 Fix non-opencl build.
Con Kolivas bc2976f5 2011-07-30T21:56:51 Be more willing to get work from the backup pools if the work is simply being queued faster than it is being retrieved.
Con Kolivas 8f186e61 2011-07-30T16:59:54 Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards.
Con Kolivas 411570d3 2011-07-30T16:36:19 Revert "Don't use asynchronous work with flushes as it decreases reliability and two threads per GPU achieves the same throughput." This reverts commit 7223508f7e5e77ca9b5ab7ffbc96817b3bbf2461. Bad idea. Need to work around sync lineup.
Con Kolivas decafea0 2011-07-30T16:36:02 Revert "Read buffers only after reading data back now that we're sync." This reverts commit 5f2c3151b474ac49635701ff3f56966c23abfd57. Bad idea. Need to rework around sync lineup.