main.c


Log

Author Commit Date CI Message
Con Kolivas 7c891932 2011-07-20T11:49:03 Move pool active test to own function.
Con Kolivas 40419f1a 2011-07-20T11:39:02 Allow multiple strategies to be set for multipool management.
Con Kolivas d518f7cb 2011-07-20T10:24:25 Track pool number.
Con Kolivas 02e0e125 2011-07-20T10:07:39 Don't waste the work items queued on testing the pools at startup.
Con Kolivas ced0e5ad 2011-07-20T09:31:45 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.
Con Kolivas 0afab92c 2011-07-19T23:16:30 Allow the user/pass userpass urls to be input in any order.
Con Kolivas 0d8b8793 2011-07-19T17:00:56 Reset the queued count to allow more work to be queued for the new pool on pool switch.
Con Kolivas 012456f3 2011-07-19T14:33:52 Display per pool summary at the end if multiple pools in use. Fine tune statistics and make localgen fail at 5 mins.
Con Kolivas 85bf965c 2011-07-19T14:09:36 Force a mandatory work item on pool switch and determine what to do based on server supporting roll time or not.
Con Kolivas f91a048a 2011-07-19T13:30:29 Implement the actual switch logic which changes over after 5 minutes of local work generation.
Con Kolivas 81ff7fb3 2011-07-19T13:01:08 Explicitly probe each pool to see if work can be retrieved from it and what it supports.
Con Kolivas 913e1202 2011-07-19T12:29:33 Test for rolltime and save it correctly when testing for longpoll.
Con Kolivas 0ce3df10 2011-07-19T11:45:58 Store whether each server supports X-Roll-Ntime or not.
Con Kolivas 321c4798 2011-07-19T10:53:04 Make longpoll switch servers should it not match the current pool.
Con Kolivas 529aa70c 2011-07-19T10:32:24 Set pool on work retrieved from longpoll.
Con Kolivas 048bea20 2011-07-19T10:31:05 Set first localgen time to max.
Con Kolivas ecda7594 2011-07-19T10:19:59 Set and get the current pool under lock.
Con Kolivas b8ba2fd4 2011-07-19T09:54:50 Implement a per-pool mutex and use that for locking the internal flags.
Con Kolivas fd10b993 2011-07-19T09:43:15 Move add pool to somewhere clean and obvious.
Con Kolivas 3a9fd06c 2011-07-19T09:30:17 Revert "total_queued should always be >= total_staged" This reverts commit 5a861bf1e42cc56ad8c6477e5d348f76b09d1363. No good.
Con Kolivas 5a861bf1 2011-07-19T09:23:04 total_queued should always be >= total_staged
Con Kolivas 70734939 2011-07-19T01:46:16 Merge branch 'cgminer' into pools Conflicts: main.c
Con Kolivas a46b5d1e 2011-07-19T01:27:56 Make it possible to pass multiple urls/users etc in preparation for multiple pool support but only use pool 0 for now.
Con Kolivas 19b80d6d 2011-07-19T00:14:58 Curl's global init can trample dynamically allocated data so do it before anything else.
Con Kolivas 961c4306 2011-07-19T00:09:45 Abstract out the pool data to begin move to multiple pool support.
Con Kolivas 1d27c119 2011-07-18T22:02:10 Don't let total_queued go below zero.
Con Kolivas 8220af88 2011-07-18T20:22:16 Avoid queueing extra work if there's work staged as well.
Con Kolivas c3e569ed 2011-07-18T13:16:15 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.
Con Kolivas 5e7c37ae 2011-07-18T12:02:37 Make it clear what the sha algorithm is for.
Con Kolivas e532ac35 2011-07-18T11:37:33 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.
Con Kolivas 01eb4c59 2011-07-18T11:36:54 Minimise impact on GUIs by dropping priority and policy in gpu mining threads if dynamic mode is enabled.
Con Kolivas 0aa98873 2011-07-18T11:27:58 Add an sse4 algorithm to CPU mining.
Con Kolivas fc184625 2011-07-18T10:33:31 We now are guaranteed to have one fresh work item after a block change and we should only discard staged requests.
Con Kolivas d53ee8e7 2011-07-18T10:19:22 Don't waste the work we retrieve from a longpoll.
Con Kolivas 0c253734 2011-07-18T10:12:38 Provide a control lock around global bools to avoid racing on them.
Con Kolivas b6ac9f18 2011-07-17T20:06:43 Revert "Make sure not to try and submit work for nonces higher than already submitted in current work item." This reverts commit a2dd410e362116a12ac5609da77abb3a5ee1b736. Incorrect fix. Missed real shares that are accepted.
Con Kolivas 1d45b7f4 2011-07-17T20:06:25 Revert "Don't miss first work item." This reverts commit 57f5893f4aabdfdbb1395034fefe4ee6c9b8f8ea. Start reverting. This fix didn't help.
Con Kolivas 57f5893f 2011-07-17T19:36:17 Don't miss first work item.
Con Kolivas a2dd410e 2011-07-17T19:33:53 Make sure not to try and submit work for nonces higher than already submitted in current work item. This reduces rejects substantially.
Con Kolivas eb91b03e 2011-07-16T23:31:32 Show last 8 characters of the share submitted.
Con Kolivas 96cc141b 2011-07-16T17:43:04 Display URL connected to and user connected as in status.
Con Kolivas 3e032b8a 2011-07-16T12:48:15 Display current block and when it was started in status line.
Con Kolivas a1339d72 2011-07-16T11:06:58 Only pthread_join the mining threads if they exist as determined by pthread_cancel.
Con Kolivas 3cb7ef2b 2011-07-16T10:46:50 Create a unique get work queue instead of faking it all to thread 0.
Con Kolivas 0a9db84d 2011-07-16T10:33:01 Make it clear the restart message is going to the watchdog thread.
Con Kolivas 8203cc67 2011-07-16T10:28:59 Check the current block description hasn't been blanked pending the real new current block data.
Con Kolivas 18af4e62 2011-07-16T10:13:49 Re-enable signal handlers once the custom sighandler has been hit to make it possible to still kill cgminer.
Con Kolivas 70edd0d3 2011-07-16T02:55:43 Disable restarting of CPU mining threads pending further investigation. They may not need it and are easily killed off.
Con Kolivas 274022f2 2011-07-16T02:07:52 Message too verbose. Simplify it.
Con Kolivas 55695066 2011-07-16T01:57:04 Display appropriate messages with/without longpoll to make it clear if stalls happen that cgminer is waiting on more work.
Con Kolivas 3785e50d 2011-07-16T01:47:58 Add new block data to status line.
Con Kolivas 77b0f946 2011-07-16T00:52:57 Only do local generation of work if existing work is not stale.
Con Kolivas 4a941992 2011-07-16T00:34:05 Abstract out the test for stale work and test for it in the actual mining threads as well.
Con Kolivas 6dcf05ff 2011-07-15T23:35:38 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.
Con Kolivas aeaeac08 2011-07-15T10:42:06 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.
Con Kolivas 8a400369 2011-07-15T10:27:48 Just insist on 1 lp staged work per mining thread on new block.
Con Kolivas 4c917179 2011-07-15T09:48:26 Limit the number of work items we put in the queue.
Con Kolivas 32221c45 2011-07-15T09:39:29 We shouldn't be deleting lp_staged value on dec_staged. It prevents detecting get_work failures.
Con Kolivas 23e4add2 2011-07-15T09:38:52 Add a system status line to the formatted output.
Con Kolivas 34ecc59f 2011-07-15T08:56:52 Forgot to set total_devices for the purposes of finding a positive active_device.
Con Kolivas 579bd429 2011-07-15T08:53:05 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 7b9b0781146dde69378d53bafd3c8817fb8909e9. Conflicts: util.c Timeout was a bandaid for other going-idle reasons and never helped. Revert it.
Con Kolivas 6ab29660 2011-07-15T01:11:47 Limit display to total devices to avoid repeating when selecting devices.
Con Kolivas 5fd73374 2011-07-15T01:08:23 Get the device number from the thread id, not the other way around.
Con Kolivas 2864892e 2011-07-15T01:05:36 Make sure we are working with the correct id devices and only print out the ones that are active.
Con Kolivas 86987b65 2011-07-14T23:55:03 Refresh is missing after each curses_print_status to update the status window.
Con Kolivas 636c4250 2011-07-14T23:46:32 Trivial EOL.
Con Kolivas 5bbd3134 2011-07-14T23:43:00 Show the correct gpu devices only.
Con Kolivas c36cc61f 2011-07-14T22:16:06 Ensure we connect at least once successfully before continuing to try to connect.
Con Kolivas e21e9236 2011-07-14T21:46:22 Make the curses interface optional with a new --text-only -T option.
Con Kolivas ed115017 2011-07-14T21:25:32 Make the curses output separate from regular text output and put an executive summary after curses is shut down when cgminer exits.
Con Kolivas c4cc83dc 2011-07-14T18:39:52 Explicitly grab first work item before entering asynchronous loop to prevent apparent HW errors when first starting due to stale data on the GPU.
Con Kolivas df43b713 2011-07-14T18:24:56 Add start time datestamp to status output.
Con Kolivas 4c859f32 2011-07-14T18:07:10 Make setting of intensity implicitly disable dynamic mode and remove the option to disable dynamic mode by itself.
Con Kolivas fe8ab94a 2011-07-14T17:43:16 The max_nonce wasn't being reset on starting new work making cpu mining fail on each new work item.
Con Kolivas 3d900e7b 2011-07-14T11:47:56 Initialise gpu_ms_average.
Con Kolivas ba4ba7f6 2011-07-14T11:26:56 Only restart threads that are not stuck waiting on lp staged work, and add one mandatory queued work item for each restart.
Con Kolivas 7e38a37a 2011-07-14T11:05:12 Fix compiler warnings.
Con Kolivas 20b3e07f 2011-07-14T11:03:14 Implement signal handler and clean up properly.
Con Kolivas 02cd113c 2011-07-14T10:13:22 Tidy up display.
Con Kolivas 7d517dcf 2011-07-14T01:50:20 Conflicting options with -n. Change ndevs to -e for enumerate devices.
Con Kolivas 8375d1a2 2011-07-13T15:22:06 Add a dynamic flag that tries at all times to maintain the desktop interactive and make it possible to disable it for dedicated miners.
Con Kolivas 56d830a2 2011-07-13T12:08:43 Trivial.
Con Kolivas a8b39bcb 2011-07-13T12:07:16 Make the status window maximum width to begin with.
Con Kolivas 3a968490 2011-07-13T12:05:04 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.
Con Kolivas c23827cb 2011-07-13T10:51:01 Update the per-thread view as well to not miss dead threads.
Con Kolivas 81f8af85 2011-07-13T10:42:12 Cope with servers that regularly drop the longpoll connection.
Con Kolivas 4de3f32a 2011-07-13T00:58:13 Move to newer jansson library.
Con Kolivas bb4deaa2 2011-07-12T22:36:30 strcat in longpoll thread can write outside of longpoll_block so cat them all in main().
Con Kolivas 86bc0426 2011-07-12T19:28:48 Remove unused variable.
Con Kolivas 7b9b0781 2011-07-12T19:19:00 Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances.
Con Kolivas 222d4ee6 2011-07-12T17:29:59 Make curses completely inactivated in quiet mode and do not update curses code in wakeup thread when curses is inactive.
Con Kolivas 76b233a5 2011-07-12T17:03:13 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.
Con Kolivas 6d4476bb 2011-07-12T00:54:42 Use correct variable in initialisation.
Con Kolivas ccf2ea91 2011-07-12T00:33:08 Convert the log and status portions of the screen to two separate ncurses windows for simpler cleaner output.
Con Kolivas c59e2ab8 2011-07-11T22:57:17 Avoid possible divide by zero.
Con Kolivas 43ef5f5d 2011-07-11T22:45:19 Get rid of the flaky time_lock and use the thread safe localtime_r instead.
Con Kolivas c836b5bf 2011-07-11T22:18:10 Don't try to find where the cursor is and just set it to the last line for logcursor.
Con Kolivas 73a864c5 2011-07-11T21:56:34 vfprintf invalidates the va args so do it after the curses output.
Con Kolivas a1ffba82 2011-07-11T21:22:22 Refresh the display on every commit to applog since detecting bottom of the screen may be unreliable.
Con Kolivas 78ed386b 2011-07-11T21:20:48 Delay any threads from starting till everything is set up properly.