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 7223508f7e5e77ca9b5ab7ffbc96817b3bbf2461.
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 5f2c3151b474ac49635701ff3f56966c23abfd57.
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 62521f3e53f06920cd101c47c8645f026d9b90b1.
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 bf4c3626bce572c0e313a1edcca8a04608723cff.
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 2e607d44f2baa8e8f1156e7bd074128e1e0e8eeb.
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