Con Kolivas
e3f1b02e9a
Extract and store various parameters on stratum init confirming successful mining notify.
2012-09-26 16:49:51 +10:00
Con Kolivas
58873c1dfa
Get detailed addressinfo from the parsed URL for future raw socket usage when possible. IPV4 only for now.
2012-09-25 20:23:59 +10:00
Con Kolivas
144a016097
Add data structures to pool struct for socket communications.
2012-09-24 16:50:04 +10:00
Kano
7c32562d80
API stats add some pool getwork difficulty stats
2012-09-24 11:34:50 +10:00
Con Kolivas
57a73dce34
Test for sequential getwork failures on a pool that might actually be up but failing to deliver work as we may end up hammering it repeatedly by mistake.
2012-09-24 08:30:07 +10:00
Con Kolivas
3243b91e2d
Merge pull request #310 from kanoi/master
...
API debug, API-README, API Correct diff1 name, Device diff1, API diff1 etc.
2012-09-20 23:23:15 -07:00
Con Kolivas
618999026f
As we average gpu time over 5 work intervals for dynamic GPU intensity, there is no need to maintain a rolling average and it avoids the potential long term corruption of a single overflow value.
2012-09-21 16:10:34 +10:00
Kano
a6bf276f6b
API - Add last share difficulty for devices and pool
2012-09-19 01:14:43 +10:00
Kano
89b6989fb3
Store and report Accepted,Rejected,Stale difficulty in the summary and API
2012-09-19 00:54:55 +10:00
Kano
923b9e0d86
Calculate work difficulty for each getwork and display with WorkTime debug
2012-09-18 11:19:57 +10:00
Kano
796f3906c1
WorkTime - multiple nonce per work and identify the work source
2012-09-16 07:57:43 +10:00
Kano
bd3c98aaaf
Optional WorkTime details with each Accepted/Rejected work item
2012-09-15 14:04:57 +10:00
Kano
99f0607fb2
API add display of and setting queue,scantime,expiry
2012-09-12 23:26:43 +10:00
Kano
cef9731fbc
CURL support for individual proxy per pool and all proxy types
2012-09-12 07:44:00 +10:00
Kano
307d8da034
HW: error counter auto for all devices - ztex code not fixed
2012-09-04 15:57:11 +10:00
Kano
9487ba05cd
API/BFL identify a device - currently only BFL to flash the led
2012-09-04 12:52:11 +10:00
Kano
7a2407f15c
BFL add throttle count to internal stats + API
2012-09-04 02:26:17 +10:00
Kano
4023872b76
count device diff1 shares
2012-09-01 23:51:51 +10:00
Kano
a178039a65
miner.h max_hashes -> int64_t
2012-08-30 23:22:37 +10:00
Con Kolivas
3acc064be3
Merge pull request #306 from kanoi/api
...
Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php (to display it)
2012-08-23 07:50:28 -07:00
Con Kolivas
618b3e8b11
Track queued and staged per pool once again for future use.
2012-08-23 23:50:38 +10:00
Kano
d5f485c517
Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php
2012-08-23 19:20:12 +10:00
ckolivas
edd9b81622
Do not add time to dynamic opencl calculations over a getwork.
2012-08-22 10:07:20 +10:00
Kano
b3e9858c9f
API new command 'coin' with mining information
2012-08-20 16:07:20 +10:00
Kano
9210abdf60
API V1.17 show Work Utility and Diff1 Shares
2012-08-19 15:09:45 +10:00
Con Kolivas
26ab7346e3
Implement a new pool strategy, BALANCE, which monitors work performed per pool as a rolling average every 10 minutes to try and distribute work evenly over all the pools.
...
Do this by monitoring diff1 solutions to allow different difficulty target pools to be treated equally, along with solo mining.
Update the documentation to describe this strategy and more accurately describe the load-balance one.
2012-08-18 15:27:53 +10:00
Con Kolivas
d8c76bbd08
Getwork fail was not being detected. Remove a vast amount of unused variables and functions used in the old queue request mechanism and redefine the getfail testing.
2012-08-18 11:26:11 +10:00
Con Kolivas
c3e32274ee
Cull all the early queue requests since we request every time work is popped now.
2012-08-18 10:37:05 +10:00
Con Kolivas
5fadfdb219
Overlap queued decrementing with staged incrementing.
2012-08-18 10:37:05 +10:00
Con Kolivas
611f1cec7c
Roll work whenever we can on getwork.
2012-08-18 10:37:05 +10:00
Con Kolivas
fd0be1bb51
Queue requests for getwork regardless and test whether we should send for a getwork from the getwork thread itself.
2012-08-18 10:37:04 +10:00
Con Kolivas
2480cf23cc
Don't try to get bitforce temperature if we're polling for a result to minimise the chance of interleaved responses.
2012-08-15 10:54:38 +10:00
Con Kolivas
8745ba1e6d
Windows' timer resolution is limited to 15ms accuracy. This was breaking dynamic intensity since it tries to measure below this.
...
Since we are repeatedly sampling similar timeframes, we can average the gpu_us result over 5 different values to get very fine precision.
2012-08-15 09:38:45 +10:00
Kano
95dff7363e
API allow display/change failover-only setting
2012-08-14 12:54:27 +10:00
Con Kolivas
8aa61f6626
Make sure we have work from the current pool somewhere in the queue in case the queue is full of requests from a pool that has just died.
2012-08-11 16:47:49 +10:00
Con Kolivas
8085ae6854
Further simplify the queue request mechanism.
2012-08-11 14:04:55 +10:00
Con Kolivas
3576abf8a7
Make pool_disabled the first in the enums == 0, fixing the pool enabled count which compares if value is not enabled before enabling it.
2012-08-05 15:43:27 +10:00
Con Kolivas
fc44b6d7a1
Use different variables for command line specified lookup gap and thread concurrency to differentiate user defined versus auto chosen values.
2012-08-05 15:32:44 +10:00
Con Kolivas
bf9c324752
The queueing mechanism has become a complex state machine that is no longer predictable. Rewrite it from scratch watching only current queues in flight and staged work available on a pool by pool basis.
2012-08-05 13:40:46 +10:00
Con Kolivas
b70ec3cb66
Merge pull request #283 from kanoi/icarus
...
ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
2012-08-02 17:17:53 -07:00
Con Kolivas
7fa794a499
It is not critical getting the temperature response in bitforce so don't mandatorily wait on the mutex lock.
2012-08-03 09:26:43 +10:00
Kano
e067be421a
ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
2012-08-01 22:50:30 +10:00
Con Kolivas
c91148f193
Remove the low hash count determinant of hardware being sick. A low hash rate can be for poor network connectivity or scrypt mining, neither of which are due to sick hardware.
2012-07-30 09:02:23 +10:00
Con Kolivas
500ed85bb3
Merge pull request #271 from luke-jr/cg_logfixes
...
Logging bugfixes
2012-07-29 03:46:49 -07:00
Con Kolivas
e87ff7c177
Keep a counter of enabled pools and use that instead of iterating over the pool list. Use that value to ensure we don't set the last remaining active pool to the rejecting state.
2012-07-29 13:15:39 +10:00
Con Kolivas
9a6c082ad1
Make the thread concurrency and lookup gap options hidden on the command line and autotune parameters with a newly parsed --shaders option.
2012-07-24 20:27:37 +10:00
Luke Dashjr
da4ff2bde1
Bugfix: Use a mutex to control non-curses output
...
Without this, there is no guarantee writes won't overlap (and it happens quite a bit on Windows with the bitforce driver)
2012-07-23 20:29:06 +00:00
Luke Dashjr
d98e561a0a
Simplify code to a single vprintf path for curses-less printing
2012-07-23 20:29:02 +00:00
Luke Dashjr
80593c47fc
Move opt_quiet check to my_log_curses, so it works for curses-less builds
2012-07-23 20:28:57 +00:00
Con Kolivas
89eb1fa393
Check the maximum allocable memory size per opencl device.
2012-07-23 17:41:31 +10:00
Con Kolivas
17dfe74f96
Allow intensities up to 20 if scrypt is compiled in.
2012-07-22 00:49:47 +10:00
Con Kolivas
39f7d2fa74
Allow lookup gap and thread concurrency to be passed per device and store details in kernel binary filename.
2012-07-21 17:31:06 +10:00
Con Kolivas
6ac14f4280
Don't enqueuewrite buffer at all for pad8 and pass work details around for scrypt in dev_blk.
2012-07-16 13:14:21 +10:00
Con Kolivas
0f43eb5eb7
Don't test nonce with sha and various fixes for scrypt.
2012-07-13 20:35:44 +10:00
Con Kolivas
b085c338f6
Make scrypt buffers and midstate compatible with cgminer.
2012-07-13 20:28:36 +10:00
Con Kolivas
dd740caa98
Provide initial support for the scrypt kernel to compile with and mine scrypt with the --scrypt option.
2012-07-13 19:02:43 +10:00
Con Kolivas
5a65415b1e
Enable completely compiling scrypt out.
2012-07-13 14:47:02 +10:00
Con Kolivas
176cdf8bbc
Begin import of scrypt opencl kernel from reaper.
2012-07-13 14:44:52 +10:00
Con Kolivas
c1c99f1dd2
Merge https://github.com/pshep/cgminer into pshep
2012-07-12 23:09:05 +10:00
Paul Sheppard
d4d5b28e5f
Abbrv. correction
2012-07-11 14:46:09 -07:00
Luke Dashjr
c57c308d1f
Bugfix: Don't declare devices SICK if they're just busy initializing
...
This mainly applies to ModMiner since it takes 4-5 minutes to upload the bitstream
2012-07-11 20:29:06 +00:00
Paul Sheppard
5f0a22d230
Remove superfluous ave_wait
2012-07-11 08:32:41 -07:00
Paul Sheppard
2c54522d7d
Add average wait time to api stats
2012-07-11 08:11:53 -07:00
Paul Sheppard
01a69ee45e
Revert "Merge branch 'ave_time' of https://github.com/pshep/cgminer.git "
...
This reverts commit 242e52cdf9
, reversing
changes made to 4dc1bf2319
.
2012-07-11 08:07:39 -07:00
ckolivas
5c7e03084a
Modify te scanhash API to use an int64_t and return -1 on error, allowing zero to be a valid return value.
2012-07-11 22:59:58 +10:00
Paul Sheppard
3cc0aa76ad
Add average return time to api stats
2012-07-10 15:34:01 -07:00
Paul Sheppard
953ecd9e6a
Change timeouts to time-vals for accuracy.
2012-07-08 23:25:02 -07:00
Con Kolivas
2ce7f28bbc
Merge pull request #254 from luke-jr/work_restart2
...
Turn work_restart array into a bool in thr_info
2012-07-08 04:24:55 -07:00
Con Kolivas
fd55fab96a
Make bitforce nonce range support a command line option --bfl-range since enabling it decrease hashrate by 1%.
2012-07-06 16:54:00 +10:00
Luke Dashjr
d4af2d0535
Turn work_restart array into a bool in thr_info
2012-07-06 05:13:05 +00:00
Con Kolivas
3271be145f
Provide a ms based sleep function that uses nanosleep to avoid the inaccuracy of usleep on SMP systems.
2012-07-06 15:01:39 +10:00
Con Kolivas
75eca07823
Restart_wait is only called with a ms value so incorporate that into the function.
2012-07-05 09:15:21 +10:00
Con Kolivas
e5aba76042
Fix off-by-one error in nonce increment in bfl.
2012-07-05 00:40:01 +10:00
Con Kolivas
6314a12b31
Initially enable support for nonce range support on bfl, splitting nonces up into 3/4 size and only disable it if it fails on work submit.
2012-07-04 23:53:55 +10:00
Con Kolivas
96fba30b6b
Attempt to detect nonce range support in BFL by sending work requring its support.
2012-07-04 17:31:02 +10:00
Kano
ff0afb94ec
Add API Notify counter 'Comms Error'
2012-07-03 13:14:30 +10:00
Con Kolivas
732783faa6
Merge branch 'bfl'
...
Conflicts:
miner.h
2012-07-03 11:35:58 +10:00
Con Kolivas
2ec0fb9793
Merge pull request #247 from kanoi/master
...
api.c data structure + updated get_api_stats/driver-icarus.c
2012-07-02 18:26:18 -07:00
Con Kolivas
336dbd5c98
Remove needless roundl define.
2012-07-03 10:44:59 +10:00
Paul Sheppard
cc0ad5eaa7
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-07-01 23:35:06 -07:00
ckolivas
fd7b21ed56
Use a pthread conditional that is broadcast whenever work restarts are required. Create a generic wait function waiting a specified time on that conditional that returns if the condition is met or a specified time passed to it has elapsed. Use this to do smarter polling in bitforce to abort work, queue more work, and check for results to minimise time spent working needlessly.
2012-07-02 10:54:20 +10:00
Paul Sheppard
a4a2000cc0
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-30 20:45:56 -07:00
ckolivas
1e9421475c
Timersub is supported on all build platforms so do away with custom timerval_subtract function.
2012-07-01 10:44:23 +10:00
Kano
eab9debc72
api.c data structure - all testing attempted successful
2012-06-30 23:41:22 +10:00
Kano
d8abfb713e
api.c data structure - tested + updated get_api_stats/driver-icarus.c
2012-06-30 15:58:31 +10:00
Kano
538653a53e
api.c data structure - 2nd - untested
2012-06-30 12:44:57 +10:00
Kano
21e4cd85ea
api.c data structure rather than raw sprintf - 1st test
2012-06-30 02:49:01 +10:00
Paul Sheppard
3be662a270
Merge branch 'old_gcc'
2012-06-28 18:35:32 -07:00
Paul Sheppard
123058b587
Add macro roundl for compilers without said function.
2012-06-28 11:02:03 -07:00
Paul Sheppard
baa480c137
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
cgminer.c
2012-06-28 08:22:55 -07:00
Paul Sheppard
f225392990
Add low hash threshold in sick/dead processing
...
Add check for fd in comms procedures
2012-06-28 08:20:45 -07:00
Con Kolivas
3267b534a8
Implement rudimentary X-Mining-Hashrate support.
2012-06-28 10:43:52 +10:00
Kano
c21fc06560
define API option --api-groups
2012-06-27 21:28:18 +10:00
Paul Sheppard
78d5a81d70
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-26 12:32:09 -07:00
ckolivas
dffda2382f
Increase GPU timing resolution to microsecond and add sanity check to ensure times are positive.
2012-06-26 12:50:52 +10:00
Paul Sheppard
df9e76bd73
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-25 10:56:04 -07:00
Con Kolivas
c027492fa4
Make the pools array a dynamically allocated array to allow unlimited pools to be added.
2012-06-25 17:06:26 +10:00
Con Kolivas
5cf4b7c432
Make the devices array a dynamically allocated array of pointers to allow unlimited devices.
2012-06-25 16:59:29 +10:00
Con Kolivas
eaf1505381
Dynamic intensity for GPUs should be calculated on a per device basis. Clean up the code to only calculate it if required as well.
2012-06-25 13:31:52 +10:00
Con Kolivas
f32ffb8718
Work out a rolling average getwork delay stored in pool_stats.
2012-06-24 13:20:17 +10:00
ckolivas
6a45cbbdfb
Merge branch 'master' of https://github.com/ckolivas/cgminer
2012-06-23 23:45:08 +10:00
ckolivas
c5a21fabf0
Extend nrolltime to support the expiry= parameter. Do this by turning the rolltime bool into an integer set to the expiry time. If the pool supports rolltime but not expiry= then set the expiry time to the standard scantime.
2012-06-23 23:43:22 +10:00
Paul Sheppard
e037028159
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-06-19 10:40:00 -07:00
Con Kolivas
f70577b097
Merge pull request #229 from luke-jr/modminer_primary
...
modminer: Don't delay 2nd+ FPGAs during work restart
2012-06-19 04:38:49 -07:00
Luke Dashjr
1215da39ee
modminer: Don't delay 2nd+ FPGAs during work restart
...
Add primary_thread boolean to threads to identify a single one as the "primary" thread for shared-resource multithreading.
This is needed since ModMiners use multiple threads to interface with independent hashing components.
2012-06-18 05:51:09 +00:00
Paul Sheppard
fe4c0869bf
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
...
Conflicts:
cgminer.c
2012-06-17 09:44:42 -07:00
Paul Sheppard
7ae22e21e3
Disable OpenCL code when not available.
2012-06-16 20:24:40 -07:00
Paul Sheppard
bc4a259af7
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-14 08:13:07 -07:00
Con Kolivas
30bb3c62a6
Merge pull request #224 from kanoi/master
...
API add ModMinerQuad support
2012-06-14 02:38:24 -07:00
Paul Sheppard
2d1f961046
Merge branch 'master' of git://github.com/ckolivas/cgminer.git
2012-06-14 00:05:31 -07:00
Con Kolivas
dbe9056df4
Add mandatory and block fields to the work struct. Flag any shares that are detected as blocks as mandatory to submit, along with longpoll work from a previously rejecting pool.
2012-06-14 15:42:43 +10:00
Paul Sheppard
b94e199649
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-13 17:31:20 -07:00
Paul Sheppard
eff2d04df0
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
...
Conflicts:
cgminer.c
2012-06-13 12:31:33 -07:00
Paul Sheppard
1b63a75d2c
Simple auto sleep-time calibration.
...
Optimises the sleep time while waiting for the BFL work to finish.
Takes ~5 mins to settle to the correct time for each unit, then will continue to make adjustments.
2012-06-13 12:26:03 -07:00
Luke Dashjr
4eb23c7ea3
Bugfix: slay a variety of warnings
2012-06-13 17:03:26 +00:00
Kano
913221c373
API add ModMinerQuad support
2012-06-14 02:57:37 +10:00
Paul Sheppard
2384d0fbc6
Removed idle mode... again!?
...
Changed work_reset rate to every 100ms & use defines rather than numerics.
Change total sleep time to 4300ms after performance testing/measurement (now good to 916MH/s).
Changed timeout to 15s - Throttle time is 15s.
Added support for 'Busy' when submitting work.
Improved logging text to include device identifier.
Added a thread_enable api function, called when a thread is re-enabled.
... and removed useless re-init inside scanhash.
Use modminer introduced mutex.
2012-06-12 18:20:18 -07:00
Luke Dashjr
a78d616bc5
modminer: Temperature sensor improvements
...
Display the temperature of each of the (up to) 4 FPGAs
2012-06-12 17:04:03 +00:00
Paul Sheppard
861388f960
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-12 09:04:42 -07:00
Luke Dashjr
76f96f4717
New driver: BTCFPGA ModMiner
2012-06-12 02:38:36 +00:00
Luke Dashjr
d3fa59d76f
Abstract generally useful FPGA code into fpgautils.c
2012-06-12 02:35:45 +00:00
Paul Sheppard
bf4d6c3483
Merge branch 'master' of https://github.com/ckolivas/cgminer.git
2012-06-11 13:36:35 -07:00
Paul Sheppard
4889d7ecb2
Merge branch 'master' of git@github.com:pshep/cgminer.git
...
Conflicts:
driver-bitforce.c
2012-06-11 13:09:27 -07:00
Paul Sheppard
820d662c9d
Removed idle mode.
...
Added watchdog thread BFL temperature monitoring.
2012-06-10 23:11:59 -07:00
Paul Sheppard
ebeaf15f18
Added idle mode
...
Idle is only set by pgadisable, so GPU/CPU is unaffected.
For Icarus/Ztex, in scanhash the thread is immediately set disabled then returns.
2012-06-09 19:30:32 -07:00
Kano
fdcd72b9ae
API add stats for pool getworks
2012-06-10 11:19:21 +10:00
Kano
3cb3f09a50
API save default config file if none specified
2012-05-31 23:18:55 +10:00
Con Kolivas
598476cae1
Merge pull request #204 from kanoi/icarus-timer
...
Icarus: high accuracy timing and other bitstream speed support
2012-05-30 18:02:00 -07:00
Con Kolivas
85210ee7a8
If shares are known stale, don't use them to decide to disable a pool for sequential rejects.
2012-05-31 08:41:56 +10:00
Paul Sheppard
cebd647f50
Messing with BFL code
2012-05-22 08:10:00 -07:00
Kano
b5ed958e84
Icarus: high accuracy timing and other bitstream speed support
2012-05-16 22:25:21 +10:00
Con Kolivas
e195a31c02
Fix win32 build.
2012-05-06 20:49:06 +10:00
Con Kolivas
61696c072c
In the unlikely event of finding a block, display the block solved count with the pool it came from for auditing.
2012-05-06 16:22:18 +10:00
Con Kolivas
85c9e0c4b6
Merge pull request #198 from kanoi/stats
...
API add getwork stats to cgminer - accesable from API 'stats' - and devices can add stats also
2012-05-05 06:38:30 -07:00
Kano
00158c3a1f
API 'stats' allow devices to add their own stats also for testing/debug
2012-05-05 16:25:19 +10:00
Kano
976e27c4cb
API add getwork stats to cgminer - accesable from API 'stats'
2012-05-05 15:04:15 +10:00
Con Kolivas
46a679f39e
Revert "Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp."
...
This reverts commit 87708a6a0e
.
Broken.
2012-05-05 12:55:00 +10:00
Con Kolivas
c8e1026dfb
Get rid of unitialised variable warning when it's false.
2012-05-05 09:37:33 +10:00
Con Kolivas
87708a6a0e
Provide simple macros for the repeated use of checking the first value of the input char with strncasecmp.
2012-05-04 23:05:00 +10:00
Con Kolivas
4987958e6a
Add a temporarily disabled state for enabled pools called POOL_REJECTING and use the work from each longpoll to help determine when a rejecting pool has started working again.
...
Switch pools based on the multipool strategy once a pool is re-enabled.
2012-05-04 20:10:38 +10:00
Kano
44fc698750
API add last share time to each pool
2012-05-04 00:13:42 +10:00
Con Kolivas
a4f1af1733
Detect pools that have issues represented by endless rejected shares and disable them, with a parameter to optionally disable this feature.
2012-05-03 15:35:13 +10:00
Con Kolivas
5081c1824a
Limit the number of curls we recruit on communication failures and with delaynet enabled to 5 by maintaining a per-pool curl count, and using a pthread conditional that wakes up when one is returned to the ring buffer.
2012-05-03 10:49:42 +10:00
Con Kolivas
d4405de704
Generalise add_pool() functions since they're repeated in add_pool_details.
2012-05-03 10:49:42 +10:00
ckolivas
85008a7853
Reap curls that are unused for over a minute.
...
This allows connections to be closed, thereby allowing the number of curl handles to always be the minimum necessary to not delay networking.
2012-05-03 10:48:05 +10:00
Con Kolivas
7d288eac9f
Implement a scaleable networking framework designed to cope with any sized network requirements, yet minimise the number of connections being reoped.
...
Do this by create a ring buffer linked list of curl handles to be used by getwork, recruiting extra handles when none is immediately available.
2012-05-03 10:41:57 +10:00
Con Kolivas
89053c78da
There is no need for the submit and getwork curls to be tied to the pool struct.
2012-05-01 19:12:37 +10:00
Con Kolivas
1ab318d0f3
Start longpoll only after we have tried to extract the longpoll URL.
2012-04-27 13:11:19 +10:00
Con Kolivas
eda382990a
Create one longpoll thread per pool, using backup pools for those pools that don't have longpoll.
...
Use the work created from the longpoll return only if we don't have failover-enabled, and only flag the work as a longpoll if it is the current pool.
This will work around the problem of trying to restart the single longpoll thread on pool changes that was leading to race conditions.
It will also have less work restarts from the multiple longpolls received from different pools.
2012-04-27 11:58:47 +10:00
Con Kolivas
4cd973264f
Create discrete persistent submit and get work threads per pool, thus allowing all submitworks belonging to the same pool to reuse the same curl handle, and all getworks to reuse their own handle.
...
Use separate handles for submission to not make getwork potentially delay share submission which is time critical.
This will allow much more reusing of persistent connections instead of opening new ones which can flood routers.
This mandated a rework of the extra longpoll support (for when pools are switched) and this is managed by restarting longpoll cleanly and waiting for a thread join.
2012-04-26 23:29:21 +10:00
Luke Dashjr
4648330c9d
Support for share logging
2012-04-25 12:05:33 +10:00
Con Kolivas
f5f089f5b4
Add a --gpu-map option which will allow arbitrarily mapping ADL devices to OpenCL devices for instances where association by enumeration alone fails.
2012-04-23 17:40:47 +10:00
Luke Dashjr
730849c988
Make a union for cgpu device handles, and rename "device" to "device_ztex" since it's Ztex-specific
2012-04-21 03:01:42 -04:00
Luke Dashjr
657716e563
Merge branch 'master' into ztex
2012-04-21 02:56:20 -04:00
Luke Dashjr
b8778839e9
Merge branch 'master' into unify_drivers
...
Conflicts:
cgminer.c
2012-04-21 02:36:19 -04:00
Con Kolivas
c7cc2e4226
Merge branch 'master' into ztex
2012-04-21 14:03:41 +10:00
Kano
2e1d2017de
API add removepool like the screen interface
2012-04-21 03:15:41 +10:00
nelisky
c3bda2b709
adding path to libusb include
2012-04-16 04:07:19 -07:00
nelisky
99a188f94f
initial commit with some support for ztex 1.15x board.
...
This version is just a rough draft, but it does alredy mine.
Conflicts:
cgminer.c
configure.ac
2012-04-16 04:01:51 -07:00
Con Kolivas
dc70fe9ce0
Do a complete cgminer restart if the ATI Display Library fails, as it does on windows after running for some time, when fanspeed reporting fails.
2012-04-14 17:38:31 +10:00
Kano
0be2b9e9b6
Increase max devices to 64 (for FPGA support)
2012-03-30 22:28:44 +11:00
Kano
18a8b5506e
API returns the simple device history with the 'notify' command
2012-03-23 03:17:20 +11:00
Kano
eeec98098f
code changes for supporting a simple device history
2012-03-23 01:50:45 +11:00
Luke Dashjr
eca996547b
CGPU API for device kernel name
2012-03-18 21:39:20 -04:00
Luke Dashjr
f05a319e01
CGPU API for device names
2012-03-18 21:32:01 -04:00
Luke Dashjr
303dbf4664
Abstract add_cgpu function, to handle device id numbering and devices array
2012-03-18 20:09:03 -04:00
Luke Dashjr
e131dfab31
Unify drivers as driver-*.c and add driver name to API
2012-03-13 12:18:23 -04:00
Con Kolivas
f4df8c82a7
Merge pull request #135 from kanoi/master
...
API new commands enablepool and disablepool
2012-02-22 21:56:48 -08:00
Kano
60c5ac6844
API new commands enablepool and disablepool (version already incremented)
2012-02-23 16:10:17 +11:00
Kano
4458f3d5c7
Modify cgminer.c pool control to allow API to call it
2012-02-23 13:58:33 +11:00
Con Kolivas
527e611b74
Fix !HAVE_OPENCL build.
2012-02-23 01:27:36 +11:00
ckolivas
93efb726bb
Allow multiple different kernels to be chosen per device.
2012-02-22 19:38:01 +11:00
Con Kolivas
deff55c640
Allow different vectors to be set per device.
2012-02-22 16:54:06 +11:00
Con Kolivas
2ca8d38e0e
Merge pull request #124 from kanoi/master
...
API commits - IP 0/0 means all, add "Log Interval" to config, restrict access to modify commands
2012-02-21 02:49:25 -08:00
Kano
e3281c2643
When API shuts down cgminer don't kill itself
2012-02-21 20:03:13 +11:00
Con Kolivas
f4284a21a8
Set the lp_sent variable under lock since there will almost always be a race on setting this variable, potentially leading to multiple LPs being sent
...
out.
2012-02-21 09:22:04 +11:00
Con Kolivas
3cdac04f4f
Flag the pool that is the longpoll thread to avoid sending multiple longpolls during the slight delays between requesting and setting the lp_sent flag.
2012-02-19 23:13:02 +11:00
Con Kolivas
79e95dd95c
Store whether a work item is the result of a longpoll or not in struct work and use it to help determine block changes directly from the work longpoll
...
bool.
2012-02-19 22:15:55 +11:00
Con Kolivas
39906718d2
Keep track of when a longpoll has been sent for a pool and if the current pool is requesting work but has not sent a longpoll request, convert one of
...
the work items to a longpoll as we may have switched pools but still be using the longpoll from the previous pool.
2012-02-19 22:07:31 +11:00
Con Kolivas
f85b85d244
Re-check for a longpoll supporting pool every 30 seconds if none is found initially.
2012-02-19 21:28:23 +11:00
Con Kolivas
02295c69c8
Allow devices that are disabled due to overheating to be flagged as recovering instead of disabling them and re-enable them if they're below ideal
...
temperatures and --no-restart has not been set.
2012-02-19 20:19:47 +11:00
Con Kolivas
fa4ce8daf2
Keep track of intended engine clock speed and only adjust up if it's higher than the last intended speed. This avoids setting the clock speed to one
...
relative to a lower profile one by mistake.
2012-02-18 22:29:12 +11:00
Con Kolivas
06721957a0
Freeze the queues on all threads that are sent the pause message to prevent them trying to start up again with saved pings in their queues.
2012-02-18 16:34:06 +11:00
Con Kolivas
83dde50f9d
Updates to diakgcn kernel courtesy of Philip Kaufmann <phil.kaufmann@t-online.de>
2012-02-18 15:17:50 +11:00
ckolivas
29f0b2714c
The amount of work scanned can fluctuate when intensity changes and since we do this one cycle behind, we increment the work more than enough to prevent repeating work.
2012-02-15 08:51:59 +11:00
Con Kolivas
07c2ee5317
Put win32 equivalents of nanosleep and sleep into compat.h fixing sleep() for adl.c.
2012-02-12 17:00:44 +11:00
zefir
e0fec35751
modularized logging, support for priority based logging
...
Functions related to logging are extracted into dedicated source files
for better maintainability.
The existing low-level logging API is extended with a generalized scheme
providing log functions log_{error, warning, notice, info, debug} that
log messages based on a global opt_log_level.
opt_log_level for now is set to LOG_NOTICE and might be modified via
command line options or config files in future releases.
2012-02-11 20:26:25 +01:00
zefir
713e8be629
move CPU chipset specific optimization into device-cpu
2012-02-11 20:25:41 +01:00
Con Kolivas
52bb99c3ea
Fix double definition of A0 B0 to zeroA zeroB.
2012-02-11 21:42:02 +11:00
Luke Dashjr
543265d66a
Generalize --temp-cutoff and implement support for reading temperature from BitFORCE FPGAs
2012-02-10 22:14:27 -05:00
Con Kolivas
8c609579f4
Merge pull request #107 from kanoi/master
...
Allow API to restrict access by IP address + other commits
2012-02-10 19:07:53 -08:00
ckolivas
59d3d0112b
Implement diablo kernel support and try to make it work.
2012-02-11 11:48:12 +11:00
ckolivas
95a989da4d
Conflicting entries of cl_kernel may have been causing problems, and automatically chosen kernel type was not being passed on. Rename the enum to cl_kernels and store the chosen kernel in each clState.
2012-02-11 11:48:12 +11:00
ckolivas
033913ca8e
First working port of the diakgcn kernel.
2012-02-11 11:48:11 +11:00
ckolivas
cb7145b179
Add basic build ability with diakgcn and put all kernel names in configure.ac to avoid changing them in mutliple places.
2012-02-11 11:48:11 +11:00
Kano
f19e67fe3a
Allow API to restrict access by IP address
2012-02-08 19:06:24 +11:00
Con Kolivas
de4c6c29d7
Provide support for the submitold extension on a per-pool basis based on the value being detected in a longpoll.
2012-02-06 18:12:22 +11:00
Con Kolivas
e57ac0177f
Remove unused get_dondata function.
2012-02-05 22:43:42 +11:00
Con Kolivas
294ac0b6bf
Stagger the restart of every next thread per device to keep devices busy ahead of accessory threads per device.
2012-02-05 22:33:58 +11:00
Kano
42fcbf7c9c
Remove most compiler warnings from api.c
2012-02-04 18:19:30 +11:00
Kano
0ebc0c9d8a
Add last share's pool info in cgpu_info
2012-02-04 17:49:49 +11:00
ckolivas
7d97ed6dd6
Fix various build issues.
2012-02-04 10:23:06 +11:00
Con Kolivas
10b697f0da
Revert "Fix compile warnings in api.c"
...
This reverts commit 8a90f1a756
.
Breaks windows build.
2012-01-30 23:56:54 +11:00
Kano
98d789bd93
Merge remote-tracking branch 'conman/master'
2012-01-30 15:23:23 +11:00
Con Kolivas
09184720c2
As share submission is usually staggered, and delays can be costly, submit shares without delay even when --net-delay is enabled.
2012-01-30 15:09:58 +11:00
Con Kolivas
430a19543e
Revert "Read off lpThermalControllerInfo from each ADL device."
...
This reverts commit 2d29cdb611
.
2012-01-30 08:06:00 +11:00
Kano
8a90f1a756
Fix compile warnings in api.c
2012-01-29 23:13:23 +11:00
Con Kolivas
82af288e69
Revert "Fix various harmless warnings."
...
This reverts commit a4b67f030f
.
2012-01-29 22:57:29 +11:00
Con Kolivas
a4b67f030f
Fix various harmless warnings.
2012-01-29 21:06:17 +11:00
Con Kolivas
5a0b4f62d0
Map GPU devices to virtual devices in their true physical order based on BusNumber.
2012-01-28 01:56:12 +11:00
Con Kolivas
06fd9c4a4c
Detect dual GPU cards by iterating through all GPUs, finding ones without fanspeed and matching twins with fanspeed one bus ID apart.
2012-01-26 23:27:10 +11:00
Kano
63e31b4d78
Move intensity range values into miner.h
2012-01-26 14:00:52 +11:00
Con Kolivas
9549dacf99
Detect dual GPU cards via the indirect information of - 1st card has a fan controller. 2nd card does not have a fan controller, cards share the same
...
device name, and are one bus ID apart. Use this information to create paired devices, displaying the fan speed on both devices and using the hottest
temperature from either GPU to control the overall fanspeed.
2012-01-25 01:19:58 +11:00
Luke Dashjr
4ae7baf0e1
BitForce: Need to use CreateFile and low-level (descriptor-based) C APIs on Windows, since fopen doesn't work with serial ports
2012-01-24 01:23:31 -05:00
Con Kolivas
2d29cdb611
Read off lpThermalControllerInfo from each ADL device.
2012-01-23 09:25:53 +11:00
Kano
ec2c0b784f
Add API commands: config, switchpool, gpu settings, save
2012-01-22 18:24:55 +11:00
Con Kolivas
e15d57d729
Implement socks4 proxy support.
2012-01-22 09:36:21 +11:00
Con Kolivas
2d5bbc7756
Provide nanosleep() equivalent for windows.
2012-01-22 01:40:29 +11:00
Con Kolivas
1b0b7e4a7c
Merge pull request #78 from luke-jr/bugfix_adl
...
Bugfix: Iterate over devices rather than threads for watchdog (and ADL)
2012-01-20 22:02:07 -08:00
Luke Dashjr
9a0bcc8890
Bugfix: Iterate over devices rather than threads for watchdog (and ADL)
2012-01-20 17:29:52 -05:00
Con Kolivas
5179d22463
Introduce a --net-delay option which guarantees at least 250ms between any networking requests to not overload slow routers.
2012-01-20 15:36:42 +11:00
Con Kolivas
9840c12e74
Generalise locking init code.
2012-01-20 14:47:17 +11:00
Luke Dashjr
3cb7221878
Restore old ugly inconsistent display of ADL information before the standard info
2012-01-19 21:57:08 -05:00
Luke Dashjr
5dfc8b694f
BitForce FPGA support
...
cgminer will scan for and mine BitForce FPGAs on USB ports by providing the
new --scan-serial <device> option, or autodetect them by searching
/dev/serial/by-id for *BitFORCE_SHA256*
2012-01-19 01:24:37 -05:00
Luke Dashjr
b9d197dee8
Refactor the CPU scanhash_* functions to use a common API. Fixes bugs.
...
- Before, some returned bool, and others returned int (which was then turned
into a bool with a comparison); now, everything returns a bool
- Before, some set hashes_done to nonce - 1 when a share was found and others
set it to nonce + 1 or 2. This caused some algorithms to scan/submit shares
twice with the new cpu_scanhash function. Now, it has all been replaced with
last_nonce, which is set to the final nonce checked by the scanhash_* func.
- VIA needs the full data, and cannot use midstate. All the others were
expecting midstate and data+64 for their parameters. Now, we pass midstate
and the full data pointer, and let the scanhash_* function choose which to
use.
2012-01-17 17:32:07 -05:00
Luke Dashjr
a4d1fe1e5d
Refactor miner_thread to be common code for any kind of device
...
This expands on the device API, by taking the actual main thread out of the
device's code, and calling the API only for specific tasks. This brings
various changes that were made to the GPU thread code into the CPU miner.
It also fixes a bug where shares found on old GPU work were discarded when
it switched to a new work.
2012-01-16 23:59:13 -05:00
Luke Dashjr
845961af66
Refactor to abstract device-specific code
2012-01-08 20:01:35 -05:00
Kano
5033dcd355
fix test/set of thr->pth to also work in windows
2011-12-27 18:33:49 +11:00
Con Kolivas
2257b5023a
Simplify longpoll changeover to just check which pool it should grab its next longpoll from. This should prevent locking hangs and thread cancellation
...
crashes.
2011-12-27 11:40:53 +11:00
Con Kolivas
b69aa23470
Use control_lock to protect thr->pth for thread creation/destruction.
2011-12-26 10:50:00 +11:00
Kano
50a0892254
2.0.8x Full GPU stats, descriptive field names and --api-description
2011-12-04 00:24:26 +11:00
Kano
45068ced82
Version 2.0.8w (windows changes)
2011-11-29 11:07:27 +11:00
Kano
45ebf2c5b4
Fix threading issues and bugs
2011-11-24 20:41:31 +11:00
Kano
d234b857ff
API v0.2 Added GPU commands and improved messages
2011-11-24 12:59:30 +11:00
Kano
df3fad3dbc
Add API options for port and listen mode
2011-11-23 22:22:10 +11:00
Kano
49532277df
Add summary command
2011-11-23 17:01:45 +11:00
Kano
bbe1702d66
Add quit command
2011-11-23 16:25:13 +11:00
Kano
2358056606
API v0.1
2011-11-23 14:35:49 +11:00
Con Kolivas
b0bfd816d6
Don't build VIA on apple since -a auto bombs instead of gracefully ignoring VIA failing.
2011-11-11 19:35:41 +11:00
Con Kolivas
a70629a701
Make longpoll do a mandatory flushing of all work even if the block hasn't changed, thus supporting longpoll initiated work change of any sort and
...
merged mining.
2011-11-01 15:19:26 +11:00
Con Kolivas
8c63061eaa
Allow a fixed speed difference between memory and GPU clock speed that will change memory speed when GPU speed is changed in autotune mode.
2011-10-23 20:52:16 +11:00
Con Kolivas
5133cf5b06
Add altivec 4 way support courtesy of Gilles Risch.
2011-10-09 12:22:00 +11:00
Con Kolivas
28796de72e
Merge https://github.com/geekmug/cgminer into gitmug
2011-09-27 11:14:43 +10:00
Con Kolivas
4128b954a6
Add a --donation feature which reads a url/userpass from the author's site and contributes a percentage of getworks to the author, but default to off.
2011-09-27 11:02:45 +10:00
Scott Dial
c54b0870a8
Assiging the bswap_{16,32,64} macros to __builtin_bswap{16,32,64}.
2011-09-26 19:35:30 -04:00
Con Kolivas
21c2bc469f
Make it possible to set the intensity on a per-card basis, dynamic or static values.
2011-09-26 15:24:20 +10:00
Con Kolivas
0ae3f71824
Check last temperature we reached and don't change fan speed if it's already correcting.
2011-09-23 10:46:34 +10:00
Kano
ba14a6705e
Remove EOL spaces from stderr and curses
2011-09-21 21:45:24 +10:00
Con Kolivas
b8ea0dd194
Update curses logging to allow LOG_WARNING and LOG_ERR messages to still go through while within the menu, and drop share message to LOG_NOTICE.
2011-09-17 13:25:04 +10:00
Con Kolivas
67fe6ab726
Don't both with adapter speed set as it has no effect on mining speed.
2011-09-16 10:26:25 +10:00
Con Kolivas
8e2becc12d
Change pth from being a pointer as we can dereference if we're unlucky on stopping longpoll.
2011-09-15 11:46:17 +10:00
Con Kolivas
833e020dfd
Standardise the way all non-mining threads are destroyed to make sure we can safely cancel them, freeing ram and NULLifying pointers.
2011-09-15 10:34:59 +10:00
Con Kolivas
dff1a81da7
Use a re-entrant value to store what fanspeed we're trying to set in case the card doesn't support small changes.
...
Force it to a multiple of 10% if it fails on trying to speed up the fan.
2011-09-11 11:25:28 +10:00
Con Kolivas
d5fe2cfd7a
Flag devices that have never started and don't allow enabling of devices without restarting them.
2011-09-11 10:48:39 +10:00
Con Kolivas
1917643dd0
Do away with the increasingly confusing and irrelevant total queued and efficiency measures per device.
2011-09-09 10:19:01 +10:00
Con Kolivas
6c8341f133
Define max gpudevices in one macro.
2011-09-08 14:44:14 +10:00
Con Kolivas
9b5cd61886
Implement accepting a range of engine speeds as well to allow a lower limit to be specified on the command line.
2011-09-08 13:04:39 +10:00
Con Kolivas
3997f308a0
Add a thermal cutoff option as well and set it to 95 degrees by default.
2011-09-07 10:43:26 +10:00
Con Kolivas
058303bcf3
Only reset values on exiting if we've ever modified them.
2011-09-07 10:00:10 +10:00
Con Kolivas
b8be1e6c15
Ignore whether the display is active or not since only display enabled devices work this way, and we skip over repeat entries anwyay.
2011-09-07 09:17:51 +10:00
Con Kolivas
2053de6d59
Add the directory name from the arguments cgminer was called from as well to allow it running from a relative pathname.
2011-09-06 10:11:34 +10:00
Con Kolivas
5fc56a45ee
Force the speed to high on startup and restore it to whatever the setting was on exit.
2011-09-05 19:30:03 +10:00
Con Kolivas
47f1a75924
Implement setting the GPU powertune value of all devices or each device as a comma separated value.
2011-09-05 19:30:03 +10:00
Con Kolivas
bd292258d3
Add support for monitoring powertune setting.
2011-09-04 22:56:19 +10:00
Con Kolivas
3a5663cac1
Implement setting the GPU fan speed of all devices or each device as a comma separated value.
2011-09-04 22:25:31 +10:00
Con Kolivas
8ae273c56c
Implement setting the GPU voltage of all devices or each device as a comma separated value.
2011-09-04 22:08:42 +10:00
Con Kolivas
54bc30ceec
Implement setting the GPU memory clock speed of all devices or each device as a comma separated value.
2011-09-04 22:01:58 +10:00
Con Kolivas
ec8808d004
Implement setting the GPU engine clock speed of all devices or each device as a comma separated value.
2011-09-04 21:55:06 +10:00
Con Kolivas
e9b5885ebe
Add a gpu autotune option which adjusts GPU speed to maintain a target temperature within the bounds of the default GPU speed and any overclocking set.
2011-09-03 22:30:11 +10:00
Con Kolivas
dcc97e45db
Add an --auto-fan command line option to allow all GPUs to have autofan enabled from startup.
2011-09-03 15:46:57 +10:00
Con Kolivas
495adcbf5f
Implement auto fanspeed adjustment to maintain a target temperature and fanspeed below 85%, with an overheat check that will speed the fan up to 100%.
2011-09-03 15:33:53 +10:00
Con Kolivas
35ace46325
Enable changing of engine clock setting on the fly.
2011-09-03 13:02:21 +10:00
Con Kolivas
d57cd91955
Implement ATI ADL support for GPU parameter monitoring now and setting later (temp, fan, clocks etc.).
...
Check for the presence of the ADL header files in ADL_SDK.
Import adl_functions.h from amd overdrive ctrl.
Implement a setup function that tries to detect GPUs that support the ADL and link in the parameters into the gpus struct.
Put a summary of monitoring information from the GPU menu.
2011-09-03 10:53:35 +10:00
Con Kolivas
063efb1996
Rename localgen occasions to getwork fail occasions since localgen is unrelated now.
2011-09-02 10:37:00 +10:00
Con Kolivas
8496534168
Add start and stop time scheduling for regular time of day running or once off start/stop options.
2011-09-01 13:19:51 +10:00
Con Kolivas
a593afdbeb
Use the curses_lock to protect the curses_active variable and test it under lock.
2011-08-31 13:23:36 +10:00
Con Kolivas
4969162c03
Check for SSE2 before trying to build 32 bit SSE2 assembly version. Prevents build failure when yasm is installed but -msse2 is not specified.
2011-08-29 10:12:34 +10:00
Con Kolivas
3d5f555407
Allow a custom kernel path to be entered on the command line.
2011-08-25 14:42:03 +10:00
Con Kolivas
7dc3db2340
Implement SSE2 32 bit assembly algorithm as well.
2011-08-25 13:04:15 +10:00
Con Kolivas
dbf0a1366d
Use the new hashes directly for counts instead of the fragile counters currently in use.
2011-08-24 21:50:04 +10:00
Con Kolivas
666fcc3f55
Move staged threads to hashes so we can sort them by time.
2011-08-24 12:51:38 +10:00
Con Kolivas
ced4a9ac92
Clean up the pool switching to not be dependent on whether the work can roll or not by setting a lagging flag and then the idle flag.
2011-08-23 11:40:48 +10:00
Con Kolivas
324d849bf2
Attempt to restart a GPU once every minute while it's sick.
...
Don't kill off the reinit thread if it fails to init a GPU but returns safely.
Only declare a GPU dead if there's been no sign of activity from the reinit thread for 10 mins.
2011-08-20 23:03:49 +10:00
Znort 987
e49bfbf2ec
Add per-device statics log output
2011-08-18 12:17:10 +02:00
Phateus
d15d225a4c
Changed phatk version to 2.2
2011-08-17 14:53:17 +10:00
Con Kolivas
1e77f04481
Clean up the longpoll management to ensure the right paths go to the right pool and display whether we're connected to LP or not in the status line.
2011-08-17 12:43:39 +10:00
Con Kolivas
4e48561a13
Rework the last-initialised time displayed.
2011-08-15 23:23:53 +10:00
Con Kolivas
b1289a0159
Revert "Move the non cl_ variables into the cgpu info struct to allow creating a new cl state on reinit, preserving known GPU variables."
...
This reverts commit 28880d0dc7
.
2011-08-15 23:23:29 +10:00
Con Kolivas
7c50bb02ab
Revert "Display last initialised time in gpu management info."
...
This reverts commit 177e07aed3
.
2011-08-15 23:23:20 +10:00
Con Kolivas
50504ef9e0
If a work item has had any mining done on it, don't consider it discarded work.
2011-08-14 13:57:58 +10:00
Con Kolivas
639d38fbd4
Revert "Make sure to give work items a starting time only once when they're staged."
...
This reverts commit 626ae10d7c
.
Failed to address all work items.
2011-08-14 07:54:45 +10:00
Con Kolivas
626ae10d7c
Make sure to give work items a starting time only once when they're staged.
2011-08-14 02:33:55 +10:00
Con Kolivas
d6dd5d700b
Test each work item to see if it can be rolled instead of per-pool and roll whenever possible, adhering to the 60 second timeout.
2011-08-14 01:54:47 +10:00
Con Kolivas
177e07aed3
Display last initialised time in gpu management info.
2011-08-13 20:55:30 +10:00
Con Kolivas
28880d0dc7
Move the non cl_ variables into the cgpu info struct to allow creating a new cl state on reinit, preserving known GPU variables.
...
Create a new context from scratch in initCQ in case something was corrupted to maximise our chance of succesfully creating a new worker thread.
2011-08-13 20:54:20 +10:00
Con Kolivas
947a74bfa3
Differentiate thread failure from GPU failure by declaring a GPU sick first and trying to restart the thread without re-initialising the card.
...
If that fails, then try once more at ten minutes and declare it dead.
This should prevent an attempted re-initialising of the GPU from taking out other GPUs.
2011-07-30 01:23:17 +10:00
Con Kolivas
3803760689
Reimplement the per-thread getwork count with proper accounting at get_work().
2011-07-29 11:11:42 +10:00
Con Kolivas
0fe22d8d94
Revert "Only update the thread getwork queue count if it actually results in a getwork request from the server."
...
This reverts commit 2e607d44f2
.
The count looks far too difficult to add up with this change since many are queued generically.
2011-07-29 11:02:47 +10:00
Con Kolivas
2e607d44f2
Only update the thread getwork queue count if it actually results in a getwork request from the server.
2011-07-29 10:39:58 +10:00
Con Kolivas
0006eb2da4
Make the "quiet" mode still update the status and display errors, and add a new --real-quiet option which disables all output and can be set once while running.
2011-07-28 10:36:48 +10:00
Con Kolivas
e82e390295
If work has been cloned it is already at the head of the list and when being reinserted into the queue it should be placed back at the head of the list.
2011-07-27 16:40:52 +10:00
Con Kolivas
98f609b5be
Sanity check to prove locking.
2011-07-27 10:31:44 +10:00
Con Kolivas
1536e085da
Increase efficiency of slow mining threads such as CPU miners dramatically.
...
Do this by detecting which threads cannot complete searching a work item within the scantime and then divide up a work item into multiple smaller work items.
Detect the age of the work items and if they've been cloned before to prevent doing the same work over.
If the work is too old to be divided, then see if it can be time rolled and do that to generate work.
This dramatically decreases the number of queued work items from a pool leading to higher overall efficiency (but the same hashrate and share submission rate).
2011-07-26 20:48:05 +10:00
Con Kolivas
fa17f03432
Implement much more accurate rolling statistics per thread and per gpu and improve accuracy of rolling displayed values.
2011-07-26 11:58:45 +10:00
Con Kolivas
7707ed4db1
Add a menu to manage GPUs on the fly allowing you to enable/disable GPUs or try restarting them.
...
Keep track of which GPUs are alive versus enabled.
Start threads for devices that are even disabled, but don't allow them to start working.
2011-07-26 10:26:03 +10:00
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
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
Ycros
d37c3fe56b
Win32 threading and longpoll keepalive fixes.
2011-07-22 23:43:26 +10:00
Con Kolivas
ec86da70e1
Limit rolltime work generation to 10 iterations only.
2011-07-22 20:06:06 +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
7841486f83
Add a bool for explicit enabling/disabling of pools.
2011-07-21 14:41:12 +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
d518f7cbfd
Track pool number.
2011-07-20 11:27:21 +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
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
b8ba2fd44e
Implement a per-pool mutex and use that for locking the internal flags.
2011-07-19 09:54:50 +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
0aa9887300
Add an sse4 algorithm to CPU mining.
2011-07-18 11:27:58 +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
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
c36cc61f64
Ensure we connect at least once successfully before continuing to try to connect.
2011-07-14 22:16:06 +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
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
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
6464dbfc65
Implement per-device request count to have a per-device efficiency and request status.
2011-07-10 00:53:48 +10:00
Ycros
a5fb85ef84
Fixed WIN32 compilation with byteswap.
2011-07-09 13:28:20 +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
Rusty Russell
e2d912eb4a
vapplog: new helper function for reporting errors.
2011-07-06 16:44:36 +09:30
Con Kolivas
837e7b1a85
Remove unused cgpu rolling_local variable.
2011-07-06 13:28:29 +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
cb13e2cfe5
Make it possible to build without opencl for cpu mining only.
2011-07-05 19:49:29 +10:00
Con Kolivas
9950aa3927
Fix 32 bit builds.
2011-07-04 19:56:27 +10:00
Con Kolivas
5007805d1f
Update CPU reentrant scan code to work properly for extended periods up to scantime and adjust rate properly.
...
Simplify locking in hashmeter since it's called relatively infrequently anyway.
Set gpuminer hashmeter interval update to log interval / 5 as well.
2011-07-04 19:56:27 +10:00
Ycros
ec8319176e
Build on windows using mingw32.
2011-07-04 19:56:27 +10:00
ckolivas
08a7821072
Make the log show what the thread is: cpu or gpu and what number.
2011-07-04 19:47:45 +10:00
ckolivas
f490143a9a
Add local thread count to info, store hw error count, and make share submission debug only.
2011-07-04 19:47:45 +10:00
Con Kolivas
6374e0fafe
Import the phatk kernel. Enable it only for hardware with amd media ops for now since it crashes nvidia et. al.
...
Fallback to the poclbm kernel for the rest. Try harder to avoid stale blocks around longpoll detecting new blocks.
2011-07-04 19:47:45 +10:00
Con Kolivas
a45c54aaf8
Make postcalc_hash asynchronous as well.
2011-07-04 19:47:45 +10:00
Con Kolivas
dde7039726
Merge gpumining from oclmine. Unstable.
2011-07-04 19:46:39 +10:00
ckolivas
262b98ca95
Linux + x86_64 optimisations.
...
Add likely() macro.
Optimise a few obvious code paths with likely/unlikely.
Change algo to sse2_amd64 by default.
Move priority change to worker threads only.
Detect number of CPUs and set default number of threads == CPUs.
Add scheduling policy change to worker threads to SCHED_IDLE first and fallback to SCHED_BATCH on linux.
Don't error when failing to set priority.
Add CPU affinity and bind worker threads to CPUs when number of threads is a multiple of number of CPUs.
Update NEWS with changes.
2011-07-04 19:46:38 +10:00
Glenn Francis Murray
180b99f2d9
OSX Support
...
Derived from xorg source
http://cgit.freedesktop.org/xorg/xserver/tree/GL/glx/glxbyteorder.h?id=cdf6b15f039c4905d8d54152153b0a3ecd7aba55;id2=415e49b940bba2d08870db410ebb47d2add5d836
2011-05-11 04:41:11 +10:00
Jeff Garzik
2fd9d54443
Convert remaining [f]print to applog().
...
Also, remove a few superfluous printouts.
2011-03-21 04:02:13 -04:00
Jeff Garzik
23e9cf91f0
Ensure cpuminer-config.h is universally included, in *.c and *.h alike.
...
In miner.h, this fixes an alloca-definition-related warning.
For the other files, this is simply future-proofing/precaution.
2011-03-20 22:44:25 -04:00
Jeff Garzik
24afd61775
Introduce more standardized logging (incl. optional syslog).
...
Also, improve portability of alloca.
2011-03-18 17:24:16 -04:00
Jeff Garzik
7a87bee999
Add long polling support
2011-03-18 02:53:13 -04:00
Jeff Garzik
33e5b54928
miner.h: pad out work_restart to max likely cache line size
2011-03-17 23:19:43 -04:00
Jeff Garzik
2d49a9a5d7
Introduce ability to interrupt hash scanners in the middle of scanning.
2011-03-17 22:02:28 -04:00
Jeff Garzik
0258fae450
Fix Windows build, that broke with yasm integration
2011-03-14 23:36:28 -04:00
Jeff Garzik
4f7a51e9ed
Move all RPC I/O to separate thread.
2011-03-14 23:17:34 -04:00
Jeff Garzik
6b19b15aa9
Fix warnings in sse2_64 implementation.
2011-03-07 00:23:12 -05:00
Mark Crichton
96d2287c72
X86_64 SSE2 support for Linux
2011-03-06 23:49:00 -05:00
Jeff Garzik
1083e15c47
Mark hash success as unlikely, using __builtin_expect() intrinsic
2011-02-17 01:22:55 -05:00
Jeff Garzik
9f3472ad19
Use bswap_32 from byteswap.h, if __builtin_bswap() is not available
2011-02-10 00:52:22 -05:00
Jeff Garzik
c0935a9489
Re-use CURL object, thereby caching DNS and HTTP connections where possible.
2011-02-10 00:41:44 -05:00
Jeff Garzik
714c0fd7c9
Continue scanhash, even if high 32 bits are zero.
...
Previously, we would stop the scan if the high 32 bits of the hash were zero,
as a quick shortcut for testing the full hash. If this quick test succeeded,
we would pass the work to the server for full validation.
Change this logic to perform full validation inside minerd, so that work may
be resumed more quickly if hash > target.
2011-02-03 00:46:55 -05:00
Jeff Garzik
c68ffb30dd
Display proof-of-work hash when one is discovered
2011-02-02 18:47:04 -05:00
Jeff Garzik
0b67740707
Pass max-nonce as arg to each sha256 algo.
...
Should be an equivalent transformation, with no behavior changes.
2011-01-29 00:56:24 -05:00
Jeff Garzik
a296799358
Replace ___constant_swab32() with gcc's __builtin_bswap32
...
http://www.bitcoin.org/smf/index.php?topic=1925.msg34827#msg34827
Credit: lfm
2011-01-29 00:41:27 -05:00
Jeff Garzik
970e74c07d
Move 32-bit swap code into miner.h, for sharing.
2010-12-26 23:37:58 -05:00
Jeff Garzik
d88648dd39
sha256_via: ensure that found nonce is copied back into output data buffer
...
Also, some minor cleanups, removing unused args.
2010-12-23 20:21:00 -05:00
Jeff Garzik
f1fcd76ba7
sha256_cryptopp: Add crypto++ 32-bit assembly implementation
2010-12-06 20:14:58 -05:00
Jeff Garzik
74bb196296
Add Crypto++ sha256 implementation (C only, ASM elided for now)
2010-11-28 20:16:22 -05:00
Jeff Garzik
339ddf4d75
Move sha256_generic into its own .o build output. Const-ify midstate param.
2010-11-27 04:31:32 -05:00
Jeff Garzik
4da2e4fbe2
miner.h: include sys/time.h for struct timeval definition
2010-11-27 01:59:03 -05:00
Jeff Garzik
e2eeaaf75b
Add experimental (read: probably broken) VIA padlock support.
2010-11-27 01:29:56 -05:00
Jeff Garzik
86eb37d631
Improve and modularize compile-time CPU detection.
...
Ideally, we should move this to autoconf.
2010-11-27 00:46:59 -05:00
Jeff Garzik
35ea649d97
Improve hash performance statistics.
2010-11-26 23:12:24 -05:00
Jeff Garzik
c639149977
Add tcatm's 4way SSE2 sha256 implementation.
2010-11-26 19:04:48 -05:00
Jeff Garzik
b7cc9b68ad
Replace argp with getopt_long
2010-11-26 15:46:11 -05:00
Jeff Garzik
945be82ea1
Move utility routines to util.c.
2010-11-25 04:03:59 -05:00