Znort 987
6fd06387b3
On unix, make algo benchmark more generic
13 years ago
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.
13 years ago
Znort 987
29f0f9bc18
Properly detect number of cores on WIN32
13 years ago
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).
13 years ago
Con Kolivas
50504ef9e0
If a work item has had any mining done on it, don't consider it discarded work.
13 years ago
Con Kolivas
656067a44e
Stale work test should respect age of rolled work as well.
13 years ago
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.
13 years ago
Con Kolivas
01aadda25c
Simply set the time of day when the work is decoded.
13 years ago
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.
13 years ago
Con Kolivas
626ae10d7c
Make sure to give work items a starting time only once when they're staged.
13 years ago
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.
13 years ago
Con Kolivas
e9b8344a37
Free all work in one place allowing us to perform actions on it in the future.
13 years ago
Con Kolivas
6da13fb87f
Only put the message that a pool is down if not pinging it every minute.
13 years ago
Con Kolivas
510be5c9a4
Summary on exit is sometimes getting lost without a flush of stdout.
13 years ago
Con Kolivas
42c22025d8
The can_roll function fails inappropriately in stale_work.
13 years ago
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.
13 years ago
Con Kolivas
17e5e17e88
Only consider a pool lagging if we actually need the work and we have none staged despite queue requests stacking up.
13 years ago
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.
13 years ago
Con Kolivas
177e07aed3
Display last initialised time in gpu management info.
13 years ago
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.
13 years ago
Con Kolivas
071a0ad2f1
Preinitialise the devices only once on startup.
13 years ago
Znort 987
2e31e1687c
Add missing fflush(stdout) for --ndevs
13 years ago
Znort 987
353789da0b
Use tab to indent code instead of spaces
13 years ago
Znort 987
83fa2158d9
Lots more verbiage in error messages
13 years ago
Znort 987
1cbfcba2c1
Disable --monitor-stderr on WIN32
13 years ago
Con Kolivas
467c52bb4a
Allocate work from one function to be able to initialise variables added later.
13 years ago
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.
13 years ago
Con Kolivas
1725a1c021
Fix non-opencl build.
13 years ago
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.
13 years ago
Con Kolivas
8f186e61e2
Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards.
13 years ago
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.
13 years ago
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.
13 years ago
Con Kolivas
5f2c3151b4
Read buffers only after reading data back now that we're sync.
13 years ago
Con Kolivas
7223508f7e
Don't use asynchronous work with flushes as it decreases reliability and two threads per GPU achieves the same throughput.
13 years ago
Con Kolivas
f763b0db10
Don't free up any ram from the dying thread to avoid dereferences.
13 years ago
Con Kolivas
43faa11358
Use correct name in syslog.
13 years ago
Con Kolivas
37115c0e1b
RPC call debugging is a mess with \r in it so remove it.
13 years ago
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.
13 years ago
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.
13 years ago
Con Kolivas
e100fcc672
Revert "Send ping to wake up new threads."
...
This reverts commit bf4c3626bc
.
Prepare to rollback.
13 years ago
Con Kolivas
bf4c3626bc
Send ping to wake up new threads.
13 years ago
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.
13 years ago
Con Kolivas
b2cbaa1ae4
Send a hung device a command. If it returns, try to reinitialise it.
13 years ago
Con Kolivas
a702f599d3
Disable the reinit_thread option till we know it actually works.
13 years ago
Con Kolivas
bb575a5585
Reference correct GPU and only try to restart if it reaches DEAD.
13 years ago
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.
13 years ago
Con Kolivas
20ce1ebf2a
Typo.
13 years ago
Con Kolivas
3803760689
Reimplement the per-thread getwork count with proper accounting at get_work().
13 years ago
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.
13 years ago
Con Kolivas
2e607d44f2
Only update the thread getwork queue count if it actually results in a getwork request from the server.
13 years ago