main.c


Log

Author Commit Date CI Message
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.
Con Kolivas 69d8df64 2011-07-06T08:59:51 More cleaning of output with detecting new block.
Con Kolivas 8333a2ff 2011-07-06T00:01:40 Improve output appearance +/- verbose mode.
Con Kolivas 1fb09eaa 2011-07-05T23:11:05 Implement -n/--ndevs option.
Con Kolivas 0ebdc39a 2011-07-05T23:07:18 Make debug mode imply verbose mode.
Con Kolivas 413e6b86 2011-07-05T22:08:13 Fix potential divide by zero.
Con Kolivas 0a80d4b0 2011-07-05T22:04:54 Display the output as a refreshing line and only push continuous log to stderr if desired.
Con Kolivas a93b22c6 2011-07-05T17:34:54 Make it possible to build without GPU mining by picking up HAVE_OPENCL from config.h.
Con Kolivas 4172fec2 2011-07-05T16:47:19 Cope with invalid parameter passing.
Con Kolivas bc7cde7b 2011-07-05T16:37:51 Implement short option parsing.
Con Kolivas 13c57a57 2011-07-05T15:18:13 Properly initialise qd_lock mutex.
Con Kolivas f90e73af 2011-07-05T10:47:47 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.
Con Kolivas af6e7937 2011-07-05T10:42:11 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.
Con Kolivas 91f9c527 2011-07-04T20:33:31 Rename code and application binary to cgminer version 1.0.9 preempting version 1.1.0, moving main code to main.c.