Con Kolivas
47f1a75924
Implement setting the GPU powertune value of all devices or each device as a comma separated value.
2011-09-05 19:30:03 +10:00
Con Kolivas
bd292258d3
Add support for monitoring powertune setting.
2011-09-04 22:56:19 +10:00
Con Kolivas
3a5663cac1
Implement setting the GPU fan speed of all devices or each device as a comma separated value.
2011-09-04 22:25:31 +10:00
Con Kolivas
8ae273c56c
Implement setting the GPU voltage of all devices or each device as a comma separated value.
2011-09-04 22:08:42 +10:00
Con Kolivas
54bc30ceec
Implement setting the GPU memory clock speed of all devices or each device as a comma separated value.
2011-09-04 22:01:58 +10:00
Con Kolivas
ec8808d004
Implement setting the GPU engine clock speed of all devices or each device as a comma separated value.
2011-09-04 21:55:06 +10:00
Con Kolivas
12a167a3f1
Implement menus to change temperature limits.
2011-09-04 13:57:40 +10:00
Con Kolivas
306dad9fdb
Add gpu statistics to debugging output via the watchdog thread.
2011-09-04 10:27:21 +10:00
Con Kolivas
1ed219372e
Combine all stats collating into one function to avoid repeating function calls on each variable.
2011-09-04 10:19:29 +10:00
Con Kolivas
e9f886d805
Allow target, overheat and hysteresis temperatures to be set from command line.
2011-09-04 09:43:53 +10:00
Con Kolivas
9b7262ec71
Clean up by setting performance profiles and fan settings to startup levels on exit.
2011-09-04 00:36:14 +10:00
Con Kolivas
fc36e13d5b
Merge branch 'master' into adl_support
2011-09-04 00:00:12 +10:00
Con Kolivas
1898d851e5
Avoid a dereference if the longpoll thread doesn't exist.
2011-09-03 23:59:11 +10:00
Con Kolivas
e9b5885ebe
Add a gpu autotune option which adjusts GPU speed to maintain a target temperature within the bounds of the default GPU speed and any overclocking set.
2011-09-03 22:30:11 +10:00
Con Kolivas
dcc97e45db
Add an --auto-fan command line option to allow all GPUs to have autofan enabled from startup.
2011-09-03 15:46:57 +10:00
Con Kolivas
495adcbf5f
Implement auto fanspeed adjustment to maintain a target temperature and fanspeed below 85%, with an overheat check that will speed the fan up to 100%.
2011-09-03 15:33:53 +10:00
Con Kolivas
35ace46325
Enable changing of engine clock setting on the fly.
2011-09-03 13:02:21 +10:00
Con Kolivas
d57cd91955
Implement ATI ADL support for GPU parameter monitoring now and setting later (temp, fan, clocks etc.).
...
Check for the presence of the ADL header files in ADL_SDK.
Import adl_functions.h from amd overdrive ctrl.
Implement a setup function that tries to detect GPUs that support the ADL and link in the parameters into the gpus struct.
Put a summary of monitoring information from the GPU menu.
2011-09-03 10:53:35 +10:00
Con Kolivas
063efb1996
Rename localgen occasions to getwork fail occasions since localgen is unrelated now.
2011-09-02 10:37:00 +10:00
Con Kolivas
a2a60080ff
Add verbose message when a GPU fails to initialise, and disable the correct GPU.
2011-09-02 09:23:17 +10:00
Con Kolivas
8b690b5722
Give a verbose message when no active pools are found and pause before exiting.
2011-09-02 08:55:09 +10:00
Con Kolivas
ed7389e87e
Put some sanity checks on the times that can be input.
2011-09-02 08:35:27 +10:00
Con Kolivas
71eff46098
Mingw32 doesn't support strptime so use sscanf.
2011-09-01 23:18:31 +10:00
Con Kolivas
71ce9bc88a
Print summary on quit modes.
2011-09-01 23:15:42 +10:00
Con Kolivas
8496534168
Add start and stop time scheduling for regular time of day running or once off start/stop options.
2011-09-01 13:19:51 +10:00
Con Kolivas
5aca762a97
Go back to requesting work 2/3 of the way through the current scantime with CPU mining as reports of mining threads running out of work have occurred with only 5 seconds to retrieve work.
2011-08-31 16:01:28 +10:00
Con Kolivas
a593afdbeb
Use the curses_lock to protect the curses_active variable and test it under lock.
2011-08-31 13:23:36 +10:00
Con Kolivas
8119595498
Fix the bouncing short term value by allowing it to change dynamically when the latest value is very different from the rolling value, but damp the change when it gets close.
2011-08-31 10:25:28 +10:00
Con Kolivas
87ac3a006f
Provide much more smoothing of the short term rates.
2011-08-30 12:40:48 +10:00
Con Kolivas
d1a8614e5f
Add --failover-only option to not leak work to backup pools when the primary pool is lagging.
2011-08-30 10:16:47 +10:00
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
Con Kolivas
177e07aed3
Display last initialised time in gpu management info.
2011-08-13 20:55:30 +10:00
Con Kolivas
28880d0dc7
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.
2011-08-13 20:54:20 +10:00
Con Kolivas
071a0ad2f1
Preinitialise the devices only once on startup.
2011-08-13 20:50:00 +10:00
Znort 987
2e31e1687c
Add missing fflush(stdout) for --ndevs
2011-08-13 20:49:15 +10:00
Znort 987
353789da0b
Use tab to indent code instead of spaces
2011-08-13 20:49:02 +10:00
Znort 987
83fa2158d9
Lots more verbiage in error messages
2011-08-13 20:48:46 +10:00
Znort 987
1cbfcba2c1
Disable --monitor-stderr on WIN32
2011-08-13 20:48:30 +10:00
Con Kolivas
467c52bb4a
Allocate work from one function to be able to initialise variables added later.
2011-08-13 20:48:03 +10:00
Znort 987
79c989dd48
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.
2011-08-13 20:47:25 +10:00
Con Kolivas
1725a1c021
Fix non-opencl build.
2011-07-30 23:19:53 +10:00
Con Kolivas
bc2976f538
Be more willing to get work from the backup pools if the work is simply being queued faster than it is being retrieved.
2011-07-30 21:56:51 +10:00
Con Kolivas
8f186e61e2
Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards.
2011-07-30 16:59:54 +10:00
Con Kolivas
411570d348
Revert "Don't use asynchronous work with flushes as it decreases reliability and two threads per GPU achieves the same throughput."
...
This reverts commit 7223508f7e
.
Bad idea. Need to work around sync lineup.
2011-07-30 16:36:19 +10:00
Con Kolivas
decafea0ad
Revert "Read buffers only after reading data back now that we're sync."
...
This reverts commit 5f2c3151b4
.
Bad idea. Need to rework around sync lineup.
2011-07-30 16:36:02 +10:00
Con Kolivas
5f2c3151b4
Read buffers only after reading data back now that we're sync.
2011-07-30 16:33:43 +10:00
Con Kolivas
7223508f7e
Don't use asynchronous work with flushes as it decreases reliability and two threads per GPU achieves the same throughput.
2011-07-30 16:11:03 +10:00
Con Kolivas
f763b0db10
Don't free up any ram from the dying thread to avoid dereferences.
2011-07-30 14:27:17 +10:00
Con Kolivas
43faa11358
Use correct name in syslog.
2011-07-30 13:37:34 +10:00
Con Kolivas
37115c0e1b
RPC call debugging is a mess with \r in it so remove it.
2011-07-30 13:33:52 +10:00
Con Kolivas
59b640870c
So we can pthread cancel a stuck thread, but can't pthread join it.
...
And we can't tq freeze the old queue or we could hang here.
And we need to re-initialise all the opencl contexts so send a test command and if it succeeds reinit the card.
2011-07-30 13:28:25 +10:00
Con Kolivas
74a07eb461
Revert "Send threads message to stop and then send cancel message but don't pthread_join them if they're stuck nor reinit the opencl code to not hang everything."
...
This reverts commit 62521f3e53
.
Not enough to restart a GPU.
2011-07-30 13:14:59 +10:00
Con Kolivas
e100fcc672
Revert "Send ping to wake up new threads."
...
This reverts commit bf4c3626bc
.
Prepare to rollback.
2011-07-30 13:14:47 +10:00
Con Kolivas
bf4c3626bc
Send ping to wake up new threads.
2011-07-30 12:00:12 +10:00
Con Kolivas
62521f3e53
Send threads message to stop and then send cancel message but don't pthread_join them if they're stuck nor reinit the opencl code to not hang everything.
2011-07-30 10:16:03 +10:00
Con Kolivas
b2cbaa1ae4
Send a hung device a command. If it returns, try to reinitialise it.
2011-07-30 08:21:17 +10:00
Con Kolivas
a702f599d3
Disable the reinit_thread option till we know it actually works.
2011-07-30 02:31:29 +10:00
Con Kolivas
bb575a5585
Reference correct GPU and only try to restart if it reaches DEAD.
2011-07-30 02:16:29 +10:00
Con Kolivas
947a74bfa3
Differentiate thread failure from GPU failure by declaring a GPU sick first and trying to restart the thread without re-initialising the card.
...
If that fails, then try once more at ten minutes and declare it dead.
This should prevent an attempted re-initialising of the GPU from taking out other GPUs.
2011-07-30 01:23:17 +10:00
Con Kolivas
20ce1ebf2a
Typo.
2011-07-29 20:40:57 +10:00
Con Kolivas
3803760689
Reimplement the per-thread getwork count with proper accounting at get_work().
2011-07-29 11:11:42 +10:00
Con Kolivas
0fe22d8d94
Revert "Only update the thread getwork queue count if it actually results in a getwork request from the server."
...
This reverts commit 2e607d44f2
.
The count looks far too difficult to add up with this change since many are queued generically.
2011-07-29 11:02:47 +10:00
Con Kolivas
2e607d44f2
Only update the thread getwork queue count if it actually results in a getwork request from the server.
2011-07-29 10:39:58 +10:00
Con Kolivas
5b9bfedda1
Display the correct current hash as per blockexplorer, truncated to 16 characters, with just the time.
2011-07-29 00:40:47 +10:00
Con Kolivas
c94737ceab
Add http:// if it's not explicitly set for URL entries.
2011-07-28 12:44:50 +10:00
Con Kolivas
f0fe82ea37
Some Intel HD graphics support the opencl commands but return errors since they don't support opencl. Don't fail with them, just provide a warning and disable GPU mining.
2011-07-28 10:49:36 +10:00
Con Kolivas
10fa821e33
Update utility and efficiency figures when displaying them.
2011-07-28 10:46:28 +10:00
Con Kolivas
0006eb2da4
Make the "quiet" mode still update the status and display errors, and add a new --real-quiet option which disables all output and can be set once while running.
2011-07-28 10:36:48 +10:00
Con Kolivas
da06a348d0
The work length in the miner thread gets smaller but doesn't get bigger if it's under 1 second.
...
This could end up leading to CPU under-utilisation and lower and lower hash rates.
Fix it by increasing work length if it drops under 1 second.
2011-07-28 10:03:31 +10:00
Con Kolivas
a0924933d0
Restarting a hung GPU can hang the rest of the GPUs so just declare it dead and provide the information in the status.
2011-07-28 09:59:18 +10:00
Con Kolivas
45faff2e26
Add debugging output to all tq_pop calls.
2011-07-27 22:28:41 +10:00
Con Kolivas
2e2b2ba14c
Add debugging output to tq_push calls.
2011-07-27 22:20:57 +10:00
Con Kolivas
70fa8f319b
Make the display options clearer.
2011-07-27 21:58:08 +10:00
Con Kolivas
c7978f11ed
Dividing work is like the work is never removed at all so treat it as such. However the queued bool needs to be reset to ensure we *can* request more work even if we didn't initially.
2011-07-27 20:40:06 +10:00
Con Kolivas
e82e390295
If work has been cloned it is already at the head of the list and when being reinserted into the queue it should be placed back at the head of the list.
2011-07-27 16:40:52 +10:00
Con Kolivas
9c12d49684
Attribute split work as local work generation.
2011-07-27 16:29:37 +10:00
Con Kolivas
720032dacd
Make sure to decrease queued count if we discard the work.
2011-07-27 15:11:57 +10:00
Con Kolivas
967acd39bd
Don't put an extra work item in the queue as each new device thread will do so itself.
2011-07-27 15:06:04 +10:00
Con Kolivas
82698fbffd
Do away with queueing work separately at the start and let each thread grab its own work as soon as it's ready.
2011-07-27 15:01:08 +10:00
Con Kolivas
6cc8d22beb
Properly detect stale work based on time from staging and discard instead of handing on, but be more lax about how long work can be divided for up to the scantime.
2011-07-27 14:53:43 +10:00
Con Kolivas
45d5435781
Make cpu mining work submission asynchronous as well.
2011-07-27 14:29:51 +10:00
Con Kolivas
380d145c64
Make threads report out when they're queueing a request and report if they've failed.
2011-07-27 14:03:01 +10:00
Con Kolivas
324dd93bb7
Don't take more than one lock at a time.
2011-07-27 10:36:16 +10:00
Con Kolivas
98f609b5be
Sanity check to prove locking.
2011-07-27 10:31:44 +10:00
Con Kolivas
c72840284f
Abstract out the decay time function and use it to make hash_div a rolling average so it doesn't change too abruptly and divide work in chunks large enough to guarantee they won't overlap.
2011-07-27 10:00:58 +10:00
Con Kolivas
a48895829e
Update both windows separately, but not at the same time to prevent the double refresh crash that old libncurses has.
...
Do the window resize check only when about to redraw the log window to minimise ncurses cpu usage.
2011-07-27 09:41:52 +10:00
Con Kolivas
6f905932af
Only free the thread structures if the thread still exists.
2011-07-27 08:32:25 +10:00
Con Kolivas
40bc82d4ca
Don't adjust hash_div only up for GPUs. Disable hash_div adjustment for GPUs.
2011-07-27 02:03:59 +10:00
Con Kolivas
1aadfc580b
Two redraws in a row cause a crash in old libncurses so just do one redraw using the main window.
2011-07-27 01:41:16 +10:00
Con Kolivas
93b284dbca
Best to serialise the restarting of threads to avoid device initialisation issues.
2011-07-26 23:17:25 +10:00
Con Kolivas
d5d56920dd
Off by one limit in device selection.
2011-07-26 22:41:42 +10:00
Con Kolivas
f9bc3771b4
The first work item is tricky so don't try and divide it up to begin with.
2011-07-26 21:40:11 +10:00
Con Kolivas
1536e085da
Increase efficiency of slow mining threads such as CPU miners dramatically.
...
Do this by detecting which threads cannot complete searching a work item within the scantime and then divide up a work item into multiple smaller work items.
Detect the age of the work items and if they've been cloned before to prevent doing the same work over.
If the work is too old to be divided, then see if it can be time rolled and do that to generate work.
This dramatically decreases the number of queued work items from a pool leading to higher overall efficiency (but the same hashrate and share submission rate).
2011-07-26 20:48:05 +10:00
Con Kolivas
7e7a5f777e
Don't request work too early for CPUs as CPUs will scan for the full opt_scantime anyway.
2011-07-26 15:16:39 +10:00
Con Kolivas
6045c4d161
Simplify gpu management enable/disable/restart code.
2011-07-26 13:47:18 +10:00
Con Kolivas
fa17f03432
Implement much more accurate rolling statistics per thread and per gpu and improve accuracy of rolling displayed values.
2011-07-26 11:58:45 +10:00
Con Kolivas
ce6af96821
Make the rolling log-second average more accurate.
2011-07-26 10:45:52 +10:00
Con Kolivas
7707ed4db1
Add a menu to manage GPUs on the fly allowing you to enable/disable GPUs or try restarting them.
...
Keep track of which GPUs are alive versus enabled.
Start threads for devices that are even disabled, but don't allow them to start working.
2011-07-26 10:26:03 +10:00
Con Kolivas
7143c25b72
The last pool is when we are low in total_pools, not active_pools.
2011-07-25 16:44:24 +10:00
Con Kolivas
a53716dc7f
Fix compiler warnings.
2011-07-25 13:59:34 +10:00
Con Kolivas
b3d20b573c
Make the thread restart do a pthread_join after disabling the device, only re-enabling it if we succeed in restarting the thread.
...
Do this from a separate thread so as to not block any other code.
This will allow cgminer to continue even if one GPU hangs.
2011-07-25 13:55:01 +10:00