1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-13 08:17:59 +00:00
Commit Graph

302 Commits

Author SHA1 Message Date
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
Con Kolivas
a187fe1e7b Try to do every curses manipulation under the curses lock. 2011-07-25 13:00:44 +10:00
Con Kolivas
508c5c4b12 Detect when the primary pool is lagging and start queueing requests on backup pools if possible before needing to roll work. 2011-07-24 12:07:44 +10:00
Con Kolivas
afcff07012 Load balancing puts more into the current pool if there are disabled pools. Fix. 2011-07-24 11:25:23 +10:00
Con Kolivas
27c7d2a480 Disable a GPU device should the thread fail to init. 2011-07-24 10:59:19 +10:00
Con Kolivas
9a928e3407 Fix possible dereference on blank inputs during input_pool. 2011-07-24 08:55:16 +10:00
Con Kolivas
1a789a40c7 Defines missing would segfault on --help when no sse mining is built in. 2011-07-24 08:51:07 +10:00
Con Kolivas
fd473afedc Revert "Free up resources/stale compilers."
This reverts commit b4960ec36b.

Didn't help and might have caused other issues.
2011-07-24 08:44:14 +10:00
Con Kolivas
f3c5f55481 Only try to print the status of active devices. 2011-07-24 08:42:07 +10:00
Con Kolivas
020cf7d63f Build support in for all SSE if possible and only set the default according to machine capabilities. 2011-07-23 16:19:51 +10:00
Con Kolivas
039a5ea7cd No need to make leaveok changes win32 only. 2011-07-23 16:17:28 +10:00
Ycros
a150140eb7 Merge branch 'cgminer' of git://github.com/ckolivas/cgminer into cgminer 2011-07-23 16:00:49 +10:00
Con Kolivas
a9e1a25518 Make it possible to select the choice of kernel on the command line. 2011-07-23 15:15:46 +10:00
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.
2011-07-23 14:17:25 +10:00
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. 2011-07-23 09:37:22 +10:00
Ycros
e615b61f0a Merge branch 'cgminer' of git://github.com/ckolivas/cgminer into cgminer 2011-07-23 02:26:07 +10:00
Ycros
e04aee24d3 Win32: Fix for mangled output on the terminal on exit. 2011-07-23 02:25:54 +10:00
Con Kolivas
8d4fbc3258 Clear log window from consistent place. No need for locking since logging is disabled during input. 2011-07-23 00:45:03 +10:00
Con Kolivas
ba89a0a44f Unlocking error on retry. Locking unnecessary anyway so remove it. 2011-07-23 00:33:01 +10:00
Con Kolivas
f94ca32dcf Make sure intensity is carried over to thread count and is at least the minimum necessary to work. 2011-07-22 23:53:24 +10:00
Ycros
d37c3fe56b Win32 threading and longpoll keepalive fixes. 2011-07-22 23:43:26 +10:00
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.
2011-07-22 23:37:50 +10:00
Con Kolivas
61e555e44c Tell getwork how much of a work item we're likely to complete for future splitting up of work. 2011-07-22 22:22:14 +10:00
Con Kolivas
9e42d63cd6 With huge variation in GPU performance, allow intensity to go from -10 to +10. 2011-07-22 21:57:43 +10:00
Con Kolivas
61e5cc10e9 Extra refresh not required. 2011-07-22 20:12:32 +10:00
Con Kolivas
ae6eb1b0a3 Decrease testing log to info level. 2011-07-22 20:07:15 +10:00
Con Kolivas
ec86da70e1 Limit rolltime work generation to 10 iterations only. 2011-07-22 20:06:06 +10:00
Con Kolivas
6e9b6bf840 Implement pool removal. 2011-07-22 17:46:28 +10:00
Con Kolivas
532587eba4 Set priority correctly on multipools.
Display priority and alive/dead information in display_pools.
2011-07-22 17:23:57 +10:00
Con Kolivas
56defd6e0b Make it possible to enable/disable longpoll. 2011-07-22 17:02:29 +10:00
Con Kolivas
53529a842d Abstract out the longpoll start and explicitly restart it on pool change. 2011-07-22 16:51:38 +10:00
Con Kolivas
62c8a8c1e1 Allow scan settings to be modified at runtime. 2011-07-22 16:32:38 +10:00
Con Kolivas
a8c84da4c9 Allow log interval to be set in the menu. 2011-07-22 16:10:47 +10:00
Con Kolivas
2f976c7406 Make the input windows update immediately instead of needing a refresh. 2011-07-22 15:17:09 +10:00
Con Kolivas
0909facfaf Clean up the messy way the staging thread communicates with the longpoll thread to determine who found the block first. 2011-07-22 15:00:57 +10:00
Con Kolivas
0106c56797 Add a menu and separate out display options. 2011-07-22 14:29:48 +10:00
Con Kolivas
4bfa2809c3 Display pool information on the fly as well. 2011-07-22 14:07:50 +10:00
Con Kolivas
75bf36ff0e Allow the pool strategy to be modified on the fly. 2011-07-22 13:58:06 +10:00
Con Kolivas
cca6f49ef8 Abstract out active pools count. 2011-07-22 12:39:32 +10:00
Con Kolivas
31a8944564 Tidy. 2011-07-22 12:33:54 +10:00
Con Kolivas
ad53696f3f The longpoll blanking of the current_block data may not be happening before the work is converted and appears to be a detected block change.
Blank the current block before submitting the work and stop passing the longpoll bool around.
2011-07-22 12:17:44 +10:00
Con Kolivas
44bcc32234 Display current pool management strategy to enable changing it on the fly. 2011-07-22 12:14:24 +10:00
Con Kolivas
b534ad0aad Only internally test for block changes when the work matches the current pool to prevent interleaved block change timing on multipools. 2011-07-22 12:02:04 +10:00
Con Kolivas
b0a8f279f7 Implement the ability to live add, enable, disable, and switch to pools. 2011-07-22 11:46:26 +10:00
Con Kolivas
baddb82ad9 Do one last check of the work before submitting it. 2011-07-22 07:50:20 +10:00
Con Kolivas
20336ea15d Make input pool capable of bringing up pools while running. 2011-07-21 15:15:38 +10:00
Con Kolivas
7841486f83 Add a bool for explicit enabling/disabling of pools. 2011-07-21 14:41:12 +10:00
Con Kolivas
0bc9574628 Add pool option to input and display current pool status, pending code to allow live changes. 2011-07-21 14:29:33 +10:00
Con Kolivas
ec06940c21 Add a thread that takes keyboard input and allow for quit, silent, debug, verbose, normal, rpc protocol debugging and clear screen options. 2011-07-21 14:05:08 +10:00
Con Kolivas
b4f651f4ff Disable/enable echo & cbreak modes. 2011-07-21 13:26:18 +10:00
Con Kolivas
6fdbe01412 Remove the nil arguments check to allow starting without parameters. 2011-07-21 13:11:15 +10:00
Con Kolivas
9d60b107f1 Abstract out a curses input function and separate input pool function to allow for live adding of pools later. 2011-07-21 13:08:36 +10:00
Con Kolivas
365c90096c Make it possible to enter server credentials with curses input if none are specified on the command line. 2011-07-21 12:25:21 +10:00
Con Kolivas
2b7e5e58c8 Enable curses earlier and exit with message in main for messages to not be lost in curses windows. 2011-07-21 11:46:01 +10:00
Con Kolivas
4766463b78 Only set option to show devices and exit if built with opencl support. 2011-07-21 11:07:51 +10:00
Con Kolivas
f4f018b498 Don't try to stop/cancel threads that don't exist. 2011-07-21 10:15:17 +10:00
Con Kolivas
b4960ec36b Free up resources/stale compilers. 2011-07-21 09:48:06 +10:00
Con Kolivas
fa9e03f487 Implement pool rotation strategy. 2011-07-20 13:48:23 +10:00
Con Kolivas
521025aa75 Implement load balancing algorithm by rotating requests to each pool. 2011-07-20 13:35:55 +10:00
Con Kolivas
0ba06c69f9 Timeout on failed discarding of staged requests. 2011-07-20 13:15:52 +10:00
Con Kolivas
6305146bea Implement proper flagging of idle pools, test them with the watchdog thread, and failover correctly. 2011-07-20 13:07:41 +10:00
Con Kolivas
7c8919328c Move pool active test to own function. 2011-07-20 11:49:03 +10:00
Con Kolivas
40419f1a78 Allow multiple strategies to be set for multipool management. 2011-07-20 11:39:02 +10:00