1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-10 23:08:07 +00:00
Commit Graph

434 Commits

Author SHA1 Message Date
Con Kolivas
021b2c0d7a The cpu mining work data can get modified before we copy it if we submit it async, and the sync submission is not truly sync anyway, so just submit it sync. 2011-08-29 17:19:04 +10:00
Con Kolivas
af15955b78 Exit with a failed return code if we did not reach opt_shares. 2011-08-29 15:25:14 +10:00
Con Kolivas
8f788ec927 Add an option to break out after successfully mining a number of accepted shares. 2011-08-29 15:12:12 +10:00
Con Kolivas
510bcc3d7e Disable curses after inputting a pool if we requested no curses interface. 2011-08-29 12:21:37 +10:00
Con Kolivas
4cc08fe459 Enable curses after the mining threads are set up so that failure messages won't be lost in the curses interface. 2011-08-29 12:15:24 +10:00
Con Kolivas
5c7ea9e55b Display version information and add --version command line option, and make sure we flush stdout. 2011-08-29 11:52:10 +10:00
Con Kolivas
7d34a6b6e3 Statify tv_sort. 2011-08-29 09:39:06 +10:00
Con Kolivas
f0cc293239 Convert the opt queue into a minimum number of work items to have queued instead of an extra number to decrease risk of getting idle devices without increasing risk of higher rejects. 2011-08-29 01:22:05 +10:00
Con Kolivas
3aee066b88 Add options to explicitly enable CPU mining or disable GPU mining. 2011-08-29 01:07:57 +10:00
Con Kolivas
ee5b476402 Don't show value of intensity since it's dynamic by default. 2011-08-29 00:49:04 +10:00
Con Kolivas
efa1731822 cgminer no longer supports default url user and pass so remove them. 2011-08-29 00:36:42 +10:00
Con Kolivas
fc46d57d62 Return -1 if no input is detected from the menu to prevent it being interpreted as a 0. 2011-08-28 22:45:33 +10:00
Con Kolivas
8d39311613 Reinstate minimum 1 extra in queue to make it extremely unlikely to ever have 0 staged work items and any idle time. 2011-08-28 20:24:17 +10:00
Con Kolivas
8a7b9acd00 Switching between redrawing windows does not fix the crash with old libncurses, so redraw both windows, but only when the window size hasn't changed. 2011-08-28 14:46:21 +10:00
Con Kolivas
eb0fa6e5df Copy cgminer path, not cat it. 2011-08-28 07:53:25 +10:00
Con Kolivas
57c93d7e20 Prevent segfault on exit for when accessory threads don't exist. 2011-08-26 13:02:15 +10:00
Con Kolivas
e81a362b5f Bump threshhold for lag up to maximum queued but no staged work. 2011-08-25 23:33:41 +10:00
Con Kolivas
5b48881175 Only consider pool lagging if more than one item is queued. 2011-08-25 21:49:23 +10:00
Con Kolivas
3d5f555407 Allow a custom kernel path to be entered on the command line. 2011-08-25 14:42:03 +10:00
Con Kolivas
7dc3db2340 Implement SSE2 32 bit assembly algorithm as well. 2011-08-25 13:04:15 +10:00
Con Kolivas
a4ec961ecc 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.
2011-08-25 10:21:49 +10:00
Con Kolivas
81aedc972a Add message about needing one server. 2011-08-25 08:10:30 +10:00
Con Kolivas
f2f0ba8024 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 cea1cf6cc0.

This wasn't eht cause of the false positives.
2011-08-24 23:34:22 +10:00
Con Kolivas
cea1cf6cc0 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 b81077f36a.

This creates too many false positives for pool not providing work fast enough.
2011-08-24 23:26:30 +10:00
Con Kolivas
5a2cf5a6b1 Get start times just before mining begins to not have very slow rise in average. 2011-08-24 23:23:09 +10:00
Con Kolivas
b643b56a95 Allow LP to reset block detect and block detect lp flags to know who really came first. 2011-08-24 23:14:52 +10:00
Con Kolivas
73c98e1e79 Check if there is more than one work item queued before complaining about a slow pool. 2011-08-24 22:07:05 +10:00
Con Kolivas
dbf0a1366d Use the new hashes directly for counts instead of the fragile counters currently in use. 2011-08-24 21:50:04 +10:00
Con Kolivas
0899ee86ae Only consider pool slow to respond if we can't even roll work. 2011-08-24 20:45:30 +10:00
Con Kolivas
6197ff2009 Remove silly debugging output. 2011-08-24 20:13:05 +10:00
Con Kolivas
93f4163aca 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. 2011-08-24 17:32:36 +10:00
Con Kolivas
b81077f36a 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. 2011-08-24 12:51:38 +10:00
Con Kolivas
bf3033e0f1 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.
2011-08-24 12:51:38 +10:00
Con Kolivas
666fcc3f55 Move staged threads to hashes so we can sort them by time. 2011-08-24 12:51:38 +10:00
Con Kolivas
d9accc4846 Put a lower limit on the nonce increment in cpu mining. 2011-08-23 12:34:32 +10:00
Con Kolivas
f6591379fb Minimise how much more work can be given in cpu mining threads each interval. 2011-08-23 12:17:21 +10:00
Con Kolivas
5acdbec47d Make the fail-pause progressively longer each time it fails until the network recovers. 2011-08-23 12:04:26 +10:00
Con Kolivas
b4d6b11b9a Only display the lagging message if we've requested the work earlier. 2011-08-23 11:57:08 +10:00
Con Kolivas
ced4a9ac92 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. 2011-08-23 11:40:48 +10:00
Con Kolivas
088ee2fa29 Only use one thread to determine if a GPU is sick or well, and make sure to reset the sick restart attempt time. 2011-08-23 10:47:47 +10:00
Con Kolivas
7c6dfaccf1 Display which longpoll failed and don't free the ram for lp_url since it belongs to the pool hdr path. 2011-08-21 08:55:31 +10:00
Con Kolivas
6f741597f8 Use any longpoll available, and don't disable it if switching to a server that doesn't have it. 2011-08-20 23:36:18 +10:00
Con Kolivas
b358bdc07e Never automatically disable any pools but just specify them as idle if they're unresponsive at startup. 2011-08-20 23:11:12 +10:00
Con Kolivas
324d849bf2 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.
2011-08-20 23:03:49 +10:00
Con Kolivas
1b228ee3d4 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. 2011-08-20 22:39:20 +10:00
Con Kolivas
75018d0d48 Release cl resources should the gpu mining thread abort. 2011-08-20 22:22:11 +10:00
Con Kolivas
a754cc3f0c Suppress correct log output when display per-device status. 2011-08-18 23:07:30 +10:00
Con Kolivas
6f769e0f8f Add the ability to enable/disable per-device stats on the fly and match logging on/off. 2011-08-18 22:17:55 +10:00
Con Kolivas
e414490bf7 Don't display rolling status if per device stats is enabled. 2011-08-18 22:07:06 +10:00
Con Kolivas
2798b8c549 Merge branch 'master' of github.com:ckolivas/cgminer 2011-08-18 21:35:37 +10:00
Con Kolivas
64e7cdd61b 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.
2011-08-18 21:32:45 +10:00
Znort 987
e49bfbf2ec Add per-device statics log output 2011-08-18 12:17:10 +02:00
Znort 987
f66dec74e6 Fix a crash with --algo auto 2011-08-17 11:45:17 +02:00
Con Kolivas
cf54f9b850 Move to 256 sized buffers and don't risk overwrite by using only 127 mask. 2011-08-17 16:07:15 +10:00
Con Kolivas
52e521a7c1 Revert "Copy the work before returning from creating a thread in case we change the work before copying it."
This reverts commit 6bf4d781e9.

Causing a double free error.
2011-08-17 15:48:07 +10:00
Phateus
d15d225a4c Changed phatk version to 2.2 2011-08-17 14:53:17 +10:00
Con Kolivas
6bf4d781e9 Copy the work before returning from creating a thread in case we change the work before copying it. 2011-08-17 14:44:13 +10:00
Con Kolivas
1e77f04481 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. 2011-08-17 12:43:39 +10:00
Con Kolivas
074b8193b2 Flush output. 2011-08-16 11:21:26 +10:00
Con Kolivas
53a4245a43 Log summary at the end as per any other output. 2011-08-16 11:15:04 +10:00
Con Kolivas
939a0e02b7 Only show cpu algo in summary if cpu mining. 2011-08-16 10:46:25 +10:00
Con Kolivas
cdece1f248 Simplify code and tidy output. 2011-08-16 10:45:02 +10:00
Con Kolivas
8e38a149d8 Simplify output code and remove HW errors from CPU stats. 2011-08-16 10:37:34 +10:00
Con Kolivas
c53a7b0d2d Only display the CPU algo when we're CPU mining. 2011-08-16 10:26:42 +10:00
Con Kolivas
8febf57af0 Keep options in alphabetical order. 2011-08-16 09:45:16 +10:00
Con Kolivas
845af9113e Add --submit-stale option which submits all shares, regardless of whether they would normally be considered stale. 2011-08-16 09:42:26 +10:00
Znort 987
eed634a3ab Merge branch 'ckolivas-master' into merge-ckolivas-master 2011-08-16 00:04:50 +02:00
Con Kolivas
4e48561a13 Rework the last-initialised time displayed. 2011-08-15 23:23:53 +10:00
Con Kolivas
cfe8534c39 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.
2011-08-15 23:23:52 +10:00
Con Kolivas
42d49ffdc7 Revert "Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards."
This reverts commit 8f186e61e2.
2011-08-15 23:23:45 +10:00
Con Kolivas
cf543507c6 Revert "Preinitialise the devices only once on startup."
This reverts commit 071a0ad2f1.
2011-08-15 23:23:39 +10:00
Con Kolivas
b1289a0159 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 28880d0dc7.
2011-08-15 23:23:29 +10:00
Con Kolivas
7c50bb02ab Revert "Display last initialised time in gpu management info."
This reverts commit 177e07aed3.
2011-08-15 23:23:20 +10:00
Con Kolivas
cac54f30b8 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 a466942fd8.
2011-08-15 23:23:09 +10:00
Znort 987
92af1925a6 Remove benchmark data from main.c 2011-08-15 15:08:13 +02:00
Znort 987
8256402a63 Remove harmless warning on win32 2011-08-15 14:58:36 +02:00
Znort 987
593022dfd7 Added somme comments 2011-08-15 14:00:09 +02:00
Znort 987
e923ac78d5 Add CPU algo used to summary 2011-08-15 13:59:44 +02:00
Znort 987
4e3f38d047 Re-indent code for fork_monitor 2011-08-15 13:59:07 +02:00
Znort 987
39bdec8bbe Various minor changes
- Fixed a type bug on 32bit platform in algo bench
	- Some re-indenting
2011-08-15 13:58:30 +02:00
Znort 987
75639da1e3 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
2011-08-15 13:55:00 +02:00
Znort 987
84b0467cb2 Fix broken assert in algo bencher 2011-08-15 13:53:15 +02:00
Znort 987
6fd06387b3 On unix, make algo benchmark more generic 2011-08-15 13:51:48 +02:00
Znort 987
01886493cf Add set_non_blocking routing
In preparation for upcoming generic unix automated
    algorithm benchmark method (as opposed to linux specific),
    add a utility method.
2011-08-15 13:49:26 +02:00
Znort 987
29f0f9bc18 Properly detect number of cores on WIN32 2011-08-15 13:48:17 +02:00
Znort 987
7158f9f9ed 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).
2011-08-15 13:47:50 +02:00
Con Kolivas
50504ef9e0 If a work item has had any mining done on it, don't consider it discarded work. 2011-08-14 13:57:58 +10:00
Con Kolivas
656067a44e Stale work test should respect age of rolled work as well. 2011-08-14 12:30:50 +10:00
Con Kolivas
232408050c 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. 2011-08-14 11:35:53 +10:00
Con Kolivas
01aadda25c Simply set the time of day when the work is decoded. 2011-08-14 11:24:38 +10:00
Con Kolivas
639d38fbd4 Revert "Make sure to give work items a starting time only once when they're staged."
This reverts commit 626ae10d7c.

Failed to address all work items.
2011-08-14 07:54:45 +10:00
Con Kolivas
626ae10d7c Make sure to give work items a starting time only once when they're staged. 2011-08-14 02:33:55 +10:00
Con Kolivas
d6dd5d700b 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. 2011-08-14 01:54:47 +10:00
Con Kolivas
e9b8344a37 Free all work in one place allowing us to perform actions on it in the future. 2011-08-13 20:56:41 +10:00
Con Kolivas
6da13fb87f Only put the message that a pool is down if not pinging it every minute. 2011-08-13 20:56:34 +10:00
Con Kolivas
510be5c9a4 Summary on exit is sometimes getting lost without a flush of stdout. 2011-08-13 20:56:16 +10:00
Con Kolivas
42c22025d8 The can_roll function fails inappropriately in stale_work. 2011-08-13 20:56:09 +10:00
Con Kolivas
d39e5abfba We can't hit this path since the earlier check for stale work will prevent us ever finding work it can roll here. 2011-08-13 20:56:04 +10:00
Con Kolivas
17e5e17e88 Only consider a pool lagging if we actually need the work and we have none staged despite queue requests stacking up. 2011-08-13 20:55:53 +10:00
Con Kolivas
a466942fd8 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. 2011-08-13 20:55:43 +10:00