|
e923ac78
|
2011-08-15T11:53:19
|
|
Add CPU algo used to summary
|
|
4e3f38d0
|
2011-08-15T12:06:23
|
|
Re-indent code for fork_monitor
|
|
39bdec8b
|
2011-08-15T11:57:31
|
|
Various minor changes
- Fixed a type bug on 32bit platform in algo bench
- Some re-indenting
|
|
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
|
|
84b0467c
|
2011-08-15T11:49:06
|
|
Fix broken assert in algo bencher
|
|
6fd06387
|
2011-08-15T12:02:34
|
|
On unix, make algo benchmark more generic
|
|
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.
|
|
29f0f9bc
|
2011-08-15T11:55:12
|
|
Properly detect number of cores on WIN32
|
|
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).
|
|
50504ef9
|
2011-08-14T13:57:58
|
|
If a work item has had any mining done on it, don't consider it discarded work.
|
|
656067a4
|
2011-08-14T12:30:50
|
|
Stale work test should respect age of rolled work as well.
|
|
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.
|
|
01aadda2
|
2011-08-14T11:24:38
|
|
Simply set the time of day when the work is decoded.
|
|
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.
|
|
626ae10d
|
2011-08-14T02:33:55
|
|
Make sure to give work items a starting time only once when they're staged.
|
|
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.
|
|
e9b8344a
|
2011-08-13T09:10:13
|
|
Free all work in one place allowing us to perform actions on it in the future.
|
|
6da13fb8
|
2011-08-12T23:58:00
|
|
Only put the message that a pool is down if not pinging it every minute.
|
|
510be5c9
|
2011-08-12T22:08:27
|
|
Summary on exit is sometimes getting lost without a flush of stdout.
|
|
42c22025
|
2011-08-12T21:43:33
|
|
The can_roll function fails inappropriately in stale_work.
|
|
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.
|
|
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.
|
|
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.
|
|
177e07ae
|
2011-08-12T14:25:44
|
|
Display last initialised time in gpu management info.
|
|
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.
|
|
071a0ad2
|
2011-08-12T13:00:25
|
|
Preinitialise the devices only once on startup.
|
|
2e31e168
|
2011-08-11T14:34:43
|
|
Add missing fflush(stdout) for --ndevs
|
|
353789da
|
2011-08-11T13:36:28
|
|
Use tab to indent code instead of spaces
|
|
83fa2158
|
2011-08-11T13:29:29
|
|
Lots more verbiage in error messages
|
|
1cbfcba2
|
2011-08-11T13:24:20
|
|
Disable --monitor-stderr on WIN32
|
|
467c52bb
|
2011-08-11T12:38:42
|
|
Allocate work from one function to be able to initialise variables added later.
|
|
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.
|
|
1725a1c0
|
2011-07-30T23:19:53
|
|
Fix non-opencl build.
|
|
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.
|
|
8f186e61
|
2011-07-30T16:59:54
|
|
Restart threads by abstracting out the clcontext initialisation and using that instead of probing all cards.
|
|
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.
|
|
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.
|
|
5f2c3151
|
2011-07-30T16:33:43
|
|
Read buffers only after reading data back now that we're sync.
|
|
7223508f
|
2011-07-30T16:11:03
|
|
Don't use asynchronous work with flushes as it decreases reliability and two threads per GPU achieves the same throughput.
|
|
f763b0db
|
2011-07-30T14:27:17
|
|
Don't free up any ram from the dying thread to avoid dereferences.
|
|
43faa113
|
2011-07-30T13:37:34
|
|
Use correct name in syslog.
|
|
37115c0e
|
2011-07-30T13:33:52
|
|
RPC call debugging is a mess with \r in it so remove it.
|
|
59b64087
|
2011-07-30T13:28:25
|
|
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.
|
|
74a07eb4
|
2011-07-30T13:14:59
|
|
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.
|
|
e100fcc6
|
2011-07-30T13:14:47
|
|
Revert "Send ping to wake up new threads."
This reverts commit bf4c3626bce572c0e313a1edcca8a04608723cff.
Prepare to rollback.
|
|
bf4c3626
|
2011-07-30T12:00:12
|
|
Send ping to wake up new threads.
|
|
62521f3e
|
2011-07-30T10:16:03
|
|
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.
|
|
b2cbaa1a
|
2011-07-30T08:21:17
|
|
Send a hung device a command. If it returns, try to reinitialise it.
|
|
a702f599
|
2011-07-30T02:31:29
|
|
Disable the reinit_thread option till we know it actually works.
|
|
bb575a55
|
2011-07-30T02:16:29
|
|
Reference correct GPU and only try to restart if it reaches DEAD.
|
|
947a74bf
|
2011-07-30T01:23:17
|
|
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.
|
|
20ce1ebf
|
2011-07-29T20:40:57
|
|
Typo.
|
|
38037606
|
2011-07-29T11:11:42
|
|
Reimplement the per-thread getwork count with proper accounting at get_work().
|
|
0fe22d8d
|
2011-07-29T11:02:47
|
|
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.
|
|
2e607d44
|
2011-07-29T10:39:58
|
|
Only update the thread getwork queue count if it actually results in a getwork request from the server.
|
|
5b9bfedd
|
2011-07-29T00:40:47
|
|
Display the correct current hash as per blockexplorer, truncated to 16 characters, with just the time.
|
|
c94737ce
|
2011-07-28T12:44:50
|
|
Add http:// if it's not explicitly set for URL entries.
|
|
f0fe82ea
|
2011-07-28T10:49:36
|
|
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.
|
|
10fa821e
|
2011-07-28T10:46:28
|
|
Update utility and efficiency figures when displaying them.
|
|
0006eb2d
|
2011-07-28T10:36:48
|
|
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.
|
|
da06a348
|
2011-07-28T10:03:31
|
|
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.
|
|
a0924933
|
2011-07-28T09:59:18
|
|
Restarting a hung GPU can hang the rest of the GPUs so just declare it dead and provide the information in the status.
|
|
45faff2e
|
2011-07-27T22:28:41
|
|
Add debugging output to all tq_pop calls.
|
|
2e2b2ba1
|
2011-07-27T22:20:57
|
|
Add debugging output to tq_push calls.
|
|
70fa8f31
|
2011-07-27T21:58:08
|
|
Make the display options clearer.
|
|
c7978f11
|
2011-07-27T20:40:06
|
|
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.
|
|
e82e3902
|
2011-07-27T16:40:52
|
|
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.
|
|
9c12d496
|
2011-07-27T16:29:37
|
|
Attribute split work as local work generation.
|
|
720032da
|
2011-07-27T15:11:57
|
|
Make sure to decrease queued count if we discard the work.
|
|
967acd39
|
2011-07-27T15:06:04
|
|
Don't put an extra work item in the queue as each new device thread will do so itself.
|
|
82698fbf
|
2011-07-27T15:01:08
|
|
Do away with queueing work separately at the start and let each thread grab its own work as soon as it's ready.
|
|
6cc8d22b
|
2011-07-27T14:53:43
|
|
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.
|
|
45d54357
|
2011-07-27T14:29:51
|
|
Make cpu mining work submission asynchronous as well.
|
|
380d145c
|
2011-07-27T14:03:01
|
|
Make threads report out when they're queueing a request and report if they've failed.
|
|
324dd93b
|
2011-07-27T10:36:16
|
|
Don't take more than one lock at a time.
|
|
98f609b5
|
2011-07-27T10:31:44
|
|
Sanity check to prove locking.
|
|
c7284028
|
2011-07-27T10:00:58
|
|
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.
|
|
a4889582
|
2011-07-27T09:41:52
|
|
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.
|
|
6f905932
|
2011-07-27T08:32:25
|
|
Only free the thread structures if the thread still exists.
|
|
40bc82d4
|
2011-07-27T02:03:59
|
|
Don't adjust hash_div only up for GPUs. Disable hash_div adjustment for GPUs.
|
|
1aadfc58
|
2011-07-27T01:41:16
|
|
Two redraws in a row cause a crash in old libncurses so just do one redraw using the main window.
|
|
93b284db
|
2011-07-26T23:17:25
|
|
Best to serialise the restarting of threads to avoid device initialisation issues.
|
|
d5d56920
|
2011-07-26T22:41:42
|
|
Off by one limit in device selection.
|
|
f9bc3771
|
2011-07-26T21:40:11
|
|
The first work item is tricky so don't try and divide it up to begin with.
|
|
1536e085
|
2011-07-26T20:48:05
|
|
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).
|
|
7e7a5f77
|
2011-07-26T15:16:39
|
|
Don't request work too early for CPUs as CPUs will scan for the full opt_scantime anyway.
|
|
6045c4d1
|
2011-07-26T13:47:18
|
|
Simplify gpu management enable/disable/restart code.
|
|
fa17f034
|
2011-07-26T11:58:45
|
|
Implement much more accurate rolling statistics per thread and per gpu and improve accuracy of rolling displayed values.
|
|
ce6af968
|
2011-07-26T10:45:52
|
|
Make the rolling log-second average more accurate.
|
|
7707ed4d
|
2011-07-26T10:26:03
|
|
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.
|
|
7143c25b
|
2011-07-25T16:44:24
|
|
The last pool is when we are low in total_pools, not active_pools.
|
|
a53716dc
|
2011-07-25T13:59:34
|
|
Fix compiler warnings.
|
|
b3d20b57
|
2011-07-25T13:55:01
|
|
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.
|
|
a187fe1e
|
2011-07-25T13:00:44
|
|
Try to do every curses manipulation under the curses lock.
|
|
508c5c4b
|
2011-07-24T12:07:44
|
|
Detect when the primary pool is lagging and start queueing requests on backup pools if possible before needing to roll work.
|
|
afcff070
|
2011-07-24T11:25:23
|
|
Load balancing puts more into the current pool if there are disabled pools. Fix.
|
|
27c7d2a4
|
2011-07-24T10:59:19
|
|
Disable a GPU device should the thread fail to init.
|
|
9a928e34
|
2011-07-24T08:55:16
|
|
Fix possible dereference on blank inputs during input_pool.
|
|
1a789a40
|
2011-07-24T08:51:07
|
|
Defines missing would segfault on --help when no sse mining is built in.
|
|
fd473afe
|
2011-07-24T08:44:14
|
|
Revert "Free up resources/stale compilers."
This reverts commit b4960ec36bca6663ecb0853752d0d777d81f9df1.
Didn't help and might have caused other issues.
|