1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-11 07:17:58 +00:00
Commit Graph

506 Commits

Author SHA1 Message Date
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
Con Kolivas
d518f7cbfd Track pool number. 2011-07-20 11:27:21 +10:00
Con Kolivas
02e0e12529 Don't waste the work items queued on testing the pools at startup. 2011-07-20 10:07:39 +10:00
Con Kolivas
ced0e5ad81 Reinstate the mining thread watchdog restart.
Add a getpoll bool into the thread information and don't restart threads stuck waiting on work.
Rename the idlenet bool for the pool for later use.
2011-07-20 09:31:45 +10:00
Con Kolivas
0afab92cd4 Allow the user/pass userpass urls to be input in any order. 2011-07-19 23:16:30 +10:00
Con Kolivas
0d8b8793b5 Reset the queued count to allow more work to be queued for the new pool on pool switch. 2011-07-19 17:00:56 +10:00
Con Kolivas
012456f3b7 Display per pool summary at the end if multiple pools in use. Fine tune statistics and make localgen fail at 5 mins. 2011-07-19 14:33:52 +10:00
Con Kolivas
85bf965cda Force a mandatory work item on pool switch and determine what to do based on server supporting roll time or not. 2011-07-19 14:09:36 +10:00
Con Kolivas
f91a048ae7 Implement the actual switch logic which changes over after 5 minutes of local work generation. 2011-07-19 13:30:29 +10:00
Con Kolivas
81ff7fb3dc Explicitly probe each pool to see if work can be retrieved from it and what it supports. 2011-07-19 13:01:08 +10:00
Con Kolivas
913e120262 Test for rolltime and save it correctly when testing for longpoll. 2011-07-19 12:29:33 +10:00
Con Kolivas
0ce3df10d2 Store whether each server supports X-Roll-Ntime or not. 2011-07-19 11:45:58 +10:00
Con Kolivas
321c4798d4 Make longpoll switch servers should it not match the current pool. 2011-07-19 10:53:04 +10:00
Con Kolivas
529aa70c38 Set pool on work retrieved from longpoll. 2011-07-19 10:32:24 +10:00
Con Kolivas
048bea201f Set first localgen time to max. 2011-07-19 10:31:05 +10:00
Con Kolivas
ecda75946b Set and get the current pool under lock. 2011-07-19 10:19:59 +10:00
Con Kolivas
b8ba2fd44e Implement a per-pool mutex and use that for locking the internal flags. 2011-07-19 09:54:50 +10:00
Con Kolivas
fd10b993b0 Move add pool to somewhere clean and obvious. 2011-07-19 09:43:15 +10:00
Con Kolivas
7073493911 Merge branch 'cgminer' into pools
Conflicts:
	main.c
2011-07-19 01:46:16 +10:00
Con Kolivas
a46b5d1e0a Make it possible to pass multiple urls/users etc in preparation for multiple pool support but only use pool 0 for now. 2011-07-19 01:27:56 +10:00
Con Kolivas
19b80d6db3 Curl's global init can trample dynamically allocated data so do it before anything else. 2011-07-19 00:14:58 +10:00
Con Kolivas
961c43067b Abstract out the pool data to begin move to multiple pool support. 2011-07-19 00:09:45 +10:00
Con Kolivas
1d27c119b6 Don't let total_queued go below zero. 2011-07-18 22:02:10 +10:00
Con Kolivas
8220af8806 Avoid queueing extra work if there's work staged as well. 2011-07-18 20:22:16 +10:00
Con Kolivas
c3e569ed9b Copied the data to longpoll_block too early so the longpoll message will rarely be received.
Submit longpoll's converted work after we've flushed requests since that will blank the current_block for stage_thread to see.
2011-07-18 13:16:15 +10:00
Con Kolivas
5e7c37aebb Make it clear what the sha algorithm is for. 2011-07-18 12:02:37 +10:00
Con Kolivas
e532ac354a Only clear the longpoll block data if we successfully received a longpoll, and do it before converting the longpoll data to work to avoid the staging thread believing it got the new work before the longpoll. 2011-07-18 11:37:33 +10:00
Con Kolivas
01eb4c599d Minimise impact on GUIs by dropping priority and policy in gpu mining threads if dynamic mode is enabled. 2011-07-18 11:36:54 +10:00
Con Kolivas
0aa9887300 Add an sse4 algorithm to CPU mining. 2011-07-18 11:27:58 +10:00
Con Kolivas
fc184625d2 We now are guaranteed to have one fresh work item after a block change and we should only discard staged requests. 2011-07-18 10:33:31 +10:00
Con Kolivas
d53ee8e71b Don't waste the work we retrieve from a longpoll. 2011-07-18 10:19:22 +10:00
Con Kolivas
0c253734e1 Provide a control lock around global bools to avoid racing on them. 2011-07-18 10:12:38 +10:00
Con Kolivas
b6ac9f185e Revert "Make sure not to try and submit work for nonces higher than already submitted in current work item."
This reverts commit a2dd410e36.

Incorrect fix. Missed real shares that are accepted.
2011-07-17 20:06:43 +10:00
Con Kolivas
1d45b7f475 Revert "Don't miss first work item."
This reverts commit 57f5893f4a.

Start reverting. This fix didn't help.
2011-07-17 20:06:25 +10:00
Con Kolivas
57f5893f4a Don't miss first work item. 2011-07-17 19:36:17 +10:00
Con Kolivas
a2dd410e36 Make sure not to try and submit work for nonces higher than already submitted in current work item.
This reduces rejects substantially.
2011-07-17 19:33:53 +10:00
Con Kolivas
eb91b03e22 Show last 8 characters of the share submitted. 2011-07-16 23:31:32 +10:00
Con Kolivas
96cc141ba2 Display URL connected to and user connected as in status. 2011-07-16 17:43:04 +10:00
Con Kolivas
3e032b8a8d Display current block and when it was started in status line. 2011-07-16 12:48:15 +10:00
Con Kolivas
a1339d723f Only pthread_join the mining threads if they exist as determined by pthread_cancel. 2011-07-16 11:06:58 +10:00
Con Kolivas
3cb7ef2b07 Create a unique get work queue instead of faking it all to thread 0. 2011-07-16 10:46:50 +10:00
Con Kolivas
0a9db84d26 Make it clear the restart message is going to the watchdog thread. 2011-07-16 10:33:01 +10:00
Con Kolivas
8203cc67eb Check the current block description hasn't been blanked pending the real new current block data. 2011-07-16 10:28:59 +10:00
Con Kolivas
18af4e6272 Re-enable signal handlers once the custom sighandler has been hit to make it possible to still kill cgminer. 2011-07-16 10:13:49 +10:00
Con Kolivas
70edd0d36f Disable restarting of CPU mining threads pending further investigation. They may not need it and are easily killed off. 2011-07-16 02:55:43 +10:00
Con Kolivas
274022f260 Message too verbose. Simplify it. 2011-07-16 02:07:52 +10:00
Con Kolivas
55695066b6 Display appropriate messages with/without longpoll to make it clear if stalls happen that cgminer is waiting on more work. 2011-07-16 01:57:04 +10:00
Con Kolivas
3785e50d3f Add new block data to status line. 2011-07-16 01:47:58 +10:00
Con Kolivas
77b0f946f6 Only do local generation of work if existing work is not stale. 2011-07-16 00:52:57 +10:00
Con Kolivas
4a94199246 Abstract out the test for stale work and test for it in the actual mining threads as well. 2011-07-16 00:34:05 +10:00
Con Kolivas
6dcf05ffaf Make sure that local work generation does not proceed indefinitely by limiting it to the average block generation time - 10 minutes.
Doing more work will just waste power and will virtually never produce accepted shares.
2011-07-15 23:35:38 +10:00
Con Kolivas
aeaeac0889 Allow queue of zero again and make it default since we can track queued vs staged now and see if the queue needs to be bigger. 2011-07-15 10:42:06 +10:00
Con Kolivas
8a40036974 Just insist on 1 lp staged work per mining thread on new block. 2011-07-15 10:27:48 +10:00
Con Kolivas
4c9171792b Limit the number of work items we put in the queue. 2011-07-15 09:48:26 +10:00
Con Kolivas
32221c4574 We shouldn't be deleting lp_staged value on dec_staged. It prevents detecting get_work failures. 2011-07-15 09:39:29 +10:00
Con Kolivas
23e4add229 Add a system status line to the formatted output. 2011-07-15 09:38:52 +10:00
Con Kolivas
34ecc59f4d Forgot to set total_devices for the purposes of finding a positive active_device. 2011-07-15 08:56:52 +10:00
Con Kolivas
579bd42919 Revert "Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances."
This reverts commit 7b9b078114.

Conflicts:

	util.c

Timeout was a bandaid for other going-idle reasons and never helped. Revert it.
2011-07-15 08:53:05 +10:00
Con Kolivas
6ab2966035 Limit display to total devices to avoid repeating when selecting devices. 2011-07-15 01:11:47 +10:00
Con Kolivas
5fd73374b3 Get the device number from the thread id, not the other way around. 2011-07-15 01:08:23 +10:00
Con Kolivas
2864892e7b Make sure we are working with the correct id devices and only print out the ones that are active. 2011-07-15 01:05:36 +10:00
Con Kolivas
86987b65ab Refresh is missing after each curses_print_status to update the status window. 2011-07-14 23:55:03 +10:00
Con Kolivas
636c425073 Trivial EOL. 2011-07-14 23:46:32 +10:00
Con Kolivas
5bbd3134c3 Show the correct gpu devices only. 2011-07-14 23:43:00 +10:00
Con Kolivas
c36cc61f64 Ensure we connect at least once successfully before continuing to try to connect. 2011-07-14 22:16:06 +10:00
Con Kolivas
e21e923648 Make the curses interface optional with a new --text-only -T option. 2011-07-14 21:46:22 +10:00
Con Kolivas
ed11501742 Make the curses output separate from regular text output and put an executive summary after curses is shut down when cgminer exits. 2011-07-14 21:25:32 +10:00
Con Kolivas
c4cc83dceb Explicitly grab first work item before entering asynchronous loop to prevent apparent HW errors when first starting due to stale data on the GPU. 2011-07-14 18:39:52 +10:00
Con Kolivas
df43b7135e Add start time datestamp to status output. 2011-07-14 18:24:56 +10:00
Con Kolivas
4c859f3284 Make setting of intensity implicitly disable dynamic mode and remove the option to disable dynamic mode by itself. 2011-07-14 18:07:10 +10:00
Con Kolivas
fe8ab94a92 The max_nonce wasn't being reset on starting new work making cpu mining fail on each new work item. 2011-07-14 17:43:16 +10:00
Con Kolivas
3d900e7bc2 Initialise gpu_ms_average. 2011-07-14 11:47:56 +10:00
Con Kolivas
ba4ba7f65c Only restart threads that are not stuck waiting on lp staged work, and add one mandatory queued work item for each restart. 2011-07-14 11:26:56 +10:00
Con Kolivas
7e38a37a54 Fix compiler warnings. 2011-07-14 11:05:12 +10:00
Con Kolivas
20b3e07f63 Implement signal handler and clean up properly. 2011-07-14 11:03:14 +10:00
Con Kolivas
02cd113cd9 Tidy up display. 2011-07-14 10:13:22 +10:00
Con Kolivas
7d517dcfc1 Conflicting options with -n. Change ndevs to -e for enumerate devices. 2011-07-14 01:50:20 +10:00
Con Kolivas
8375d1a21a Add a dynamic flag that tries at all times to maintain the desktop interactive and make it possible to disable it for dedicated miners. 2011-07-13 15:22:06 +10:00
Con Kolivas
56d830a216 Trivial. 2011-07-13 12:08:43 +10:00
Con Kolivas
a8b39bcb7c Make the status window maximum width to begin with. 2011-07-13 12:07:16 +10:00
Con Kolivas
3a968490b2 Turn the wakeup thread into a watchdog thread that checks when the last time a thread reported in was and restarts the thread if it has been idle for more than a minute. 2011-07-13 12:05:04 +10:00
Con Kolivas
c23827cbcc Update the per-thread view as well to not miss dead threads. 2011-07-13 10:51:01 +10:00
Con Kolivas
81f8af85d6 Cope with servers that regularly drop the longpoll connection. 2011-07-13 10:42:12 +10:00
Con Kolivas
4de3f32a22 Move to newer jansson library. 2011-07-13 00:58:13 +10:00
Con Kolivas
bb4deaa245 strcat in longpoll thread can write outside of longpoll_block so cat them all in main(). 2011-07-12 22:36:30 +10:00
Con Kolivas
86bc0426c6 Remove unused variable. 2011-07-12 19:28:48 +10:00
Con Kolivas
7b9b078114 Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances. 2011-07-12 19:19:00 +10:00
Con Kolivas
222d4ee6bf Make curses completely inactivated in quiet mode and do not update curses code in wakeup thread when curses is inactive. 2011-07-12 17:29:59 +10:00
Con Kolivas
76b233a544 Implement locking around curses updates to avoid screen corruption and refresh both windows fully regularly from the wakeup thread which wakes up infrequently to not be too cpu intensive. 2011-07-12 17:03:13 +10:00
Con Kolivas
6d4476bba2 Use correct variable in initialisation. 2011-07-12 00:54:42 +10:00
Con Kolivas
ccf2ea914f Convert the log and status portions of the screen to two separate ncurses windows for simpler cleaner output. 2011-07-12 00:33:08 +10:00
Con Kolivas
c59e2ab8b6 Avoid possible divide by zero. 2011-07-11 22:57:17 +10:00
Con Kolivas
43ef5f5d3f Get rid of the flaky time_lock and use the thread safe localtime_r instead. 2011-07-11 22:45:19 +10:00
Con Kolivas
c836b5bf01 Don't try to find where the cursor is and just set it to the last line for logcursor. 2011-07-11 22:18:10 +10:00
Con Kolivas
73a864c51c vfprintf invalidates the va args so do it after the curses output. 2011-07-11 21:56:34 +10:00
Con Kolivas
a1ffba823e Refresh the display on every commit to applog since detecting bottom of the screen may be unreliable. 2011-07-11 21:22:22 +10:00
Con Kolivas
78ed386bb4 Delay any threads from starting till everything is set up properly. 2011-07-11 21:20:48 +10:00
Con Kolivas
b93e6a4254 Show all devices even if only selected are enabled. 2011-07-11 17:57:54 +10:00
Con Kolivas
505b18597b Merge https://github.com/ycros/cgminer into cgminer 2011-07-11 16:56:28 +10:00
Con Kolivas
215ee79056 thr_id can be successful as -1 which is wrong and could lead to a crash. 2011-07-11 16:52:18 +10:00
Ycros
386489a147 Added support for pdcurses. 2011-07-11 14:56:17 +10:00
Con Kolivas
92e04f47cb Make clear for multiple GPUs. 2011-07-11 13:46:01 +10:00
Con Kolivas
90839cdf5a Implement a completely curses based display and don't output to stderr when log is enabled unless it's redirected away from the terminal. 2011-07-11 13:41:31 +10:00
Con Kolivas
f12edd2fb8 Keep track of number of mining threads explicitly and only enforce that many work items on new block work. 2011-07-10 23:07:53 +10:00
Con Kolivas
94fdff9a3e Fix help typo. 2011-07-10 20:17:09 +10:00
Con Kolivas
75888a1f68 Implement device selection(s) with -d. 2011-07-10 20:14:28 +10:00
Con Kolivas
fbcd2942c8 Really correct the staged count logic failure. 2011-07-10 14:02:23 +10:00
Con Kolivas
82cac38874 Logic failure meant the longpoll fake staged were never removed. This would lead to idle periods and may have even caused complete idle failures. 2011-07-10 12:59:32 +10:00
Con Kolivas
8af98be7b9 Make the utility demonstrated relative to each device when showing per-device work submissions. 2011-07-10 01:01:34 +10:00
Con Kolivas
6464dbfc65 Implement per-device request count to have a per-device efficiency and request status. 2011-07-10 00:53:48 +10:00
Con Kolivas
3d9f244e02 Make all applog at least 80 columns wide obviating the need for spaces at the end of select messages to clear the status line. 2011-07-09 17:30:54 +10:00
Con Kolivas
5e6b8076c6 Tidy output. 2011-07-09 17:12:12 +10:00
Con Kolivas
1c92478997 Make sure to set first work as mandatory instead of generating work locally from it. 2011-07-09 17:11:22 +10:00
Con Kolivas
102c4d4088 Give meaningful message on submission failure and resumption instead of spam. 2011-07-09 17:06:30 +10:00
Ycros
f20e25e0c0 Moved pthread mutex inits up, due to applog using a mutex causing a crash.
Added Win32 compatability to opt.c.
2011-07-09 13:34:56 +10:00
Con Kolivas
c9bbaec3b2 Cope with delays in retrieving work from the server by knowing when we have run out of staged work.
Once we are out of staged work, roll the ntime forwards in the work to generate work locally without a getwork.
Display a message explaining when we move to/from local generation to server retrieval.
Make sure we don't think we've run out of work transiently after a longpoll by flagging a buffer of fake staged work.
2011-07-09 10:18:29 +10:00
Con Kolivas
3126002b51 When shares come frequently on more powerful mining hardware the status line doesn't appear for very long and gets drowned out by share information.
Cache the output and display it after each share submission.
2011-07-08 20:27:12 +10:00
Con Kolivas
a8be6851a9 Formalise the extra work item that the wakeup thread acts as a watchdog for. 2011-07-08 11:53:40 +10:00
Con Kolivas
732baa1812 Use the wakeup thread as a watchdog to ensure we don't fall between the holes of queue and dequeue. 2011-07-08 06:12:38 +10:00
Con Kolivas
bb49287449 Make longpoll aware of when new block detection has detected a new block first and avoid flushing the work queue twice. 2011-07-07 14:29:39 +10:00
Con Kolivas
186666d3d1 Prevent buffer overflow. 2011-07-07 10:43:52 +10:00
Con Kolivas
25bebf3b92 Make the output line much terser now that it has a lot of information on it. 2011-07-07 10:31:36 +10:00
Con Kolivas
1b2355176b Merge branch 'cgminer' into mfontani
Conflicts:
	main.c
2011-07-07 10:04:37 +10:00
Con Kolivas
ed233e8cb5 Put work into a staging area which makes it possible to check the latest work data received.
Then check the latest work data against a store of the current_block and use it to determine if we have moved to a new block.
This makes --no-longpoll work just as efficiently as longpoll, and works around when longpoll is unreliable.
2011-07-07 09:58:26 +10:00
Marco Fontani
c815de4991 Add "efficiency" and "utility"
Efficiency is the percentage of getworks compared to the amount of
work requested from the pool. It can go higher than 100% in case
more shares than getworks were found. Some pools prefer miners to
have a high efficiency; CPU miners likely exhibit a low efficiency.

Utility is the number of shares found per minute, since the miner
was started. It is another way to describe the effectiveness of
a miner.
2011-07-06 19:24:06 +01:00
Rusty Russell
efebee5ab8 Fix the case where there are no GPUs, and exit if they give errors.
If there are no GPUs, set nDevs to 0 not -1 (status is set to an
unhelpful -1001 here on my laptop, so we can't rely on a particular
status value).

Also, if nDevs is -1, exit rather than screwing up later.
2011-07-06 16:47:29 +09:30
Rusty Russell
8b68dc44d4 Fix --ndevs/-n option.
The option should be called from within the callback, and just use
printf to give the raw result, rather than using applog which prepends
a timestamp.
2011-07-06 16:47:29 +09:30
Rusty Russell
8d25df3c72 Cleanup --cpu-threads/-t logic
Currently it gets negated which means the default printed is wrong.
Use an explicit flag to tell if the user has overridden it; if they
haven't, and they turn off the GPUs, reset it to num_processors.
2011-07-06 16:47:29 +09:30
Rusty Russell
3e8181216c Use ccan/opt for commandline parsing.
This cleans up option handling, by using ccan/opt rather than
handcoded getopt_long.  We still have to open-code some things, such
as json config file handling.

The main change is that the --config option causes a file to be parsed
during commandline parsing, so you can override the results, and
provide multiple of them.

Other improvements are that 'help' and 'ndevs' are not valid arguments
in the config file; we use a separate argument table for such
commandline-only flags.
2011-07-06 16:47:29 +09:30
Con Kolivas
5969d65a04 First work for each thread is now queued in advance. 2011-07-06 15:57:50 +10:00
Con Kolivas
e9a397d4b9 More space to wipe old text. 2011-07-06 15:56:30 +10:00
Con Kolivas
e99069808a Fix the extra work queued every longpoll by queueing it all in the beginning. 2011-07-06 15:40:12 +10:00
Con Kolivas
719deb3aac Create a wakeup thread that keeps the hashmeter going in case the mining threads all stall. 2011-07-06 14:20:18 +10:00
Con Kolivas
ddae5aa9d0 Remove unused variable. 2011-07-06 13:29:01 +10:00
Con Kolivas
837e7b1a85 Remove unused cgpu rolling_local variable. 2011-07-06 13:28:29 +10:00
Con Kolivas
93800e5790 More output tidy. 2011-07-06 13:19:56 +10:00
Con Kolivas
56eee5f007 Retry should get_work() fail for whatever reason. 2011-07-06 13:16:47 +10:00
Con Kolivas
07f6de8b34 Change ifdef order since batch is always defined if idle is. 2011-07-06 13:05:57 +10:00
Con Kolivas
cf1e4627e4 Give error messages at all points of failure. 2011-07-06 13:04:35 +10:00
Con Kolivas
ed7e5bf9a3 There is still potential for an uneven number of queued and dropped work items with this unnecessarily complex check. Flush work guarantees a symmetrical number of queue and discard already. 2011-07-06 12:51:12 +10:00
Con Kolivas
69d8df643a More cleaning of output with detecting new block. 2011-07-06 08:59:51 +10:00
Con Kolivas
8333a2ff40 Improve output appearance +/- verbose mode. 2011-07-06 00:01:40 +10:00
Con Kolivas
1fb09eaa0e Implement -n/--ndevs option. 2011-07-05 23:11:05 +10:00
Con Kolivas
0ebdc39a19 Make debug mode imply verbose mode. 2011-07-05 23:07:18 +10:00
Con Kolivas
413e6b8645 Fix potential divide by zero. 2011-07-05 22:08:13 +10:00
Con Kolivas
0a80d4b04d Display the output as a refreshing line and only push continuous log to stderr if desired. 2011-07-05 22:04:54 +10:00
Con Kolivas
a93b22c630 Make it possible to build without GPU mining by picking up HAVE_OPENCL from config.h. 2011-07-05 17:34:54 +10:00
Con Kolivas
4172fec24a Cope with invalid parameter passing. 2011-07-05 16:47:19 +10:00
Con Kolivas
bc7cde7b36 Implement short option parsing. 2011-07-05 16:37:51 +10:00
Con Kolivas
13c57a5779 Properly initialise qd_lock mutex. 2011-07-05 15:18:13 +10:00
Con Kolivas
f90e73af51 Queue and pop precisely the same amount of work in flush_request to ensure all work is cleared and there isn't an uneven add/remove possible. 2011-07-05 10:47:47 +10:00
Con Kolivas
af6e7937ca Signal handling in dns lookup code is responsible for libcurl crashes when multithreading.
Disable signal handling and use many curl handles instead, thus making work more asynchronous.
Theoretically a curl can wait forever on a dns lookup with this but it's extremely unlikely.
2011-07-05 10:42:11 +10:00
Con Kolivas
91f9c527ba Rename code and application binary to cgminer version 1.0.9 preempting version 1.1.0, moving main code to main.c. 2011-07-04 20:33:31 +10:00