Con Kolivas
720032dacd
Make sure to decrease queued count if we discard the work.
14 years ago
Con Kolivas
967acd39bd
Don't put an extra work item in the queue as each new device thread will do so itself.
14 years ago
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.
14 years ago
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.
14 years ago
Con Kolivas
45d5435781
Make cpu mining work submission asynchronous as well.
14 years ago
Con Kolivas
380d145c64
Make threads report out when they're queueing a request and report if they've failed.
14 years ago
Con Kolivas
324dd93bb7
Don't take more than one lock at a time.
14 years ago
Con Kolivas
98f609b5be
Sanity check to prove locking.
14 years ago
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.
14 years ago
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.
14 years ago
Con Kolivas
6f905932af
Only free the thread structures if the thread still exists.
14 years ago
Con Kolivas
40bc82d4ca
Don't adjust hash_div only up for GPUs. Disable hash_div adjustment for GPUs.
14 years ago
Con Kolivas
1aadfc580b
Two redraws in a row cause a crash in old libncurses so just do one redraw using the main window.
14 years ago
Con Kolivas
93b284dbca
Best to serialise the restarting of threads to avoid device initialisation issues.
14 years ago
Con Kolivas
d5d56920dd
Off by one limit in device selection.
14 years ago
Con Kolivas
f9bc3771b4
The first work item is tricky so don't try and divide it up to begin with.
14 years ago
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).
14 years ago
Con Kolivas
7e7a5f777e
Don't request work too early for CPUs as CPUs will scan for the full opt_scantime anyway.
14 years ago
Con Kolivas
6045c4d161
Simplify gpu management enable/disable/restart code.
14 years ago
Con Kolivas
fa17f03432
Implement much more accurate rolling statistics per thread and per gpu and improve accuracy of rolling displayed values.
14 years ago
Con Kolivas
ce6af96821
Make the rolling log-second average more accurate.
14 years ago
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.
14 years ago
Con Kolivas
7143c25b72
The last pool is when we are low in total_pools, not active_pools.
14 years ago
Con Kolivas
a53716dc7f
Fix compiler warnings.
14 years ago
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.
14 years ago
Con Kolivas
a187fe1e7b
Try to do every curses manipulation under the curses lock.
14 years ago
Con Kolivas
508c5c4b12
Detect when the primary pool is lagging and start queueing requests on backup pools if possible before needing to roll work.
14 years ago
Con Kolivas
afcff07012
Load balancing puts more into the current pool if there are disabled pools. Fix.
14 years ago
Con Kolivas
27c7d2a480
Disable a GPU device should the thread fail to init.
14 years ago
Con Kolivas
9a928e3407
Fix possible dereference on blank inputs during input_pool.
14 years ago
Con Kolivas
1a789a40c7
Defines missing would segfault on --help when no sse mining is built in.
14 years ago
Con Kolivas
fd473afedc
Revert "Free up resources/stale compilers."
...
This reverts commit b4960ec36b
.
Didn't help and might have caused other issues.
14 years ago
Con Kolivas
f3c5f55481
Only try to print the status of active devices.
14 years ago
Con Kolivas
020cf7d63f
Build support in for all SSE if possible and only set the default according to machine capabilities.
14 years ago
Con Kolivas
039a5ea7cd
No need to make leaveok changes win32 only.
14 years ago
Con Kolivas
a9e1a25518
Make it possible to select the choice of kernel on the command line.
14 years ago
Con Kolivas
116a9dc025
Update phatk kernel to one with new parameters for slightly less overhead again.
...
Make the queue kernel parameters call a function pointer to select phatk or poclbm.
14 years ago
Con Kolivas
b5358483c3
Cannot print the status of threads that don't exist so just queue enough work for the number of mining threads to prevent crash with -Q N.
14 years ago
Ycros
e04aee24d3
Win32: Fix for mangled output on the terminal on exit.
14 years ago
Con Kolivas
8d4fbc3258
Clear log window from consistent place. No need for locking since logging is disabled during input.
14 years ago
Con Kolivas
ba89a0a44f
Unlocking error on retry. Locking unnecessary anyway so remove it.
14 years ago
Con Kolivas
f94ca32dcf
Make sure intensity is carried over to thread count and is at least the minimum necessary to work.
14 years ago
Ycros
d37c3fe56b
Win32 threading and longpoll keepalive fixes.
14 years ago
Con Kolivas
e83a32a4e2
Remove the mandatory work requirement at startup by testing for invalid work being passed which allows for work to be queued immediately.
...
This also removes the requirement for resetting the timecodes at the start which caused huge over-estimates of hashing for a short period.
14 years ago
Con Kolivas
61e555e44c
Tell getwork how much of a work item we're likely to complete for future splitting up of work.
14 years ago
Con Kolivas
9e42d63cd6
With huge variation in GPU performance, allow intensity to go from -10 to +10.
14 years ago
Con Kolivas
61e5cc10e9
Extra refresh not required.
14 years ago
Con Kolivas
ae6eb1b0a3
Decrease testing log to info level.
14 years ago
Con Kolivas
ec86da70e1
Limit rolltime work generation to 10 iterations only.
14 years ago
Con Kolivas
6e9b6bf840
Implement pool removal.
14 years ago