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.
14 years ago
Con Kolivas
6d4476bba2
Use correct variable in initialisation.
14 years ago
Con Kolivas
ccf2ea914f
Convert the log and status portions of the screen to two separate ncurses windows for simpler cleaner output.
14 years ago
Con Kolivas
c59e2ab8b6
Avoid possible divide by zero.
14 years ago
Con Kolivas
43ef5f5d3f
Get rid of the flaky time_lock and use the thread safe localtime_r instead.
14 years ago
Con Kolivas
c836b5bf01
Don't try to find where the cursor is and just set it to the last line for logcursor.
14 years ago
Con Kolivas
73a864c51c
vfprintf invalidates the va args so do it after the curses output.
14 years ago
Con Kolivas
a1ffba823e
Refresh the display on every commit to applog since detecting bottom of the screen may be unreliable.
14 years ago
Con Kolivas
78ed386bb4
Delay any threads from starting till everything is set up properly.
14 years ago
Con Kolivas
b93e6a4254
Show all devices even if only selected are enabled.
14 years ago
Con Kolivas
215ee79056
thr_id can be successful as -1 which is wrong and could lead to a crash.
14 years ago
Ycros
386489a147
Added support for pdcurses.
14 years ago
Con Kolivas
92e04f47cb
Make clear for multiple GPUs.
14 years ago
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.
14 years ago
Con Kolivas
f12edd2fb8
Keep track of number of mining threads explicitly and only enforce that many work items on new block work.
14 years ago
Con Kolivas
94fdff9a3e
Fix help typo.
14 years ago
Con Kolivas
75888a1f68
Implement device selection(s) with -d.
14 years ago
Con Kolivas
fbcd2942c8
Really correct the staged count logic failure.
14 years ago
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.
14 years ago
Con Kolivas
8af98be7b9
Make the utility demonstrated relative to each device when showing per-device work submissions.
14 years ago
Con Kolivas
6464dbfc65
Implement per-device request count to have a per-device efficiency and request status.
14 years ago
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.
14 years ago
Con Kolivas
5e6b8076c6
Tidy output.
14 years ago
Con Kolivas
1c92478997
Make sure to set first work as mandatory instead of generating work locally from it.
14 years ago
Con Kolivas
102c4d4088
Give meaningful message on submission failure and resumption instead of spam.
14 years ago
Ycros
f20e25e0c0
Moved pthread mutex inits up, due to applog using a mutex causing a crash.
...
Added Win32 compatability to opt.c.
14 years ago
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.
14 years ago
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.
14 years ago
Con Kolivas
a8be6851a9
Formalise the extra work item that the wakeup thread acts as a watchdog for.
14 years ago
Con Kolivas
732baa1812
Use the wakeup thread as a watchdog to ensure we don't fall between the holes of queue and dequeue.
14 years ago
Con Kolivas
bb49287449
Make longpoll aware of when new block detection has detected a new block first and avoid flushing the work queue twice.
14 years ago
Con Kolivas
186666d3d1
Prevent buffer overflow.
14 years ago
Con Kolivas
25bebf3b92
Make the output line much terser now that it has a lot of information on it.
14 years ago
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.
14 years ago
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.
14 years ago
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.
14 years ago
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.
14 years ago
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.
14 years ago
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.
14 years ago
Con Kolivas
5969d65a04
First work for each thread is now queued in advance.
14 years ago
Con Kolivas
e9a397d4b9
More space to wipe old text.
14 years ago
Con Kolivas
e99069808a
Fix the extra work queued every longpoll by queueing it all in the beginning.
14 years ago
Con Kolivas
719deb3aac
Create a wakeup thread that keeps the hashmeter going in case the mining threads all stall.
14 years ago
Con Kolivas
ddae5aa9d0
Remove unused variable.
14 years ago
Con Kolivas
837e7b1a85
Remove unused cgpu rolling_local variable.
14 years ago
Con Kolivas
93800e5790
More output tidy.
14 years ago
Con Kolivas
56eee5f007
Retry should get_work() fail for whatever reason.
14 years ago
Con Kolivas
07f6de8b34
Change ifdef order since batch is always defined if idle is.
14 years ago
Con Kolivas
cf1e4627e4
Give error messages at all points of failure.
14 years ago
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.
14 years ago