main.c


Log

Author Commit Date CI Message
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.
Con Kolivas b93e6a42 2011-07-11T17:57:54 Show all devices even if only selected are enabled.
Con Kolivas 505b1859 2011-07-11T16:56:28 Merge https://github.com/ycros/cgminer into cgminer
Con Kolivas 215ee790 2011-07-11T16:52:18 thr_id can be successful as -1 which is wrong and could lead to a crash.
Ycros 386489a1 2011-07-11T14:56:17 Added support for pdcurses.
Con Kolivas 92e04f47 2011-07-11T13:46:01 Make clear for multiple GPUs.
Con Kolivas 90839cdf 2011-07-11T13:41:31 Implement a completely curses based display and don't output to stderr when log is enabled unless it's redirected away from the terminal.
Con Kolivas f12edd2f 2011-07-10T23:07:53 Keep track of number of mining threads explicitly and only enforce that many work items on new block work.
Con Kolivas 94fdff9a 2011-07-10T20:17:09 Fix help typo.
Con Kolivas 75888a1f 2011-07-10T20:14:28 Implement device selection(s) with -d.
Con Kolivas fbcd2942 2011-07-10T14:02:23 Really correct the staged count logic failure.
Con Kolivas 82cac388 2011-07-10T12:59:32 Logic failure meant the longpoll fake staged were never removed. This would lead to idle periods and may have even caused complete idle failures.
Con Kolivas 8af98be7 2011-07-10T01:01:34 Make the utility demonstrated relative to each device when showing per-device work submissions.
Con Kolivas 6464dbfc 2011-07-10T00:53:48 Implement per-device request count to have a per-device efficiency and request status.
Con Kolivas 3d9f244e 2011-07-09T17:30:54 Make all applog at least 80 columns wide obviating the need for spaces at the end of select messages to clear the status line.
Con Kolivas 5e6b8076 2011-07-09T17:12:12 Tidy output.
Con Kolivas 1c924789 2011-07-09T17:11:22 Make sure to set first work as mandatory instead of generating work locally from it.
Con Kolivas 102c4d40 2011-07-09T17:06:30 Give meaningful message on submission failure and resumption instead of spam.
Ycros f20e25e0 2011-07-06T19:46:02 Moved pthread mutex inits up, due to applog using a mutex causing a crash. Added Win32 compatability to opt.c.
Con Kolivas c9bbaec3 2011-07-09T10:18:29 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.
Con Kolivas 3126002b 2011-07-08T20:27:12 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.
Con Kolivas a8be6851 2011-07-08T11:53:40 Formalise the extra work item that the wakeup thread acts as a watchdog for.
Con Kolivas 732baa18 2011-07-08T06:12:38 Use the wakeup thread as a watchdog to ensure we don't fall between the holes of queue and dequeue.
Con Kolivas bb492874 2011-07-07T14:29:39 Make longpoll aware of when new block detection has detected a new block first and avoid flushing the work queue twice.
Con Kolivas 186666d3 2011-07-07T10:43:52 Prevent buffer overflow.
Con Kolivas 25bebf3b 2011-07-07T10:31:36 Make the output line much terser now that it has a lot of information on it.
Con Kolivas 1b235517 2011-07-07T10:04:37 Merge branch 'cgminer' into mfontani Conflicts: main.c
Con Kolivas ed233e8c 2011-07-07T09:58:26 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.
Marco Fontani c815de49 2011-07-05T08:29:13 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.
Rusty Russell efebee5a 2011-07-06T16:47:29 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.
Rusty Russell 8b68dc44 2011-07-06T16:47:29 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.
Rusty Russell 8d25df3c 2011-07-06T16:47:29 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.
Rusty Russell 3e818121 2011-07-06T16:47:29 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.
Con Kolivas 5969d65a 2011-07-06T15:57:50 First work for each thread is now queued in advance.
Con Kolivas e9a397d4 2011-07-06T15:56:30 More space to wipe old text.
Con Kolivas e9906980 2011-07-06T15:40:12 Fix the extra work queued every longpoll by queueing it all in the beginning.
Con Kolivas 719deb3a 2011-07-06T14:20:18 Create a wakeup thread that keeps the hashmeter going in case the mining threads all stall.
Con Kolivas ddae5aa9 2011-07-06T13:29:01 Remove unused variable.
Con Kolivas 837e7b1a 2011-07-06T13:28:29 Remove unused cgpu rolling_local variable.
Con Kolivas 93800e57 2011-07-06T13:19:56 More output tidy.
Con Kolivas 56eee5f0 2011-07-06T13:16:47 Retry should get_work() fail for whatever reason.
Con Kolivas 07f6de8b 2011-07-06T13:05:57 Change ifdef order since batch is always defined if idle is.
Con Kolivas cf1e4627 2011-07-06T13:04:35 Give error messages at all points of failure.
Con Kolivas ed7e5bf9 2011-07-06T12:51:12 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.