| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739 |
- BFGMiner Version 2.7.6 - Future
- - Sort the blocks database in reverse order, allowing us to remove the first
- block without iterating over them. Output the block number to debug.
- - Adjust opencl intensity when adjusting thread count to prevent it getting
- pegged at a value below the minimum threads possible.
- - miner.h max_hashes -> int64_t
- - Keep the local block number in the blocks structs stored and sort them by
- number to guarantee we delete the oldest when ageing the block struct entries.
- - Use correct sdk version detection for SDK 2.7
- - Bugfix: Align Ztex statline properly by removing redundant frequency
- - make-release: Convert text files to DOS format for Windows ZIP
- BFGMiner Version 2.7.5 - August 27, 2012
- - Revert "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."
- - Stop special-casing worksize default to 256 for Cypress, since it incurs a 5
- MH/s hit with stock config
- - New "--scan-serial all" feature to probe all enumerated serial ports
- - modminer: Revamp dynamic clocking algorithm per request from cablepair
- - Test for lagging once more in queue_request to enable work to leak to backup
- pools.
- - There is no need to try to switch pools in select_pool since the current pool
- is actually not affected by the choice of pool to get work from.
- - Only clear the pool lagging flag if we're staging work faster than we're using
- it.
- - needed flag is currently always false in queue_request. Remove it for now.
- - thr is always NULL going into queue_request now.
- - Fix for non-ADL OpenCL device formatting issue
- BFGMiner Version 2.7.4 - August 23, 2012
- - Perform select_pool even when not lagging to allow it to switch back if needed
- to the primary.
- - Simplify macros in output kernels avoiding apparent loops and local variables.
- - Carry the needed bool over the work command queue.
- - Move the decision to queue further work upstream before threads are spawned
- based on fine grained per-pool stats and increment the queued count immediately.
- - Track queued and staged per pool once again for future use.
- - OpenCL 1.0 does not have native atomic_add and extremely slow support with
- atom_add so detect opencl1.0 and use a non-atomic workaround.
- - Pools: add RollTime info to API 'stats' and 'Stats' button in miner.php
- BFGMiner Version 2.7.3 - August 23, 2012
- - Minimise the number of getwork threads we generate.
- - Pick worksize 256 with Cypress if none is specified.
- - Give warning with sdk2.7 and phatk as well.
- - Whitelist sdk2.7 for diablo kernel as well.
- - Only keep the last 6 blocks in the uthash database to keep memory usage
- constant. Storing more is unhelpful anyway.
- - Increase kernel versions signifying changed APIs.
- - BFL flash - more FPGA-README
- - Check we haven't staged work while waiting for a curl entry before proceeding.
- - Use atomic ops to never miss a nonce on opencl kernels, including nonce==0,
- also allowing us to make the output buffer smaller.
- - Remove compile errors/warnings and document compile/usage in FPGA-README
- - Ignore the submit_fail flag when deciding whether to recruit more curls or not
- since we have upper bounds on how many curls can be recruited, this test is
- redundant and can lead to problems.
- - API-README update cgminer version number
- - API-README fix groups P: example mistake
- - API-README add COIN and other edits
- - miner.php allow 'coin' is custom pages
- BFGMiner Version 2.7.1 - August 22, 2012
- - Update windows build instructions courtesy of sharky.
- - Increase max curls to number of mining threads + queue * 2, accounting for up
- and downstream comms.
- - Queue enough requests to get started.
- - There is no point trying to clone_work in get_work() any more since we clone
- on every get_work_thread where possible.
- - There is no point subtracting 1 from maxq in get_work_thread.
- - miner.php allow page title to be defined in myminer.php
- - Only set lagging flag once there are no staged work items.
- - select_pool does not switch back to the primary once lagging is disabled.
- - Increment total work counter under mutex lock.
- - Increment the queued count after the curl is popped in case there's a delay
- waiting on curls and we think we've queued work when in fact we're waiting on
- curls.
- - Do the dynamic timing in opencl code over a single pass through scanhash to
- make sure we're only getting opencl times contributing to the measured
- intervals.
- - Increase curl reaping time to 5 minutes since comms between curl requests can
- be 2 mins apart with lots of rolltime.
- - No need for extra variable in hash_push.
- - Remove short options -r and -R to allow them to be reused and remove readme
- entries for deprecated options.
- - Deprecate the opt_fail_pause parameter, leaving a null placeholder for
- existing configurations.
- - Free work before retrying in get_work_thread.
- - Don't pause after failed getwork, set lagging flag and reassess.
- - We should not be pausing in trying to resubmit shares.
- - Get rid of the extending fail pause on failed connects since we discard work
- after a period.
- - get_work always returns true so turn it into a void function.
- - get_work never returns false so get rid of fail pause loop.
- - Get rid of pause and retry from get_upstream_work so we only do it from one
- place.
- - Remove all cases where --retries aborts BFGMiner, making it for submission
- retries only, where it makes sense.
- BFGMiner Version 2.7.0 - August 21, 2012
- - 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.
- - fpga serial I/O extra debug (disabled by default)
- - 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.
- - Consider us lagging only once our queue is almost full and no staged work.
- - Simplify the enough work algorithm dramatically.
- - Only queue from backup pools once we have nothing staged.
- - Don't keep queueing work indefinitely if we're in opt failover mode.
- - Make sure we don't opt out of queueing more work if all the queued work is
- from one pool.
- - Set lagging flag if we're on the last of our staged items.
- - Reinstate clone on grabbing work.
- - Grab clones from hashlist wherever possible first.
- - Cull all the early queue requests since we request every time work is popped
- now.
- - Keep track of staged rollable work item counts to speed up clone_available.
- - Make expiry on should_roll to 2/3 time instead of share duration since some
- hardware will have very fast share times.
- - Check that we'll get 1 shares' worth of work time by rolling before saying we
- should roll the work.
- - Simplify all those total_secs usages by initialising it to 1 second.
- - Overlap queued decrementing with staged incrementing.
- - Artificially set the pool lagging flag on pool switch in failover only mode as
- well.
- - Artificially set the pool lagging flag on work restart to avoid messages about
- slow pools after every longpoll.
- - Factor in opt_queue value into enough work queued or staged.
- - Roll work whenever we can on getwork.
- - Queue requests for getwork regardless and test whether we should send for a
- getwork from the getwork thread itself.
- - Get rid of age_work().
- - Don't try to get bitforce temperature if we're polling for a result to
- minimise the chance of interleaved responses.
- - Fix harmless unused warnings in scrypt.h.
- - Check we are not lagging as well as there is enough work in getwork.
- BFGMiner Version 2.6.5 - August 20, 2012
- - API new command 'coin' with mining information
- - Add message to share if it's a resubmit.
- - Add virtual adl mapping for when none is specified on the command line to
- not crash without a map specified.
- - Fix ADL gpu-map not working when there are more ADL devices than openCL.
- Patch supplied and tested by Nite69.
- - bitforce: Initial import of Linux-only bitforce-firmware-flash utility
- - Revert stale-on-arrival failsafe, since it ends up needing exceptions for
- everything
- - Bugfix: opencl: Declare opencl_dynamic_cleanup in header
- - Even if we want to submit stale shares, give up if we have more submissions
- waiting on threads (even before failing)
- - Even if we want to submit stale shares, give up if they've failed and we
- have more submissions waiting on threads
- - opencl: Use timeBeginPeriod on Windows to ensure gettimeofday has sufficient
- precision for dynamic intensity
- - Bugfix: opencl: Move ADL fanspeed warning messages to a new thread to get
- around summary-update deadlocking
- - README: Note that user groups don't get updated until re-login
- - Initialise cnt in libztex.c
- - Don't try to start devices that don't support scrypt when scrypt mining.
- - Repeating on timeout in ztex could make the code never return.
- - Offset libusb reads/writes by length written as well in ztex.
- - Cope with timeouts and partial reads in ztex code.
- - If there are more devices than nDevs, don't iterate over them as they may
- overwrite devices mapped below that with the mapping option.
- - Fix README faq on bfl auto-detect.
- - Set memory clock based on memdiff if present from with engine changes,
- allowing it to parallel manual changes from the menu as well.
- - api.c typo
- - API allow display/change failover-only setting
- - API-README corrections
- - miner.php documentation (in API-README) v0.1
- - Bugfix: opencl: Show blank device-info statline area if GPU doesn't have
- ADL, to fix column alignment
- - README: Document usage of 0 to indicate "leave at default" for comma-
- delimited GPU options
- - Correct API-README versions to match when BFGMiner included them
- - API-README update changelog
- - Minimise locking and unlocking when getting counts by reusing shared mutex
- lock functions.
- - Avoid getting more work if by the time the getwork thread is spawned we find
- ourselves with enough work.
- - The bitforce buffer is cleared and hw error count incremented on return from a
- failed send_work already so no need to do it within the send_work function.
- - Don't make mandatory work and its clones last forever.
- - modminer: Log debug info for nonces found
- BFGMiner Version 2.6.4 - August 11, 2012
- - Bugfix: Define my_cancellable_getch in miner.h
- - Escape " and \ when writing json config file
- - miner.php allow a custom page section to select all fields with '*' - e.g. to
- create a STATS section on a custom page
- - miner.php optional single rig totals (on by default)
- - Bugfix: Initialize submitting mutex
- - Bugfix: bitforce: Allocate enough space for FTDI description pointers
- - Queue one request for each staged request removed, keeping the staged
- request count optimal at all times.
- - Bugfix: Avoid cancelling threads while locks are held
- - Set recognizable names on threads for debugging
- - Bugfix: Don't keep making new get_work threads if all pools are dead
- - Enable configuring submission thread limit with --submit-threads option
- - Bugfix: Limit active submission threads to 0x40 so we don't overflow
- - Bugfix: Properly handle switching to pools that aren't on the latest block,
- and warn if a pool actively switches to an old block
- - Log more details of reasons in stale_work debug messages
- - Failsafe against stale-on-arrival work: disable the pool
- - Bugfix: Debug message should show "Work stale due to work restart" when it's
- not a share
- - windows-build: Remove APP SDK section since it is no longer needed
- - modminer: HACK: Let last_work handle the end of the work, and start the next
- one immediately
- - Bugfix: modminer: Remove erroneous "else" statement, to fix hashrate
- reporting
- - README: Document user group required for FPGAs on Gentoo and Ubuntu
- - BFGMiner-specific README adjustments
- - Bugfix: opencl: Ignore error getting device ids from platforms unless they
- are explicitly chosen
- - New --debuglog option to include debug info in stderr logfile even if not in
- the console
- - Bumped down debhelper compatibility reqs so that this will build on Lucid.
- - Updated to match packaging changes.
- - Switched to native packages so we don't have to muck around creating fake
- upstream tarballs, and can easily generate minor versions for upload to
- Launchpad.
- - Removed accidentally included debugging line.
- - Minor version bump again because of launchpad. Will sort this out for next
- release.
- - Updated to patch bitforce module issue on Debian/Ubuntu.
- - Added local quilt config dir to ignore.
- - modminer: Check nonce against previous work, in case of race
- - Bugfix: Enable --kernel-path option if ModMiner or Ztex is enabled (even if
- no OpenCL)
- - Bugfix: Escape backslashes and double-quotes in strings that rightfully may
- have them, when writing JSON config file
- - Clean object (.o) and dependency (.d) files out of source tree
- - Bugfix: bitforce: Don't count hashes that never happened due to throttling
- - Bugfix: Deal with serial_open timeout maximum (25.5s)
- - - fpgautils: Linux only supports uint8_t decisecond values for timeouts, so
- use uint8_t for timeout value; this gets smart compilers to throw warnings
- when overflowed in some cases
- - - bitforce: Reduce serial timeout to 25 seconds (was 30) and increase job
- long timeout to 25 seconds (was 15) to handle throttling gracefully
- - modminer: Add debug info to API extra device stats
- - modminer: Raise clock speed when there's only good nonces for a while
- - modminer: Only print clock speed adjustments when they actually change
- - modminer: Increase tolerance for bad nonces to 2%
- - modminer: Reset bad-nonce ratio measurement when the clock speed changes
- - Bugfix: bitforce: Include the correct device id in "garbled response" warning
- - ADL: Add attribution and disclaimer to interfaces
- - Cleaned out refs to AMD SDKs.
- - Updated README about debian packaging, changelog with minor version bump to
- work around Launchpad reqs.
- - Updated changelog with Ubuntu release specific version, needed to build for
- multiple releases. Also stripped out ADL SDK stuff in the build rules.
- - Initial work to adjust debian packaging from cgminer. Should build correctly
- now with pbuilder/pdebuild, and include docs.
- - Adapt miner code to free ADL structures
- - Import free ADL interfaces
- - Include scrypt.h in Makefile.
- - Fix windows bitforce build.
- - Convert the serial autodetect functions to use int instead of char to
- enumerate devices.
- - Uglify windows autodetect code for BFL.
- - There is no point zeroing temperature in BFL if we fail to get a response, and
- we should register it as a HW error, suggesting throttling.
- - Update SCRYPT README with information about HW errors.
- - Use the scrypt CPU code to confirm results from OCL code, and mark failures as
- HW errors, making it easier to tune scrypt parameters.
- - We may as well leave one curl still available per pool instead of reaping the
- last one.
- - Display reaped debug message outside mutex lock to avoid recursive locking.
- - api.c update API start message and include port number
- - miner.php ignore arg when readonly
- - miner.php allow pool inputs: delete, addpool, poolpriority
- - bitforce: Reopen on communication error
- - Bugfix: Calculate hw err percent for the affected FPGA only
- - make-release: Adapt to new autogen by using NOCONFIGURE var
- BFGMiner Version 2.6.3 - August 6, 2012
- - modminer: Relax no-nonces downclocking condition to be more reasonable
- - README: Update scrypt configure option
- - README: Update configure options
- - Bugfix: Display --disable-modminer in configure --help now that it is
- enabled by default
- - Add specific information when ADL detects error -10 saying the device is not
- enabled.
- - modminer: Shorten upload warning message to fit better
- - modminer: Sending a "ping" first, to workaround bug in new firmware betas
- - modminer: Include Hardware Errors and Valid Nonces in extra device status
- - Bugfix: modminer: Calculate bad-nonce percentage based only on the same
- FPGA's hardware errors, accurately
- - modminer: Show bitstream upload progress in statline, and only report to log
- every 10%
- - modminer: Be more verbose about why the clock is getting reduced
- - Document how Icarus golden nonce is handled by other FPGAs
- - Rewrite should_run for sched, to properly handle one-shot schedules spanning
- midnight
- - Bugfix: Check list_empty in pop_curl_entry after condition wait
- - Bugfix: Only add new pools to array after completing basic structure
- initialization
- - If __BFGMINER_SEGFAULT_ERRQUIT is set in the environment, segfault on
- non-zero quit()s
- - Check against NULL pointers getting into curlring
- - modminer: Finish a process results run with a nonce poll, rather than sleep
- - modminer: Workaround Windows driver failures
- - Count likely throttling episodes on bitforce devices as hardware errors.
- - Bugfix: bitforce: Increase serial read timeout to 30 seconds during actual
- mining, to tolerate more throttling
- - Style cleanups.
- - Make pool_disabled the first in the enums == 0, fixing the pool enabled count
- which compares if value is not enabled before enabling it.
- - Correct writing of scrypt parameters to config file based on command line
- parameters only.
- - Add scrypt support while writing conf
- - Use different variables for command line specified lookup gap and thread
- concurrency to differentiate user defined versus auto chosen values.
- - Queue a request on pool switch in case we have no work from the new pool yet.
- - API remove unused warning in non-GPU compile
- - api.c in linux allow to open a closed socket in TIME_WAIT
- - Display failover only mode in pool menu and allow it to be toggled live.
- - Reinstate check for system queueing lag when the current pool's queue is maxed
- out, there is no staged work, and the work is needed now.
- - Fix harmless warnings.
- - Check the current staged and global queued as well before queueing requests.
- Discard stales before ageing work in the watchdog thread. Queue requests after
- discarding and ageing work in watchdog thread. Display accurate global queued in
- curses output. Reuse variable in age_work().
- - 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.
- - Update debian package configs to v2.6.2
- - Queue an extra request whenever staged work drops below mining thread count in
- hash_pop.
- - Bugfix: Initialize logwin to 1 line high temporarily, to avert PDCurses crash
- - Enable FPGA support by default, as long as their dependencies are met
- - Bugfix: modminer: Search for *ModMiner* in udev ID_MODEL
- - make-release: build with --enable-scrypt
- - miner.php support custom report section joins
- - ICA default fpga_count to work_division if specified
- - FPGA-README document new hidden --icarus-options
- - ICA support 57600 baud rate, up to 8 FPGA and partial working FPGA boards
- - Scrypt mining does not support block testing yet so don't try to print it.
- - Clear the bitforce buffer whenever we get an unexpected result as it has
- likely throttled and we are getting cached responses out of order, and use the
- temperature monitoring as a kind of watchdog to flush unexpected results.
- - It is not critical getting the temperature response in bitforce so don't
- mandatorily wait on the mutex lock.
- - Check there is a cutoff temp actually set in bitforce before using it as a cut
- off value otherwise it may think it's set to zero degrees.
- - We dropped the temporary stopping of curl recruiting on submit_fail by
- mistake, reinstate it.
- - Make threads report in either side of the scanhash function in case we miss
- reporting in when restarting work.
- - Add debugging output when work is found stale as to why.
- - Print the 3 parameters that are passed to applog for a debug line in
- bitforce.c
- - Clear bitforce buffer on init as previously.
- - Add some headroom to the number of curls available per pool to allow for
- longpoll and sendwork curls.
- - Show the correct base units on GPU summary.
- - Bugfix: bitforce: 1 decisecond timeout is unreasonably short, give it a
- second
- - Bugfix: Don't try to log abandon time, since we aren't keeping track
- reasonably
- - Import uthash 1.9.6
- - Bugfix: bitforce: Pause after send_work failures
- - Fix comm error handling to not consider work restarts an error condition
- - comm error bug fix
- - Bugfix: No endian.h on Windows
- - Remove unused mkinstalldirs
- - Display scrypt as being built in as well.
- - Fix build warning about KL_SCRYPT when built without scrypt support.
- - News update.
- - More scrypt intensity information.
- - Minor readme updates.
- - Update README with more build instructions.
- - 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.
- - Style
- - API-README poolpriority changes
- - api.c verify poolpriority parameters before changing pools
- - api.c poolpriority changes
- - Implement shared swap32(yes|tole|tobe) function to handle endian flipping
- 32-bit chunks in blocks
- - Use correct macros for endian handling code
- BFGMiner Version 2.6.1 - July 29, 2012
- - Autoselect --scrypt iff all pools send scrypt work
- - Adapt SCRYPT-README to BFGMiner (directing Bitcoin donations the correct
- direction to reach Con)
- - Remove mentions of Litecoin specifically
- - Bugfix: Fix build without OpenCL but with scrypt
- - make-release: Add SCRYPT-README
- - Bump version 2.6.0, adding SCRYPT README to makefile.
- - Smarter autogen.sh script.
- - Sleeping on intensity decrease is broken, remove it.
- - Sleep only the extra amount of time we overran the dynamic interval in dynamic
- mode.
- - Add scrypt documentation in the form of a separate readme.
- - Fix build error without scrypt enabled.
- - Limit thread concurrency for scrypt to 5xshaders if shaders is specified.
- - Simplify repeated use of gpus[gpu]. in ocl.c
- - Find the nearest power of 2 maximum alloc size for the scrypt buffer that can
- successfully be allocated and is large enough to accomodate the thread
- concurrency chosen, thus mapping it to an intensity.
- - Don't make opt_scrypt mandatory blocking with opencl code.
- - Update kernel versions reflecting changes in the API.
- - Make the thread concurrency and lookup gap options hidden on the command line
- and autotune parameters with a newly parsed --shaders option.
- - Fix target testing with scrypt kernel as it would have been missing shares
- below target.
- - Always create the largest possible padbuffer for scrypt kernels even if not
- needed for thread_concurrency, giving us some headroom for intensity levels.
- - Use the detected maximum allocable memory on a GPU to determine the optimal
- scrypt settings when lookup_gap and thread_concurrency parameters are not given.
- - Check the maximum allocable memory size per opencl device.
- - Add debugging output if buffer allocation fails for scrypt and round up
- bufsize to a multiple of 256.
- - Nonce testing for btc got screwed up, leading to no accepted shares. Fix it.
- - Display size of scrypt buffer used in debug.
- - Allow intensities up to 20 if scrypt is compiled in.
- - Add name to scrypt kernel copyright.
- - Allow lookup gap and thread concurrency to be passed per device and store
- details in kernel binary filename.
- - Ignore negative intensities for scrypt.
- - Change the scale of intensity for scrypt kernel and fix a build warning.
- - Correct target value passed to scrypt kernel.
- - Use 256 output slots for kernels to allow 1 for each worksize.
- - Test the target in the actual scrypt kernel itself saving further
- calculations.
- - Reinstate GPU only opencl device detection.
- - Decrease lookup gap to 1. Does not seem to help in any way being 2.
- - Fix build.
- - Make pad0 and pad1 local variable in scrypt kernel.
- - Constify input variable in scrypt kernel.
- - Send correct values to scrypt kernel to get it finally working.
- - Create command queue before compiling program in opencl.
- - Fix external scrypt algo missing.
- - Limit scrypt to 1 vector.
- - Handle KL_SCRYPT in config write.
- - Get rid of stuff.
- - Don't enqueuewrite buffer at all for pad8 and pass work details around for
- scrypt in dev_blk.
- - Set the correct data for cldata and prepare for pad8 fixes.
- - Get rid of spaces in arrays in scrypt kernel.
- - Start with smaller amount of hashes in cpu mining to enable scrypt to return
- today sometime.
- - Free the scratchbuf memory allocated in scrypt and don't check if CPUs are
- sick since they can't be. Prepare for khash hash rates in display.
- - Add cpumining capability for scrypt.
- - Set scrypt settings and buffer size in ocl.c code to be future modifiable.
- - Cope with when we cannot set intensity low enough to meet dynamic interval by
- inducing a forced sleep.
- - Make dynamic and scrypt opencl calls blocking.
- - Fix nonce submission code for scrypt.
- - Make sure goffset is set for scrypt and drop padbuffer8 to something
- manageable for now.
- - Set up buffer8 for scrypt.
- - Build fix for opt scrypt.
- - Don't check postcalc nonce with sha256 in scrypt.
- - Don't test nonce with sha and various fixes for scrypt.
- - Make scrypt buffers and midstate compatible.
- - Use specific output array entries in scrypt kernel.
- - Provide initial support for the scrypt kernel to compile with and mine scrypt
- with the --scrypt option.
- - Enable completely compiling scrypt out.
- - Begin import of scrypt opencl kernel from reaper.
- BFGMiner Version 2.5.3 - July 29, 2012
- - Bugfix: Add zlib1.dll to Win32 release archive
- - Bugfix: SICK low-hashrate is now determined by being under 1/3 the runtime
- average hashrate
- - Bugfix: cpu_set_t is never #defined, so use CPU_ZERO which is a macro
- BFGMiner Version 2.5.2 - July 29, 2012
- - Limit total number of curls recruited per pool to the number of mining threads
- to prevent blasting the network when we only have one pool to talk to.
- - Bugfix: Skip writing configuration of range-limited int options with negative
- values
- - Bugfix: Correctly attempt to load ~/.bfgminer/bfgminer.conf or
- ~/.cgminer/cgminer.conf as defaults
- - Send X-Minimum-Wait header on longpolls, to explicitly inform pools we will
- handle a response with no delay
- - bitforce: Abandon (only) stale searches for work restarts
- - 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.
- - bitforce: Skip out of sending work if work restart requested
- - RPC: Writeup on poolpriority command usage
- - Bugfix: API: Report errors from poolpriority command
- - RPC: New "poolpriority" command to set the order of pool priorities
- - strtok_ts: Thread-safe strtok that work on POSIX or Windows
- - Bugfix: Supress "caught up" event when first switching to a pool
- - Announce and restart work immediately when current pool has caught up to the
- current block
- - Bugfix: Don't consider work stale due to other pools' longpolls, if
- --failover-only is active
- - Refactor stale_work function to only flag actual stale shares
- - stale_work: Don't factor getwork delay into expiry for shares (only for work
- itself)
- - Bugfix: Use pool number rather than numeric pointer to strict pool, in block
- found notice
- - Accept JSON Numbers in config file parameters
- - Improve readability of OPT_HASARG in parse_config
- - Allow JSON false as a valid value for strictly boolean options
- - Include scan-serial in example configuration file
- - fpgautils: add support for 57.6 kBd serial
- - miner.php add a socket RCV timeout for if cgminer is hung and the API thread
- is still running
- - BFL force all code to timeout to avoid hanging
- - Detach pthread from within the api thread in case it is terminated due to not
- being instantiated before pthread_cancel is called from main, leading to a
- segfault.
- - Initialise mdplatform.
- - Find the gpu platform with the most devices and use that if no platform option
- is passed.
- - Allow more platforms to be probed if first does not return GPUs.
- - Bugfix: It is not a hardware error if nonces returned from modminer don't
- meet the pool target
- - bitforce & icarus: Log detection failures at debug log level, so we don't
- confuse users who have different devices (which is why these drivers are
- failing detection!)
- - Show "WAIT" (LIFE_WAIT status) if a cgpu is idle waiting for work (pool
- slow/dead)
- - Instead of quitting on failing N retries, just discard the share
- - Bugfix: Don't discard stale shares after submission failure, if user or pool
- wants stales submitted
- - Bugfix: Record discard-during-retry shares in the sharelog
- - Bugfix: Only show Algorithm in RPC summary if CPU mining is actually active
- - OpenCL: Remove intensity from statline, since it overflowed
- - Move "Q" (requested getworks) to second status line as "GW" to balance out
- better
- - Bugfix: Use a mutex to control non-curses output
- - Simplify code to a single vprintf path for curses-less printing
- - Move opt_quiet check to my_log_curses, so it works for curses-less builds
- - Use log_generic for vapplog to cut down on code duplication
- - Add space to log output now that there is more screen real estate available.
- - Bugfix: Copy argv[0] given to dirname()
- - Find the gpu platform with the most devices and use that if no platform
- option is passed.
- - Allow more platforms to be probed if first does not return GPUs.
- - Detach pthread from within the api thread in case it is terminated due to not
- being instantiated before pthread_cancel is called from main, leading to a
- segfault.
- - Debug output per thread hashrate is out by a factor of 1000.
- - Don't check if CPUs are sick since they can't be.
- - Calculate midstate in separate function and remove likely/unlikely macros
- since they're dependent on pools, not code design.
- - Display in debug mode when we're making the midstate locally.
- - Bugfix: Document --no-adl and --gpu-platform
- - Bugfix: Remove redundant documentation of --auto-fan and --auto-gpu (they
- are in GPU-specific options)
- - CPU mining may not be included in binaries, but it's not deprecated for
- BFGMiner either
- - Bugfix: Restore case-insensitivity to input
- - Scroll the device list with up/down arrow keys, if it is overflowed
- - Use select statement to handle input
- - Bugfix: Actually check that the device fits in the individual summary window
- before trying to print it
- - Bugfix: Fix build without curses but with OpenCL
- - Bugfix: Don't show a Temperature key if it isn't known
- - BFGMiner-specific NEWS fix
- BFGMiner Version 2.5.1 - July 13, 2012
- - Replace CPU Algo in header with runtime
- - Bugfix: Calculate diff-1 utility to fix utility-hashrate on pools with
- diff!=1
- - Add utility hashrate to curses display
- - Show units in kh, Gh, Th, etc as needed to use at most 3 integer digits
- - Use FTD2XX.DLL on Windows to autodetect BitFORCE SHA256 devices
- - bitforce_get_result returns -1 on error now.
- - Check return value of read in BFgets
- - Bugfix: modminer: Count hashes done before work restart
- - Bugfix: modminer: Adapt "get nonce" error condition to new scanhash=>-1
- error API
- - Bugfix: Make our Windows nanosleep/sleep replacements standards-compliant
- (which fixes nmsleep) and include compat.h for bitforce (for sleep)
- - miner.php fix rig # when miners fail
- - Fix whitespace mangling.
- - bitforce: Use "full work" vs "nonce range" for kernel name
- - Abbrv. correction
- - Remove superfluous ave_wait
- - Put kname change for broken nonce-range back in
- - Add average wait time to api stats
- - Revert "Merge branch 'ave_time' of https://github.com/pshep/cgminer.git"
- - Add average return time to api stats
- - Missed one nonce-range disabling.
- - Remove bitforce_thread_init The delay thing does nothing useful... when long
- poll comes around, all threads restart at the same time anyway.
- - Change timeouts to time-vals for accuracy.
- - More BFL tweaks. Add delay between closing and reopening port. Remove buffer
- clear in re-init Add kernel type (mini-rig or single)
- - Revert "Change BFL driver thread initialising to a constant 100ms delay
- between devices instead of a random arrangement."
- - Only try to shut down work cleanly if we've successfully connected and started
- mining.
- - Fix spelling.
- - modminer: Firmware returns 0xffffff00 immediately if we set clockspeed too
- high
- - Bugfix: modminer: Actually count good shares
- - Bugfix: Adapt OpenCL scanhash errors to driver API change (errors are now -1,
- not 0)
- - Remove bitforce_thread_init The delay thing does nothing useful... when long
- poll comes around, all threads restart at the same time anyway.
- - fix API support for big endian machines
- - Bugfix: Use const struct device_api* for mt_disable
- - modminer: Show progress of bitstream upload
- - Bugfix: Don't declare devices SICK if they're just busy initializing
- - Bugfix: Calculate nsec in nmsleep correctly
- - miner.php allow rig names in number buttons
- - Change BFL driver thread initialising to a constant 100ms delay between
- devices instead of a random arrangement.
- - Spelling typo.
- - Time opencl work from start of queueing a kernel till it's flushed when
- calculating dynamic intensity.
- - Modify te scanhash API to use an int64_t and return -1 on error, allowing zero
- to be a valid return value.
- - Check for work restart after the hashmeter is invoked for we lose the hashes
- otherwise contributed in the count.
- - Remove disabled: label from mining thread function, using a separate
- mt_disable function.
- - Style changes.
- - Cope with signals interrupting the nanosleep of nmsleep.
- - Use standard cfsetispeed/cfsetospeed to set baud rate on *nix
- - miner.php split() flagged deprecated in PHP 5.3.0
- - Bugfix: Use nmsleep instead of restart_wait, so we always wait the full time
- - Make long timeout 10seconds on bitforce for when usleep or nanosleep just
- can't be accurate...
- BFGMiner Version 2.5.0 - July 7, 2012
- - Fix BitFORCE driver to not silenty discard valid shares (bug introduced by
- CGMiner merges)
- - Fix --benchmark not working since the dynamic addition of pools and pool
- stats.
- - Make disabling BFL nonce range support a warning since it has to be explicitly
- enabled on the command line now.
- - miner.php allow renaming table headers
- - Make bitforce nonce range support a command line option --bfl-range since
- enabling it decrease hashrate by 1%.
- - Add sanity checking to make sure we don't make sleep_ms less than 0 in
- bitforce.
- - The fastest minirig devices need a significantly smaller starting sleep time.
- - Use a much shorter initial sleep time to account for faster devices and nonce
- range working, and increase it if nonce range fails to work.
- - Use nmsleep instead of usleep in bitforce.
- - Provide a ms based sleep function that uses nanosleep to avoid the inaccuracy
- of usleep on SMP systems.
- - delay_time_ms is always set so need not be initialised in bitforce.
- - Increase bitforce timeout to 10 seconds.
- - Add more hysteresis and poll ~5 times to allow for timer delays in bitforce
- devices.
- - miner.php allow alternating line colours (off by default)
- - Display the actual duration of wait when it is greater than the cutoff.
- - Set nonce to maximum once we determine nonce range support is broken.
- - Initial wait time is always known so no need to zero it beforehand in
- bitforce.
- - No point counting wait time until the work is actually sent to bitforce
- devices.
- - Use string comparison functions instead of explicit comparisons.
- - Account for wait_ms time when nonce_range is in use on BFL.
- - Split nonces up into 1/5 chunks when nonce range is supported.
- - limit clear buffer iterations.
- - Ad fd check to clear buffer.
- - miner.php remove incorrect 'DATE' error message
- - miner.php allow summary header in custom pages
- - Disable nonce range support in BFL when broken support is detected.
- - Restart_wait is only called with a ms value so incorporate that into the
- function.
- - Only try to adjust dev width when curses is built in.
- - miner.php define custom sum fields as a simple array
- - Fix off-by-one error in nonce increment in bfl.
- - Use BE when setting nonce in bitforce nonce range work.
- - Enable nonce range in the normal init sequence for bfl.
- - Queue extra work at 2/3 differently depending on whether we're using nonce
- range or not.
- - 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.
- - Attempt to detect nonce range support in BFL by sending work requring its
- support.
- - Limit retrying on busy for up to BITFORCE_TIMEOUT_MS
- - Attempt to initialise while bitforce device returns BUSY.
- - Extend length of string that can be passed to BFL devices.
- - Fix signedness warning.
- - Adjust device width column to be consistent.
- - Use cgpu-> not gpus[] in watchdog thread.
- - Add api stats (sleep time)
- - Timing tweaks Added long and short timeouts, short for detecting throttling,
- long to give up totally. Reset sleep time when device re-initialised Still check
- results after timeout Back up a larger time if result on first poll.
- - Add API Notify counter 'Comms Error'
- - Style police on api.c
- - Do all logging outside of the bitforce mutex locking to avoid deadlocks.
- - Remove applog call from bfwrite to prevent grabbing nested mutexes.
- - Bitforce style changes.
- - Minor style changes.
- - Remove needless roundl define.
- - Made JSON error message verbose.
- - Fine-tune timing adjustment. Also remove old work_restart timing.
- - Check for gpu return times of >= 0, not just 0, to fix intensity dropping to
- -10.
- - Restart is zeroed in the mining thread so no need to do it inside the bitforce
- code.
- - More improvements to comms. BFL return nothing when throttling, so should not
- be considered an error. Instead repeat with a longer delay.
- - Polling every 10ms there's not much point checking the pthread_cond_timedwait
- as it just adds overhead. Simply check the value of work_restart in the bfl main
- polling loop.
- - 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.
- - Add busy time to wait time.
- - api.c put version up to 1.14
- - Add tiny delay after writing to BFL Change BFL errors to something more human
- readable Send work busy re-tries after 10ms delay
- - Fix race condition in thread creation that could under some conditions crash
- BFGMiner at startup
- BFGMiner Version 2.4.4 - July 1, 2012
- - Fix builds on non gnu platforms.
- - api.c ensure old mode is always available when not using --api-groups + quit()
- on param errors
- - Implement rudimentary X-Mining-Hashrate support.
- - Detect large swings in temperature when below the target temperature range and
- change fan by amounts dependant on the value of tdiff.
- - Adjust the fanspeed by the magnitude of the temperature difference when in the
- optimal range.
- - Revert "Restarting cgminer from within after ADL has been corrupted only leads
- to a crash. Display a warning only and disable fanspeed monitoring."
- - api.c fix json already closed
- - implement and document API option --api-groups
- - Put upper bounds to under 2 hours that work can be rolled into the future for
- bitcoind will deem it invalid beyond that.
- - define API option --api-groups
- - api.c allow unwell devices to be enabled so they can be cured
- - miner.php - fix/enable autorefresh for custom pages
- - miner.php allow custom summary pages - new 'Mobile' summary
- - Work around pools that advertise very low expire= time inappropriately as this
- leads to many false positives for stale shares detected.
- - Only show ztex board count if any exist.
- - There is no need for work to be a union in struct workio_cmd
- - fpgautils.c include a debug message for all unknown open errors
- - Don't keep rolling work right up to the expire= cut off. Use 2/3 of the time
- between the scantime and the expiry as cutoff for reusing work.
- - Log a specific error when serial opens fail due to lack of user permissions
- - Increase GPU timing resolution to microsecond and add sanity check to ensure
- times are positive.
- - Opencl code may start executing before the clfinish order is given to it so
- get the start timing used for dynamic intensity from before the kernel is
- queued.
- - fpgautils.c - set BAUD rate according to termio spec
- - fpgautils.c - linux ordering back to the correct way
- - miner.php remove unneeded '.'s
- - miner.php add auto refresh options
- - miner.php add 'restart' next to 'quit'
- - miner.php make fontname/size configurable with myminer.php
- - Make the pools array a dynamically allocated array to allow unlimited pools to
- be added.
- - Make the devices array a dynamically allocated array of pointers to allow
- unlimited devices.
- - Dynamic intensity for GPUs should be calculated on a per device basis. Clean
- up the code to only calculate it if required as well.
- - Bugfix: Provide alternative to JSON_ENCODE_ANY for Jansson 1.x
- - Use a queueing bool set under control_lock to prevent multiple calls to
- queue_request racing.
- - Use the work clone flag to determine if we should subtract it from the total
- queued variable and provide a subtract queued function to prevent looping over
- locked code.
- - Don't decrement staged extras count from longpoll work.
- - Count longpoll's contribution to the queue.
- - Increase queued count before pushing message.
- - Test we have enough work queued for pools with and without rolltime
- capability.
- - As work is sorted by age, we can discard the oldest work at regular intervals
- to keep only 1 of the newest work items per mining thread.
- - Roll work again after duplicating it to prevent duplicates on return to the
- clone function.
- - Abstract out work cloning and clone $mining_threads copies whenever a rollable
- work item is found and return a clone instead.
- - api.c display Pool Av in json
- - Take into account average getwork delay as a marker of pool communications
- when considering work stale.
- - Work out a rolling average getwork delay stored in pool_stats.
- - Getwork delay in stats should include retries for each getwork call.
- - Walk through the thread list instead of searching for them when disabling
- threads for dynamic mode.
- - 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.
- - When disabling fanspeed monitoring on adl failure, remove any twin GPU
- association. This could have been leading to hangs on machines with dual GPU
- cards when ADL failed.
- - modminer: Don't delay 2nd+ FPGAs during work restart
- - Disable OpenCL code when not available.
- - Fix openwrt crashing on regeneratehash() by making check_solve a noop.
- - FPGA - allow device detect override without an open failure
- - Fix sign warning.
- - Bugfix: icarus: properly store/restore info and work end times across longpoll
- restarts
- - Enable modminer for release builds
- BFGMiner Version 2.4.3 - June 14, 2012
- - Change device API "name" to reflect driver name abbreviation instead of device type name
- - miner.php allow a separate user settings file
- - modminer: Implement extended device stats to expose each Board to the RPC API
- - Bugfix: Use new cgpu->thr for longpoll waking
- - bitforce: Remove 4.5s delay before polling starts, since MiniRig finishes sooner
- - FPGA - allow device detect override without an open failure
- - Bugfix: Missing printf value in merge from cgminer
- - Ensure C compiler is in C99 mode
- - Add CPU core count detection for BSD/Mac
- - Set CPU mining idle priority on Windows
- - can_roll and should_roll should have no bearing on the cycle period within the
- miner_thread so remove it.
- - Check for strategy being changed to load balance when enabling LPs.
- - Check that all threads on the device that called get_work are waiting on
- getwork before considering the pool lagging.
- - Iterate over each thread belonging to each device in the hashmeter instead of
- searching for them now that they're a list.
- - When using rotate pool strategy, ensure we only select from alive enabled
- pools.
- - Start longpoll from every pool when load balance strategy is in use.
- - 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.
- - Consider the fan optimal if fanspeed is dropping but within the optimal speed
- window.
- - Fix typo in some API messages (succeess/success)
- - api.c MMQ stat bugs
- - Bugfix: Fix warnings when built without libudev support
- - Bugfix: slay a variety of warnings
- - Bugfix: modminer: Fix unsigned/signed comparison and similar warnings
- - API add ModMinerQuad support
- - Bugfix: Honour forceauto parameter in serial_detect functions
- - modminer: Temperature sensor improvements
- - modminer: Make log messages more consistent in format
- - Only adjust GPU speed up if the fanspeed is within the normal fanrange and
- hasn't been turned to maximum speed under overheat conditions.
- - ModMiner use valid .name
- - New driver: BTCFPGA ModMiner
- - Abstract generally useful FPGA code into fpgautils.c
- - API add stats for pool getworks
- - miner.php option to hide specific fields from the display
- - miner.php add version numbers to the summary page
- - Update debian configs to v2.4.2
- - Add API and FPGA READMEs into Makefile to be included in source distribution.
- - Icarus - fix unit64_t printf warnings
- BFGMiner Version 2.4.2 - June 2, 2012
- - Use epoll to immediately interrupt Icarus with new work on longpolls (Linux)
- - API.class compiled with Java SE 6.0_03 - works with Win7x64
- - miner.php highlight devs too slow finding shares (possibly failing)
- - API update version to V1.11 and document changes
- - API save default config file if none specified
- - api.c save success incorrectly returns error
- - api.c replace BUFSIZ (linux/windows have different values)
- - Move RPC API content out of README to API-README
- - Open a longpoll connection if a pool is in the REJECTING state as it's the
- only way to re-enable it automatically.
- - Use only one longpoll as much as possible by using a pthread conditional
- broadcast that each longpoll thread waits on and checks if it's the current pool
- before
- - If shares are known stale, don't use them to decide to disable a pool for
- sequential rejects.
- - Restarting cgminer from within after ADL has been corrupted only leads to a
- crash. Display a warning only and disable fanspeed monitoring.
- - Icarus: fix abort calculation/allow user specified abort
- - Icarus: make --icarus-timing hidden and document it in FPGA-README
- - Icarus: high accuracy timing and other bitstream speed support
- - add-MIPSEB-to-icarus-for-BIG_ENDIAN
- - work_decode only needs swab32 on midstate under BIG ENDIAN
- - add compile command to api-example.c
- - save config bugfix: writing an extra ',' when no gpus
- - Add dpkg-source commits
- BFGMiner Version 2.4.1 - May 6, 2012
- - Icarus: Calibrate hashrate yet even more accurately
- - In the unlikely event of finding a block, display the block solved count with
- the pool it came from for auditing.
- - Display the device summary on exit even if a device has been disabled.
- - Use correct pool enabled enums in api.c.
- - Import Debian packaging configs
- - Ensure we test for a pool recovering from idle so long as it's not set to
- disabled.
- - Fix pool number display.
- - Give BFGMiner -T message only if curses is in use.
- - Reinit_adl is no longer used.
- - API 'stats' allow devices to add their own stats also for testing/debug
- - API add getwork stats to BFGMiner - accesable from API 'stats'
- - Don't initialise variables to zero when in global scope since they're already
- initialised.
- - Get rid of unitialised variable warning when it's false.
- - Move a pool to POOL_REJECTING to be disabled only after 3 minutes of
- continuous rejected shares.
- - Some tweaks to reporting and logging.
- - API support new pool status
- - 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.
- - Removing extra debug
- - Fix the benchmark feature by bypassing the new networking code.
- - Reset sequential reject counter after a pool is disabled for when it is
- re-enabled.
- - ztex updateFreq was always reporting on fpga 0
- - Trying harder to get 1.15y working
- - Specifying threads on multi fpga boards extra cgpu
- - Missing the add cgpu per extra fpga on 1.15y boards
- - API add last share time to each pool
- - Don't try to reap curls if benchmarking is enabled.
- BFGMiner Version 2.4.0 - May 3, 2012
- - Only show longpoll warning once when it has failed.
- - Convert hashes to an unsigned long long as well.
- - Detect pools that have issues represented by endless rejected shares and
- disable them, with a parameter to optionally disable this feature.
- - Bugfix: Use a 64-bit type for hashes_done (miner_thread) since it can overflow
- 32-bit on some FPGAs
- - Implement an older header fix for a label existing before the pthread_cleanup
- macro.
- - 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.
- - Generalise add_pool() functions since they're repeated in add_pool_details.
- - Bugfix: Return failure, rather than quit, if BFwrite fails
- - Disable failing devices such that the user can attempt to re-enable them
- - Bugfix: thread_shutdown shouldn't try to free the device, since it's needed
- afterward
- - API bool's and 1TBS fixes
- - Icarus - minimise code delays and name timer variables
- - api.c V1.9 add 'restart' + redesign 'quit' so thread exits cleanly
- - api.c bug - remove extra ']'s in notify command
- - Increase pool watch interval to 30 seconds.
- - 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.
- - Use the ringbuffer of curls from the same pool for submit as well as getwork
- threads. Since the curl handles were already connected to the same pool and are
- immediately available, share submission will not be delayed by getworks.
- - Implement a scaleable networking framework designed to cope with any sized
- network requirements, yet minimise the number of connections being reopened. 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.
- - There is no need for the submit and getwork curls to be tied to the pool
- struct.
- - Do not recruit extra connection threads if there have been connection errors
- to the pool in question.
- - We should not retry submitting shares indefinitely or we may end up with a
- huge backlog during network outages, so discard stale shares if we failed to
- submit them and they've become stale in the interim.
- BFGMiner Version 2.3.6 - April 29, 2012
- - Shorten stale share messages slightly.
- - Protect the freeing of current_hash under mutex_lock to prevent racing on it
- when set_curblock is hit concurrently.
- - Change default behaviour to submitting stale, removing the --submit-stale
- option and adding a --no-submit-stale option.
- - Make sure to start the getwork and submit threads when a pool is added on the
- fly. This fixes a crash when a pool is added to running BFGMiner and then
- switched to.
- - Faster hardware can easily outstrip the speed we can get work and submit
- shares when using only one connection per pool.
- - Test the queued list to see if any get/submits are already queued and if they
- are, start recruiting extra connections by generating new threads.
- - This allows us to reuse network connections at low loads but recuit new open
- connections as they're needed, so that BFGMiner can scale to hardware of any
- size.
- BFGMiner Version 2.3.5 - April 28, 2012
- - Restarting BFGMiner leads to a socket that can't be bound for 60 seconds, so
- increase the interval that API binding waits to 30 seconds to minimise the
- number of times it will retry, spamming the logs.
- - Give a longpoll message for any longpoll that detects a block change, primary
- or backup, and also display which pool it was.
- - Decrease utility display to one decimal place.
- - Small cosmetic output alignment.
- - Add pool number to stale share message.
- - Add space to log output now that there is more screen real estate available.
- - Indentation clean up.
- - Remove thread id display from rejected shares as well.
- - Merge pull request #185 from Diapolo/diakgcn
- - add goffset support for diakgcn with -v 1 and update kernel version
- - Set have_longpoll to true when there is at least one pool with longpoll.
- - Don't display the thread ID since it adds no useful information over the
- device number.
- - Don't display the first 8 bytes of a share since they will always be zero at
- >= 1 difficulty.
- - work->longpoll is reset across test_work_current so we need to recheck what
- pool it belongs to.
- - Use longpolls from backup pools with failover-only enabled just to check for
- block changes, but don't use them as work.
- - Start longpoll only after we have tried to extract the longpoll URL.
- - Check for submitold flag on resubmit of shares, and give different message for
- stale shares on retry.
- - Check for submitold before submitstale.
- - Don't force fresh curl connections on anything but longpoll threads.
- - 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.
- - Remove the invalid entries from the example configuration file.
- - Add support for latest ATI SDK on windows.
- - Export missing function from libztex.
- - miner.php change socktimeoutsec = 10 (it only waits once)
- - Bugfix: Make initial_args a const char** to satisfy exec argument type warning
- (on Windows only)
- - miner.php add a timeout so you don't sit and wait ... forever
- - 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.
- - miner.php only show the current date header once
- - miner.php also add current time like single rig page
- - miner.php display rig 'when' table at top of the multi-rig summary page
- - README - add some Ztex details
- - api.c include zTex in the FPGA support list
- - api.c ensure 'devs' shows PGA's when only PGA code is compiled
- - miner.c sharelog code consistency and compile warning fix
- - README correct API version number
- - README spelling error
- - api.c combine all pairs of sprintfs()
- - api.c uncomment and use BLANK (and COMMA)
- - Code style cleanup
- - Annotating frequency changes with the changed from value
- - README clarification of 'notify' command
- - README update for API RPC 'devdetails'
- - api.c 'devdetails' list static details of devices
- - Using less heap space as my TP-Link seems to not handle this much
- BFGMiner Version 2.3.4 - April 26, 2012
- - New maintainership of code with modular FPGA/GPU focus, under BFGMiner name
- - Complete working support for cross-compiling Windows builds on Linux.
- - Fix usage of low --scan-time settings so it doesn't busy-loop
- - JSON API: Add new 'devdetail' command to get fixed device information
- - JSON API: Implement driver abstraction for extra device status
- - Icarus: Use epoll to wait for serial port input properly, when available
- - Icarus: Workaround buggy USB-UART that causes Icarus to stop mining rarely
- - Icarus: Estimate mining hashrate correctly, calibrated from real-world data
- - Icarus: Parallelize work setup with Icarus hash search improving performance
- - Icarus: More reliable detection and runtime
- - OpenCL: Move GPU-specific data fetching from JSON API to OpenCL driver
- - OpenCL: Dynamically load OpenCL library, to be more vendor-independent and
- allow use without actually having OpenCL (i.e. FPGA-only rigs).
- CGMiner Version 2.3.4 - April 25, 2012
- - Extensively document the cause of GPU device issues and the use of --gpu-map.
- - Support for share logging
- - Detect poorly performing combination of SDK and phatk kernel and add verbose
- warning at startup.
- - Icarus update to new add_cgpu()
- - Icarus driver working with Linux and Windows
- - api.c fix unused variable compile warning
- - Display all OpenCL devices when -n is called as well to allow debugging of
- differential mapping of OpenCL to ADL.
- - Add a --gpu-map option which will allow arbitrarily mapping ADL devices to
- OpenCL devices for instances where association by enumeration alone fails.
- - Increase upper limit on number of extra items to queue as some FPGA code can't
- yet reliably keep many devices busy.
- - Display configuration file information when -c option is passed and only when
- file exists on loading default config file.
- - Display configuration file loaded, if any, and debug output if configuration
- file parsing failed.
- - Add missing ztex header to Makefile for distribution.
- - Document long-form COM port device names on Windows, required to specify
- serial ports above 9
- - Include ztex bitstreams firmware in distribution and install if configured in.
- - Style police on driver-ztex.c
- - work_restart should only be changed by cgminer.c now
- - Shut down the api cleanly when the api thread is cancelled. This should allow
- the api socket to be closed successfully to next be reopened with app_restart.
- - Make a union for cgpu device handles, and rename "device" to "device_ztex"
- since it's Ztex-specific
- - Initialise name variable.
- - Remove unnecessary check for variable that always has memory allocated.
- - Bugfix: Missing "break" no-op in default case
- - Make the status window and log window as large as can fit on startup,
- rechecking to see if it can be enlarged after the fact. This allows any number
- of devices to be displayed provided the window is made long enough without
- corrupting the output.
- - Style police on libztex.c.
- - API add removepool like the screen interface
- - api.c escape required characters in return strings + pools returns the
- username
- - Set lp_path to NULL after free for consistency.
- - Removing dmalloc import left behind by mistake
- - Fixing leak in resp_hdr_cb
- - miner.php warning highlight GPU stats if they are zero (e.g. ADL not enabled)
- - miner.php highlight any device that isn't 'Enabled'
- - miner.php highlight any Status that isn't 'Alive'
- - miner.php optionally support multiple rigs
- - Initial Ztex support 1.15x board.
- CGMiner Version 2.3.3 - April 15, 2012
- - Don't even display that cpumining is disabled on ./configure to discourage
- people from enabling it.
- - 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.
- - Cache the initial arguments passed to cgminer and implement an attempted
- restart option from the settings menu.
- - Disable per-device status lines when there are more than 8 devices since
- screen output will be corrupted, enumerating them to the log output instead at
- startup.
- - Reuse Vals[] array more than W[] till they're re-initialised on the second
- sha256 cycle in poclbm kernel.
- - Minor variable alignment in poclbm kernel.
- - Make sure to disable devices with any status not being DEV_ENABLED to ensure
- that thermal cutoff code works as it was setting the status to DEV_RECOVER.
- - Re-initialising ADL simply made the driver fail since it is corruption over
- time within the windows driver that's responsible. Revert "Attempt to
- re-initialise ADL should a device that previously reported fanspeed stops
- reporting it."
- - Microoptimise poclbm kernel by ordering Val variables according to usage
- frequency.
- CGMiner Version 2.3.2 - March 31, 2012
- - Damping small changes in hashrate so dramatically has the tendency to always
- make the hashrate underread so go back to gentle damping instead.
- - Revert the crossover of variables from Vals to W in poclbm kernel now that
- Vals are the first declared variables so they're used more frequently.
- - Vals variables appearing first in the array in poclbm is faster.
- - Change the preferred vector width to 1 for Tahiti only, not all poclbm
- kernels.
- - Use a time constant 0.63 for when large changes in hashrate are detected to
- damp change in case the large change is an aliasing artefact instead of a real
- chang
- - Only increment stale counter if the detected stales are discarded.
- - Attempt to re-initialise ADL should a device that previously reported fanspeed
- stops reporting it.
- - Move the ADL setup and clearing to separate functions and provide a reinit_adl
- function to be used when adl fails while running.
- - Use slightly more damping on the decay time function in the never-ending quest
- to smooth off the hashmeter.
- - Set the starting fanspeed to a safe and fairly neutral 50% when autofan is
- enabled.
- - Provide locking around updates of cgpu hashrates as well to prevent multiple
- threads accessing data fields on the same device.
- - Display the beginning of the new block in verbose mode in the logs.
- - Reinstate old diablo kernel variable ordering from 120222, adding only goffset
- and vector size hint. The massive variable ordering change only helped one SDK
- on
- - Change the version number on the correct kernels.
- - api.c devicecode/osinfo incorrectly swapped for json
- - Add extensive instructions on how to make a native windows build.
- - Update version numbers of poclbm and diablo kernels as their APIs have also
- changed.
- - Use global offset parameter to diablo and poclbm kernel ONLY for 1 vector
- kernels.
- - Use poclbm preferentially on Tahiti now regardless of SDK.
- - Remove unused constant passed to poclbm.
- - Clean up use of macros in poclbm and use bitselect everywhere possible.
- - Add vector type hint to diablo kernel.
- - Add worksize and vector attribute hints to the poclbm kernel.
- - Spaces for non-aligned variables in poclbm.
- - More tidying of poclbm.
- - Swap Vals and W variables where they can overlap in poclbm.
- - More tidying of poclbm.
- - Tidy up first half of poclbm.
- - Clean up use of any() by diablo and poclbm kernels.
- - Minor variable symmetry changes in poclbm.
- - Put additions on separate lines for consistency in poclbm.
- - Consolidate last use of W11 into Vals4 in poclbm.
- - Change email due to SPAM
- - api.c miner.php add a '*' to the front of all notify counters - simplifies
- future support of new counters
- - miner.php add display 'notify' command
- - Small change to help arch's without processor affinity
- - Fix bitforce compile error
- - api.c notify should report disabled devices also - of course
- - API returns the simple device history with the 'notify' command
- - code changes for supporting a simple device history
- - api.c Report an OS string in config to help with device issues
- - api.c fix Log Interval - integer in JSON
- - api.c config 'Device Code' to show list of compiled devices + README
- - api.c increase buffer size close to current code allowable limit
- - removed 8-component vector support from kernel, as this is not supported in
- CGMINER anyway
- - forgot to update kernel modification date, fixed ;)
- - reordered an addition in the kernel, which results in less instructions used
- in the GPU ISA code for GCN
- - miner.php: option for readonly or check privileged access
- - Ignore reduntant-with-build options --disable-gpu, --no-adl, and --no-restart
- - miner.php: ereg_replace is DEPRECATED so use preg_replace instead
- - Make curses TUI support optional at compile-time.
- - Bugfix: AC_ARG_WITH provides withval instead of enableval
- - miner.php split devs output for different devices
- - api.c: correct error messages
- - icarus.c modify (regular) timeout warning to only be debug
- - icarus.c set the windows TODO timeout
- - Allow specifying a specific driver for --scan-serial
- - optimized nonce-check and output code for -v 2 and -v 4
- - Bugfix: Check for libudev header (not just library) in configure, and document
- optional dependency
- - Add API support for Icarus and Bitforce
- - Next API version is 1.4 (1.3 is current)
- - README/api.c add "When" the request was processed to STATUS
- - Bugfix: ZLX to read BitFORCE temp, not ZKX -.-
- - Use libudev to autodetect BitFORCE GPUs, if available
- - Use the return value of fan_autotune to set fan_optimal instead of passing it
- as a pointer.
- - Pass the lasttemp from the device we're using to adjust fanspeed in twin
- devices.
- - fix the name to 3 chars, fix the multi-icarus support
- - Bugfix: "-S auto" is the default if no -S is specified, and there is no such
- delay in using it
- - README add information missing from --scan-serial
- - Update README RPC API Version comment
- - Bugfix: Allow enabling CPU even without OpenCL support
- - Change failed-to-mine number of requested shares messge to avoid segfault on
- recursive calling of quit().
- - Get rid of extra char which is just truncated in poclbm kernel.
- - only small code formating changes
- - removed vec_step() as this could lead to errors on older SDKs
- - unified code for generating nonce in kernel and moved addition of base to the
- end -> faster
- CGMiner Version 2.3.1 - February 24, 2012
- - Revert input and output code on diakgcn and phatk kernels to old style which
- worked better for older hardware and SDKs.
- - Add a vector*worksize parameter passed to those kernels to avoid one op.
- - Increase the speed of hashrate adaptation.
- - Only send out extra longpoll requests if we want longpolls.
- - API implement addpool command
- - API return the untouched Total MH also (API now version 1.3)
- - Add enable/disablepool to miner.php example and reduce font size 1pt
- CGMiner Version 2.3.0 - February 23, 2012
- - Consider extra longpoll work items as staged_extra so as to make sure we queue
- more work if queueing regular work items as longpolls.
- - Use diablo kernel on all future SDKs for Tahiti and set preferred vector width
- to 1 on poclbm kernel only.
- - Explicitly type the constants in diakgcn kernel as uint, to be in line with
- poclbm kernel.
- - Reset all hash counters at the same time as resetting start times to get
- accurate hashrates on exiting which is mandatory for benchmarking.
- - Report thread out before it starts to avoid being flagged as sick when waiting
- for the first work item.
- - Don't disable and re-enable devices as they may recover and in the meantime
- have their status set to OFF.
- - API new commands enablepool and disablepool (version already incremented)
- - Tolerate new-format temperature readings for bitforce
- - Modify cgminer.c pool control to allow API to call it
- - Bugfix: Fix BitFORCE driver memory leak in debug logging
- - Extra byte was being unused in poclbm leading to failure on some platforms.
- - Explicitly type the constants in poclbm kernel as uint.
- - Don't save 'include' when saving the configuration
- - Allow configuration file to include another recursively
- - Use the SDK and hardware information to choose good performing default
- kernels.
- - Move phatk kernel to offset vector based nonce bases as well.
- - Add a --benchmark feature which works on a fake item indefinitely to compare
- device performance without any server or networking influence.
- - Allow writing of multiple worksizes to the configuration file.
- - Allow writing of multiple vector sizes to the configuration file.
- - Allow writing of multiple kernels to the configuration file.
- - Allow multiple different kernels to be chosen per device.
- - Allow the worksize to be set per-device.
- - Allow different vectors to be set per device.
- - If we're well below the target temperature, increase gpu engine speed back to
- maximum in case we have gotten lost between profiles during an idle period.
- - We should be setting the value of fan_optimal, not its address.
- - As all kernels will be new versions it's an opportunity to change the .bin
- format and make it simpler. Specifying bitalign is redundant and long can be l.
- - Use any() in kernel output code.
- - Put the nonce for each vector offset in advance, avoiding one extra addition
- in the kernel.
- - Reset times after all mining threads are started to make estimating hashrates
- easier at startup.
- - Bugfix: allow no-exec (NX) stack
- - Fix minor warning.
- - fix the bitforce.c code style follow 1TBS
- - fix icarus.c compile warning
- - small changes to speedup no vec for AMD 898.1 OCL runtime
- - Update licensing to GPL V3.
- - Reset the longpoll flag after it's been used once to prevent it restarting
- work again.
- - Begin import of DiabloMiner kernel.
- - Modify API debug messages to say API instead of DBG
- - When API shuts down cgminer don't kill itself
- - Don't make rolled work from the longpoll be seen as other longpoll work items.
- - API add 'privileged' command so can verify access level
- - 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.
- - API restrict access to all non display commands by default
- - Update API version to 1.2 for new 'Log Interval'
- - API add --log Interval to 'config' reply
- - --api-allow special case 0/0 means all
- CGMiner Version 2.2.7 - February 20, 2012
- - Send out extra longpolls when we have switched pools and the longpoll thread
- is still bound to the old one. This is particularly useful with p2pool where
- longpolls do not correlate with main bitcoin block change and would have led to
- high reject rates on failover.
- - 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.
- - 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.
- - Store the longpoll url in the pool struct and update it from the pool_active
- test in case it changes. This is to allow further changes to longpoll management
- on switching pools.
- - Re-check for a longpoll supporting pool every 30 seconds if none is found
- initially.
- - Report threads as busy waiting on getwork on startup to avoid them being
- flagged sick on startup during slow networking.
- - 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
- - Tahiti prefers worksize 64 with poclbm.
- - No need to expressly retain the opencl program now that the zero binary issue
- is fixed. This actually fixes cgminer to work with the latest SDK included with
- the ATI catalyst driver 12.2.
- - Show error code on any opencl failure status.
- - Add detection for version 898.1 SDK as well but only give SDK 2.6 warning once
- on startup instead of with each device initialisation.
- - Always use a fresh connection for longpoll as prolonged persistent connections
- can fail for many reasons.
- - 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.
- - Use gpu-memdiff on startup if an engine clockspeed is set and a memdiff value
- is set.
- - Revert "Adjust engine speed up according to performance level engine setting,
- not the current engine speed." - ineffectual.
- - 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.
- - Updates to diakgcn kernel/
- - Consolidate all screen updates to the watchdog thread and touch both windows
- before refresh.
- - Curses will be disabled in clean_up so don't do it early in kill_work, and
- disable_adl so that GPU settings may be restored to normal in case shutting down
- curses leads to instability on windows.
- - Stop the mining threads before trying to kill them.
- - Plain refresh() does not give reliably screen updates so get rid of all uses
- of it.
- - First release with working diakgcn kernel.
- CGMiner Version 2.2.6 - February 16, 2012
- - Provide warning on each startup about sdk 2.6
- - Fix unused warnings on win32.
- - bitforce: Simplify BFopen WIN32 ifdef/else
- - Fix initialization warning with jansson 1.3
- - bitforce: Cleanup extraneous TODO that isn't needed
- - Move tcsetattr (and new tcflush) into *nix BFopen to simplify things a bit
- - Add message explaining 2nd thread disabling for dynamic mode and how to tune
- it.
- - Move logwindow down once number of devices is known.
- - Automatically choose phatk kernel for bitalign non-gcn ATI cards, and then
- only select poclbm if SDK2.6 is detected.
- - Allow the refresh interval to be adjusted in dynamic intensity with a
- --gpu-dyninterval parameter.
- - Make curses display visible right from the beginning and fix the window sizes
- so the initial messages don't get lost once the status window is drawn.
- - 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
- repeati
- - bitforce: Set a 30 second timeout for serial port on Windows, since the
- default is undefined
- - Use PreVal4addT1 instead of PreVal4 in poclbm kernel.
- - Import PreVal4 and PreVal0 into poclbm kernel.
- - Import more prepared constants into poclbm kernel.
- - Keep variables in one array but use Vals[] name for consistency with other
- kernel designs.
- - Replace constants that are mandatorily added in poclbm kernel with one value.
- - Remove addition of final constant before testing for result in poclbm kernel.
- - Hand optimise variable addition order.
- - Hand optimise first variable declaration order in poclbm kernel.
- - Radical reordering machine based first pass to change variables as late as
- possible, bringing their usage close together.
- - fix strcpy NULL pointer if env HOME unset.
- - bitforce: Disable automatic scanning when at least one device is specified
- manually
- - Unroll all poclbm additions to enable further optimisations.
- CGMiner Version 2.2.5 - February 13, 2012
- - Make output buffer write only as per Diapolo's suggestion.
- - Constify nonce in poclbm.
- - Use local and group id on poclbm kernel as well.
- - Microoptimise phatk kernel on return code.
- - Adjust engine speed up according to performance level engine setting, not the
- current engine speed.
- - Try to load a binary if we've defaulted to the poclbm kernel on SDK2.6
- - Use the poclbm kernel on SDK2.6 with bitalign devices only if there is no
- binary available.
- - Further generic microoptimisations to poclbm kernel.
- - The longstanding generation of a zero sized binary appears to be due to the
- OpenCL library putting the binary in a RANDOM SLOT amongst 4 possible binary
- locations. Iterate over each of them after building from source till the real
- binary is found and use that.
- - Fix harmless warnings with -Wsign-compare to allow cgminer to build with -W.
- - Fix missing field initialisers warnings.
- - Put win32 equivalents of nanosleep and sleep into compat.h fixing sleep() for
- adl.c.
- - Restore compatibility with Jansson 1.3 and 2.0 (api.c required 2.1)
- - Modularized logging, support for priority based logging
- - Move CPU chipset specific optimization into device-cpu
- CGMiner Version 2.2.4 - February 11, 2012
- - Fix double definition of A0 B0 to zeroA zeroB.
- - Retain cl program after successfully loading a binary image. May decrease
- failures to build kernels at startup.
- - Variable unused after this so remove setting it.
- - BFI INT patching is not necessarily true on binary loading of files and not
- true on ATI SDK2.6+. Report bitalign instead.
- - Various string fixes for reject reason.
- - Generalize --temp-cutoff and implement support for reading temperature from
- BitFORCE FPGAs
- - Change message from recovered to alive since it is used on startup as well as
- when a pool has recovered.
- - Start mining as soon as any pool is found active and rely on the watchpool
- thread to bring up other pools.
- - Delayed responses from testing pools that are down can hold up the watchdog
- thread from getting to its device testing code, leading to false detection of
- the GPU not checking in, and can substantially delay auto gpu/auto fan
- management leading to overheating. Move pool watching to its own thread.
- - Bugfix: BitFORCE index needs to be static to count correctly
- - Space out retrieval of extra work according to the number of mining threads.
- - Make shutdown more robust. Enable the input thread only after the other
- threads exist. Don't kill off the workio thread and use it to exit main() only
- if there is an unexpected problem. Use kill_work() for all anticipated shutdowns
- where possible. Remove unused thread entry.
- - Change poclbm version number.
- - One array is faster than 2 separate arrays so change to that in poclbm kernel.
- - Microoptimisations to poclbm kernel which increase throughput slightly.
- - Import diablominer kernel. Currently disabled as not working.
- - Import diapolo kernel. Currently disabled as not working.
- - 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.
- - Set cl_amd_media_ops with the BITALIGN flag and allow non-bitselect devices to
- build.
- - ALlow much longer filenames for kernels to load properly.
- - Allow different kernels to be used by different devices and fix the logic fail
- of overcorrecting on last commit with !strstr.
- - Fix kernel selection process and build error.
- - queue_phatk_kernel now uses CL_SET_VARG() for base-nonce(s), too
- - added OpenCL >= 1.1 detection code, in preparation of OpenCL 1.1 global offset
- parameter support
- - Use K array explicitly to make it clear what is being added.
- - Work items have a tendency to expire at exactly the same time and we don't
- queue extra items when there are plenty in the queue, regardless of age. Allow
- extra work items to be queued if adequate time has passed since we last
- requested work even if over the limit.
- - Discard work when failover-only is enabled and the work has come from a
- different pool.
- - Missing include to build on newer mingw32.
- - Move from the thread safe localtime_r to regular localtime which is the only
- one supported on newer pthread libraries on mingw32 to make it compile with the
- newer ming. Thread safety is of no importance where localtime is used in this
- code.
- - Define in_addr_t in windows if required
- - sys/wait.h not required in windows
- - Allow API to restrict access by IP address
- - Add pool switching to example miner.php
- - Display X-Reject-Reason, when provided
- - Remove the test for whether the device is on the highest profil level before
- raising the GPU speed as it is ineffectual and may prevent raising the GPU
- speed.
- - Remove unnecessary check for opt_debug one every invocation of applog at
- LOG_DEBUG level and place the check in applog().
- CGMiner Version 2.2.3 - February 6, 2012
- - Revert "Rewrite the convoluted get_work() function to be much simpler and roll
- work as much as possible with each new work item." This seems to cause a race on
- work in free_work(). Presumably other threads are still accessing the structure.
- CGMiner Version 2.2.2 - February 6, 2012
- - Provide support for the submitold extension on a per-pool basis based on the
- value being detected in a longpoll.
- - Don't send a ping to a dynamic device if it's not enabled as that will just
- enable it for one pass and then disable it again.
- - Rewrite the convoluted get_work() function to be much simpler and roll work as
- much as possible with each new work item.
- - Roll as much work as possible from the work returned from a longpoll.
- - Rolling work on each loop through the mining thread serves no purpose.
- - Allow to stage more than necessary work items if we're just rolling work.
- - Replace divide_work with reuse_work function used twice.
- - Give rolled work a new ID to make sure there is no confusion in the hashtable
- lookups.
- - Remove now-defunct hash_div variables.
- - Remove unused get_dondata function.
- - Silence ADL warnings.
- - Silence unused parameter warnings.
- - Stagger the restart of every next thread per device to keep devices busy ahead
- of accessory threads per device.
- - Deprecate the --donation feature. Needlessly complex, questionable usefulness,
- depends on author's server and a central pool of some kind, and was not heavily
- adopted.
- - It's devices that report back now, not threads, update message.
- - Continue auto-management of fan and engine speeds even if a device is disabled
- for safety reasons.
- - No need to check we're highest performance level when throttling GPU engine
- speed.
- - Abstract out tests for whether work has come from a block that has been seen
- before and whether a string is from a previously seen block.
- - Probe but don't set the timeout to 15 seconds as some networks take a long
- time to timeout.
- - Remove most compiler warnings from api.c
- - Add last share's pool info in cgpu_info
- - Allow the OpenCL platform ID to be chosen with --gpu-platform.
- - Iterate over all platforms displaying their information and number of devices
- when --ndevs is called.
- - Deprecate main.c
- - Some networks can take a long time to resolve so go back to 60 second timeouts
- instead of 15.
- - Only enable curses on failure if curses is desired.
- - Fix warnings in bitforce.c
- - Bugfix: Need to open BitForce tty for read-write
- - Fix various build issues.
- - Modularize code: main.c -> device-cpu + device-gpu
- - Fix phatk kernel not working on non-bitalign capable devices (Nvidia, older
- ATI).
- - Update poclbm kernel for better performance on GCN and new SDKs with bitalign
- support when not BFI INT patching. Update phatk kernel to work properly for non
- BFI INT patched kernels, providing support for phatk to run on GCN and non-ATI
- cards.
- - Return last accepted share pool/time for devices
- - Display accepted share pool/time for CPUs
- - Bug intensity always shows GPU 0
- - Update example web miner.php to use new API commands
- CGMiner Version 2.2.1 - January 30, 2012
- NOTE - The GPU Device reordering in 2.2.0 by default was considered a bad idea
- so the original GPU ordering is used by default again unless reordering is
- explicitly requested.
- - Fix bitforce failing to build into cgminer.
- - Add missing options to write config function.
- - Add a --gpu-reorder option to only reorder devices according to PCI Bus ID
- when requested.
- - Fix for midstate support being broken on pools that supported no-midstate
- work by ensuring numbers are 32 bits in sha2.c
- - Set virtual GPUs to work when ADL is disabled or all mining will occur on GPU
- 0.
- - Add information about paused threads in the menu status.
- - Disable all but the first thread on GPUs in dynamic mode for better
- interactivity.
- - Set the latest network access time on share submission for --net-delay even if
- we're not delaying that submission for further network access.
- - Clear adl on exiting after probing values since it may attempt to overclock.
- - As share submission is usually staggered, and delays can be costly, submit
- shares without delay even when --net-delay is enabled.
- - Display GPU number and device name when ADL is successfully enabled on it.
- - Display GPU ordering remapping in verbose mode.
- - Don't fail in the case the number of ADL and OpenCL devices do not match, and
- do not attempt to reorder devices unless they match. Instead give a warning
- about
- - Display error codes should ADL not return ADL_OK in the more critical function
- calls.
- - Fix unused warning.
- - Fix compile warnings in api.c
- - Add extensive ADL based device info in debug mode.
- - Make --ndevs display verbose opencl information as well to make debugging
- version information easier.
- - Display information about the opencl platform with verbose enabled.
- - Explicitly check for nvidia in opencl platform strings as well.
- CGMiner Version 2.2.0 - January 29, 2012
- NOTE: GPU Device order will change with this release with ATI GPUs as cgminer
- now can enumerate them according to their Bus ID which means the values should
- now correlate with their physical position on the motherboard.
- - Default to poclbm kernel on Tahiti (7970) since phatk does not work, even
- though performance is sub-standard so that at least it will mine successfully by
- defau
- - Retain cl program after every possible place we might build the program.
- - Update ADL SDK URL.
- - Fix potential overflow.
- - Map GPU devices to virtual devices in their true physical order based on
- BusNumber.
- - Change the warning that comes with failure to init cl on a device to be more
- generic and accurate.
- - Advertise longpoll support in X-Mining-Extensions
- - Detect dual GPU cards by iterating through all GPUs, finding ones without
- fanspeed and matching twins with fanspeed one bus ID apart.
- - Do not attempt to build the program that becomes the kernel twice. This could
- have been leading to failures on initialising cl.
- - Some opencl compilers have issues with no spaces after -D in the compiler
- options.
- - Allow intensity up to 14.
- - Use calloced stack memory for CompilerOptions to ensure sprintf writes to the
- beginning of the char.
- - Whitelist 79x0 cards to prefer no vectors as they perform better without.
- - Adjust fan speed gently while in the optimal range when temperature is
- drifting to minimise overshoot in either direction.
- - 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
- - Instead of using the BFI_INT patching hack on any device reporting
- cl_amd_media_ops, create a whitelist of devices that need it. This should enable
- GCN architec
- - Fixed API compiling issue on OS X
- - Add more explanation of JSON format and the 'save' command
- - Return an error if using ADL API commands when it's not available
- - Read off lpThermalControllerInfo from each ADL device.
- - Add ADL_Overdrive5_ThermalDevices_Enum interface.
- - Add API commands: config, switchpool, gpu settings, save
- - Implement socks4 proxy support.
- - Fix send() for JSON strings
- - Introduce a --net-delay option which guarantees at least 250ms between any
- networking requests to not overload slow routers.
- - Generalise locking init code.
- - Allow invalid values to be in the configuration file, just skipping over them
- provided the rest of the file is valid JSON. This will allow older configurat
- - Allow CPU mining explicitly enable only if other mining support is built in.
- - BitForce FPGA support
- - Configure out building and support of all CPU mining code unless
- --enable-cpumining is enabled.
- - Allow parsed values to be zero which will allow 0 values in the config file to
- work.
- - Advertise that we can make our own midstate, so the pool can skip generating
- it for us
- - Refactor the CPU scanhash_* functions to use a common API. Fixes bugs.
- - Don't consider a pool lagging if a request has only just been filed. This
- should decrease the false positives for "pool not providing work fast enough".
- - Invalidating work after longpoll made hash_pop return no work giving a false
- positive for dead pool. Rework hash_pop to retry while finds no staged work u
- - Remove TCP_NODELAY from curl options as many small packets may be contributing
- to network overload, when --net-delay is enabled.
- - Refactor miner_thread to be common code for any kind of device
- - Simplify submit_nonce loop and avoid potentially missing FOUND - 1 entry.
- Reported by Luke-Jr.
- - Micro-optimisation in sha256_sse2 code courtesy of Guido Ascioti
- guido.ascioti@gmail.com
- - Refactor to abstract device-specific code
- CGMiner Version 2.1.2 - January 6, 2012
- - If api-description is specified, save it when writing the config file
- - Adjust utility width to be constant maximum as well.
- - Add percent signs to reject ratio outputs
- - Should the donation pool fail, don't make the fallover pool behave as though
- the primary pool is lagging.
- - Use an alternative pool should the donation getwork fail.
- CGMiner Version 2.1.1 - January 1, 2012
- - Include API examples in distribution tarball.
- - Don't attempt to pthread_join when cancelling threads as they're already
- detached and doing so can lead to a segfault.
- - Give more generic message if slow pool at startup is the donation pool.
- - Continue to attempt restarting GPU threads if they're flagged dead at 1 min.
- intervals.
- - Don't attempt to restart sick flagged GPUs while they're still registering
- activity.
- - Make curl use fresh connections whenever there is any communication issue
- in case there are dead persistent connections preventing further comms from
- working.
- - Display pool in summary if only 1 pool.
- - Adjust column width of A/R/HW to be the maximum of any device and align them.
- CGMiner Version 2.1.0 - December 27, 2011
- - Major infrastructure upgrade with RPC interface for controlling via sockets
- encoded with/without JSON courtesy of Andrew Smith. Added documentation for
- use of the API and sample code to use with it.
- - Updated linux-usb-cgminer document.
- - Rewrite of longpoll mechanism to choose the current pool wherever possible to
- use for the longpoll, or any pool that supports longpoll if the current one
- does not.
- - Display information about longpoll when the chosen server has changed.
- - Fix the bug where longpoll generated work may have been sent back to the
- wrong pool, causing rejects.
- - Fix a few race conditions on closing cgminer which caused some of the crashes
- on exit.
- - Only adjust gpu engine speed in autotune mode if the gpu is currently at the
- performance level of that being adjusted.
- - Various fixes for parsing/writing of configuration files.
- - Do not add blank lines for threads of unused CPUs.
- - Show which pool is unresponsive on startup.
- - Only show GPU management menu item if GPUs are in use.
- - Align most device columns in the curses display.
- CGMiner Version 2.0.8 - November 11, 2011
- - 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.
- - Byteswap computed hash in hashtest so it can be correctly checked. This fixes
- the very rare possibility that a block solve on solo mining was missed.
- - Add x86_64 w64 mingw32 target
- - Allow a fixed speed difference between memory and GPU clock speed with
- --gpu-memdiff that will change memory speed when GPU speed is changed in
- autotune mode.
- - Don't load the default config if a config file is specified on the command
- line.
- - Don't build VIA on apple since -a auto bombs instead of gracefully ignoring
- VIA failing.
- - Build fix for dlopen/dlclose errors in glibc.
- CGMiner Version 2.0.7 - October 17, 2011
- - Support work without midstate or hash1, which are deprecated in bitcoind 0.5+
- - Go to kernel build should we fail to clCreateProgramWithBinary instead of
- failing on that device. This should fix the windows problems with devices not
- initialising.
- - Support new configuration file format courtesy of Chris Savery which can write
- the config file from the menu and will load it on startup.
- - Write unix configuration to .cgminer/cgminer.conf by default and prompt to
- overwrite if given a filename from the menu that exists.
- CGMiner Version 2.0.6 - October 9, 2011
- - Must initialise the donorpool mutex or it fails on windows.
- - Don't make donation work interfere with block change detection allowing
- donation to work regardless of the block chain we're mining on.
- - Expire shares as stale with a separate timeout from the scantime, defaulting
- to 120 seconds.
- - Retry pools after a delay of 15 seconds if none can be contacted on startup
- unless a key is pressed.
- - Don't try to build adl features without having adl.
- - Properly check shares against target difficulty - This will no longer show
- shares when solo mining at all unless they're considered to be a block solve.
- - Add altivec 4 way (cpu mining) support courtesy of Gilles Risch.
- - Try to use SSL if the server supports it.
- - Display the total solved blocks on exit (LOL if you're lucky).
- - Use ADL activity report to tell us if a sick GPU is still busy suggesting it
- is hard hung and do not attempt to restart it.
- CGMiner Version 2.0.5 - September 27, 2011
- - Intensity can now be set to dynamic or static values per-device.
- - New donation feature --donation sends a proportion of shares to author's
- account of choice, but is disabled by default!
- - The hash being displayed and block detection has been fixed.
- - Devices not being mined on will not attempt to be ADL managed.
- - Intensity is now displayed per GPU device.
- - Make longpoll attempt to restart as often as opt_retries specifies.
- - We weren't rolling work as often as we could.
- - Correct some memory management issues.
- - Build fixes.
- - Don't mess with GPUs if we don't have them.
- CGMiner Version 2.0.4 - September 23, 2011
- - Confused Longpoll messages should be finally fixed with cgminer knowing for
- sure who found the new block and possibly avoiding a rare crash.
- - Display now shows the actual hash and will say BLOCK! if a block is deemed
- solved.
- - Extra spaces, which would double space lines on small terminals, have been
- removed.
- - Fan speed change is now damped if it is already heading in the correct
- direction to minimise overshoot.
- - Building without opencl libraries is fixed.
- - GPUs are autoselected if there is only one when in the GPU management menu.
- - GPU menu is refreshed instead of returning to status after a GPU change.
- CGMiner Version 2.0.3 - September 17, 2011
- - Various modes of failure to set fanspeeds and adl values have been addressed
- and auto-fan should work now on most hardware, and possibly other values
- which previously would not have worked.
- - Fixed a crash that can occur on switching pools due to longpoll thread races.
- - Use ATISTREAMSDKROOT if available at build time.
- - Fanspeed management is returned to the driver default on exit instead of
- whatever it was when cgminer was started.
- - Logging of events deemed WARNING or ERR now will display even during
- periods where menu input is being awaited on.
- CGMiner Version 2.0.2 - September 11, 2011
- - Exit cleanly if we abort before various threads are set up or if they no
- longer exist.
- - Fix a rare crash in HASH_DEL due to using different mutexes to protect the
- data.
- - Flag devices that have never started and don't allow enabling of devices
- without restarting them.
- - Only force the adapter speed to high if we've flagged this device as being
- managed.
- - Flag any devices with autofan or autogpu as being managed.
- - 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.
- - Do not bother resetting values to old ones if changes to GPU parameters report
- failure, instead returning a failure code only if the return value from get()
- differs.
- - Remove redundant check.
- - Only display supported values from fanspeed on change settings.
- - Missing bracket from output.
- - Display fan percentage on devices that only support reporting percent and not
- RPM.
- - Properly substitute DLOPEN flags to build with ADL support when -ldl is needed
- and not when opencl is not found.
- CGMiner Version 2.0.1 - September 9, 2011
- - Fix building on 32bit glibc with dlopen with -lpthread and -ldl
- - ByteReverse is not used and the bswap opcode breaks big endian builds. Remove
- it.
- - Ignore whether the display is active or not since only display enabled devices
- work this way, and we skip over repeat entries anwyay.
- - Only reset values on exiting if we've ever modified them.
- - Flag adl as active if any card is successfully activated.
- - Add a thermal cutoff option as well and set it to 95 degrees by default.
- - Change the fan speed by only 5% if it's over the target temperature but less
- than the hysteresis value to minimise overshoot down in temperature.
- - Add a --no-adl option to disable ADL monitoring and GPU settings.
- - Only show longpoll received delayed message at verbose level.
- - Allow temperatures greater than 100 degrees.
- - We should be passing a float for the remainder of the vddc values.
- - Implement accepting a range of engine speeds as well to allow a lower limit to
- be specified on the command line.
- - Allow per-device fan ranges to be set and use them in auto-fan mode.
- - Display which GPU has overheated in warning message.
- - Allow temperature targets to be set on a per-card basis on the command line.
- - Display fan range in autofan status.
- - Setting the hysteresis is unlikely to be useful on the fly and doesn't belong
- in the per-gpu submenu.
- - With many cards, the GPU summaries can be quite long so use a terse output
- line when showing them all.
- - Use a terser device status line to show fan RPM as well when available.
- - Define max gpudevices in one macro.
- - Allow adapterid 0 cards to enumerate as a device as they will be non-AMD
- cards, and enable ADL on any AMD card.
- - Do away with the increasingly confusing and irrelevant total queued and
- efficiency measures per device.
- - Only display values in the log if they're supported and standardise device log
- line printing.
- CGMiner Version 2.0.0 - September 6, 2011
- Major feature upgrade - GPU monitoring, (over)clocking and fan control for ATI
- GPUs.
- New command line switches:
- --auto-fan- Automatically adjust all GPU fan speeds to maintain a target
- temperature
- --auto-gpu- Automatically adjust all GPU engine clock speeds to maintain
- a target temperature
- --gpu-engine <arg> Set the GPU engine (over)clock in Mhz - one value for all or
- separate by commas for per card.
- --gpu-fan <arg> Set the GPU fan percentage - one value for all or separate
- by commas for per card.
- --gpu-memclock <arg> Set the GPU memory (over)clock in Mhz - one value for all
- or separate by commas for per card.
- --gpu-powertune <arg> Set the GPU powertune percentage - one value for all or
- separate by commas for per card.
- --gpu-vddc <arg> Set the GPU voltage in Volts - one value for all or separate
- by commas for per card.
- --temp-hysteresis <arg> Set how much the temperature can fluctuate outside
- limits when automanaging speeds (default: 3)
- --temp-overheat <arg> Set the overheat temperature when automatically managing
- fan and GPU speeds (default: 85)
- --temp-target <arg> Set the target temperature when automatically managing fan
- and GPU speeds (default: 75)
- - 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.
- - Implement changing memory speed and voltage on the fly.
- - Implement fan speed setting.
- - Minor corrections to set fan speed by percentage.
- - Make sure to read off the value in RPM only.
- - 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%.
- - Add an --auto-fan command line option to allow all GPUs to have autofan
- enabled from startup.
- - 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.
- - Avoid a dereference if the longpoll thread doesn't exist.
- - Clean up by setting performance profiles and fan settings to startup levels on
- exit.
- - Add a small amount of hysteresis before lowering clock speed.
- - Allow target, overheat and hysteresis temperatures to be set from command
- line.
- - Combine all stats collating into one function to avoid repeating function
- calls on each variable.
- - Add gpu statistics to debugging output via the watchdog thread.
- - Implement menus to change temperature limits.
- - Implement setting the GPU engine clock speed of all devices or each device as
- a comma separated value.
- - Implement setting the GPU memory clock speed of all devices or each device as
- a comma separated value.
- - Implement setting the GPU voltage of all devices or each device as a comma
- separated value.
- - Implement setting the GPU fan speed of all devices or each device as a comma
- separated value.
- - Add support for monitoring powertune setting.
- - Implement changing of powertune value from the GPU change settings menu.
- - Get the value of powertune in get_stats.
- - Implement setting the GPU powertune value of all devices or each device as a
- comma separated value.
- - Remove the safety checks in speed setting since confirmation is done first in
- the menu, then show the new current values after a short pause.
- - Force the speed to high on startup and restore it to whatever the setting was
- on exit.
- - Add temperature to standard output where possible and use more compact output.
- - Move and print at the same time in curses to avoid random trampling display
- errors.
- - Update the status window only from the watchdog thread, do not rewrite the top
- status messages and only refresh once all the status window is complete,
- clearing the window each time to avoid corruption.
- - Set a safe starting fan speed if we're automanaging the speeds.
- - Provide locking around all adl calls to prevent races.
- - Lower profile settings cannot be higher than higher profile ones so link any
- drops in settings.
- - Add new needed text files to distribution.
- - Queue requests ignoring the number of staged clones since they get discarded
- very easily leading to false positives for pool not providing work fast enough.
- - Include libgen.h in opt.c to fix win32 compilation warnings.
- - Fix compilation warning on win32.
- - Add the directory name from the arguments cgminer was called from as well to
- allow it running from a relative pathname.
- - Add a --disable-adl option to configure and only enable it if opencl support
- exists.
- - Retry before returning a failure to get upstream work as a failure to avoid
- false positives for pool dead.
- - Retry also if the decoding of work fails.
- - Use the presence of X-Roll-Ntime in the header as a bool for exists unless N
- is found in the response.
- CGMiner Version 1.6.2 - September 2, 2011
- - Add --failover-only option to not leak work to backup pools when the primary
- pool is lagging.
- - Change recommendation to intensity 9 for dedicated miners.
- - Fix the bouncing short term value by allowing it to change dynamically when
- the latest value is very different from the rolling value, but damp the change
- when it gets close.
- - Use the curses_lock to protect the curses_active variable and test it under
- lock.
- - Go back to requesting work 2/3 of the way through the current scantime with
- CPU mining as reports of mining threads running out of work have occurred with
- only 5 seconds to retrieve work.
- - Add start and stop time scheduling for regular time of day running or once off
- start/stop options.
- - Print summary on quit modes.
- - Put some sanity checks on the times that can be input.
- - Give a verbose message when no active pools are found and pause before
- exiting.
- - Add verbose message when a GPU fails to initialise, and disable the correct
- GPU.
- - Cryptopp asm32 was not correctly updated to the incremental nonce code so the
- hash counter was bogus.
- - Get rid of poorly executed curl check.
- - If curl does not have sockopts, do not try to compile the
- json_rpc_call_sockopt_cb function, making it possible to build against older
- curl libraries.
- - Most people expect /usr/local when an unspecified prefix is used so change to
- that.
- - Rename localgen occasions to getwork fail occasions since localgen is
- unrelated now.
- CGMiner Version 1.6.1 - August 29, 2011
- - Copy cgminer path, not cat it.
- - Switching between redrawing windows does not fix the crash with old
- libncurses, so redraw both windows, but only when the window size hasn't
- changed.
- - Reinstate minimum 1 extra in queue to make it extremely unlikely to ever have
- 0 staged work items and any idle time.
- - Return -1 if no input is detected from the menu to prevent it being
- interpreted as a 0.
- - Make pthread, libcurl and libcurses library checks mandatory or fail.
- - Add a --disable-opencl configure option to make it possible to override
- detection of opencl and build without GPU mining support.
- - Confusion over the variable name for number of devices was passing a bogus
- value which likely was causing the zero sized binary issue.
- - cgminer no longer supports default url user and pass so remove them.
- - Don't show value of intensity since it's dynamic by default.
- - Add options to explicitly enable CPU mining or disable GPU mining.
- - Convert the opt queue into a minimum number of work items to have queued
- instead of an extra number to decrease risk of getting idle devices without
- increasing risk of higher rejects.
- - Statify tv_sort.
- - Check for SSE2 before trying to build 32 bit SSE2 assembly version. Prevents
- build failure when yasm is installed but -msse2 is not specified.
- - Add some defines to configure.ac to enable exporting of values and packaging,
- and clean up output.
- - Give convenient summary at end of ./configure.
- - Display version information and add --version command line option, and make
- sure we flush stdout.
- - Enable curses after the mining threads are set up so that failure messages
- won't be lost in the curses interface.
- - Disable curses after inputting a pool if we requested no curses interface.
- - Add an option to break out after successfully mining a number of accepted
- shares.
- - Exit with a failed return code if we did not reach opt_shares.
- - The cpu mining work data can get modified before we copy it if we submit it
- async, and the sync submission is not truly sync anyway, so just submit it sync.
- CGMiner Version 1.6.0 - August 26, 2011
- - Make restarting of GPUs optional for systems that hang on any attempt to
- restart them. Fix DEAD status by comparing it to last live time rather than
- last attempted restart time since that happens every minute.
- - Move staged threads to hashes so we can sort them by time.
- - Create a hash list of all the blocks created and search them to detect when a
- new block has definitely appeared, using that information to detect stale work
- and discard it.
- - Update configure.ac for newer autoconf tools.
- - Use the new hashes directly for counts instead of the fragile counters
- currently in use.
- - Update to latest sse2 code from cpuminer-ng.
- - Allow LP to reset block detect and block detect lp flags to know who really
- came first.
- - Get start times just before mining begins to not have very slow rise in
- average.
- - Add message about needing one server.
- - We can queue all the necessary work without hitting frequent stales now with
- the time and string stale protection active all the time. This prevents a
- pool being falsely labelled as not providing work fast enough.
- - Include uthash.h in distro.
- - Implement SSE2 32 bit assembly algorithm as well.
- - Fail gracefully if unable to open the opencl files.
- - Make cgminer look in the install directory for the .cl files making make
- install work correctly.
- - Allow a custom kernel path to be entered on the command line.
- - Bump threshhold for lag up to maximum queued but no staged work.
- - Remove fragile source patching for bitalign, vectors et. al and simply pass it
- with the compiler options.
- - Actually check the value returned for the x-roll-ntime extension to make sure
- it isn't saying N.
- - Prevent segfault on exit for when accessory threads don't exist.
- - Disable curl debugging with opt protocol since it spews to stderr.
- CGMiner Version 1.5.8 - August 23, 2011
- - Minimise how much more work can be given in cpu mining threads each interval.
- - Make the fail-pause progressively longer each time it fails until the network
- recovers.
- - Only display the lagging message if we've requested the work earlier.
- - 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.
- - Only use one thread to determine if a GPU is sick or well, and make sure to
- reset the sick restart attempt time.
- - The worksize was unintentionally changed back to 4k by mistake, this caused a
- slowdown.
- CGMiner Version 1.5.7 - August 22, 2011
- - Fix a crash with --algo auto
- - Test at appropriate target difficulty now.
- - Add per-device statics log output with --per-device-stats
- - Fix breakage that occurs when 1 or 4 vectors are chosen on new phatk.
- - Make rolltime report debug level only now since we check it every work
- item.
- - Add the ability to enable/disable per-device stats on the fly and match
- logging on/off.
- - Explicitly tell the compiler to retain the program to minimise the chance of
- the zero sized binary errors.
- - Add one more instruction to avoid one branch point in the common path in the
- cl return code. Although this adds more ALUs overall and more branch points, the
- common path code has the same number of ALUs and one less jmp, jmps being more
- expensive.
- - Explicitly link in ws2_32 on the windows build and update README file on how
- to compile successfully on windows.
- - Release cl resources should the gpu mining thread abort.
- - 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.
- - Never automatically disable any pools but just specify them as idle if they're
- unresponsive at startup.
- - Use any longpoll available, and don't disable it if switching to a server that
- doesn't have it. This allows you to mine solo, yet use the longpoll from a pool
- even if the pool is the backup server.
- - Display which longpoll failed and don't free the ram for lp_url since it
- belongs to the pool hdr path.
- - Make the tcp setsockopts unique to linux in the hope it allows freebsd et. al
- to compile.
- CGMiner Version 1.5.6 - August 17, 2011
- - New phatk and poclbm kernels. Updated phatk to be in sync with latest 2.2
- courtesy of phateus. Custom modified to work best with cgminer.
- - Updated output buffer code to use a smaller buffer with the kernels.
- - 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.
- CGMiner Version 1.5.5 - August 16, 2011
- - Rework entirely the GPU restart code. Strike a balance between code that
- re-initialises the GPU entirely so that soft hangs in the code are properly
- managed, but if a GPU is completely hung, the thread restart code fails
- gracefully, so that it does not take out any other code or devices. This will
- allow cgminer to keep restarting GPUs that can be restarted, but continue
- mining even if one or more GPUs hangs which would normally require a reboot.
- - Add --submit-stale option which submits all shares, regardless of whether they
- would normally be considered stale.
- - Keep options in alphabetical order.
- - Probe for slightly longer for when network conditions are lagging.
- - Only display the CPU algo when we're CPU mining.
- - As we have keepalives now, blaming network flakiness on timeouts appears to
- have been wrong. Set a timeout for longpoll to 1 hour, and most other
- network connectivity to 1 minute.
- - Simplify output code and remove HW errors from CPU stats.
- - Simplify code and tidy output.
- - Only show cpu algo in summary if cpu mining.
- - Log summary at the end as per any other output.
- - Flush output.
- - Add a linux-usb-cgminer guide courtesy of Kano.
- CGMiner Version 1.5.4 - August 14, 2011
- - Add new option: --monitor <cmd> Option lets user specify a command <cmd> that
- will get forked by cgminer on startup. cgminer's stderr output subsequently gets
- piped directly to this command.
- - Allocate work from one function to be able to initialise variables added
- later.
- - Add missing fflush(stdout) for --ndevs and conclusion summary.
- - Preinitialise the devices only once on startup.
- - 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. Hopefully this
- makes thread restart on GPU failure more reliable, without hanging everything
- in the case of a completely wedged GPU.
- - Display last initialised time in gpu management info, to know if a GPU has
- been re-initialised.
- - When pinging a sick cpu, flush finish and then ping it in a separate thread in
- the hope it recovers without needing a restart, but without blocking code
- elsewhere.
- - Only consider a pool lagging if we actually need the work and we have none
- staged despite queue requests stacking up. This decreases significantly the
- amount of work that leaks to the backup pools.
- - The can_roll function fails inappropriately in stale_work.
- - Only put the message that a pool is down if not pinging it every minute. This
- prevents cgminer from saying pool down at 1 minute intervals unless in debug
- mode.
- - Free all work in one place allowing us to perform actions on it in the future.
- - Remove the extra shift in the output code which was of dubious benefit. In
- fact in cgminer's implementation, removing this caused a miniscule speedup.
- - 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. This makes the period
- after a longpoll have smaller dips in throughput, as well as requiring less
- getworks overall thus increasing efficiency.
- - Stick to rolling only work from the current pool unless we're in load balance
- mode or lagging to avoid aggressive rolling imitating load balancing.
- - If a work item has had any mining done on it, don't consider it discarded
- work.
- CGMiner Version 1.5.3 - July 30, 2011
- - Significant work went into attempting to make the thread restart code robust
- to identify sick threads, tag them SICK after 1 minute, then DEAD after 5
- minutes of inactivity and try to restart them. Instead of re-initialising the
- GPU completely, only a new cl context is created to avoid hanging the rest of
- the GPUs should the dead GPU be hung irrevocably.
- - Use correct application name in syslog.
- - Get rid of extra line feeds.
- - Use pkg-config to check for libcurl version
- - Implement per-thread getwork count with proper accounting to not over-account
- queued items when local work replaces it.
- - Create a command queue from the program created from source which allows us
- to flush the command queue in the hope it will not generate a zero sized binary
- any more.
- - Be more willing to get work from the backup pools if the work is simply being
- queued faster than it is being retrieved.
- CGMiner Version 1.5.2 - July 28, 2011
- - Restarting a hung GPU can hang the rest of the GPUs so just declare it dead
- and provide the information in the status.
- - The work length in the miner thread gets smaller but doesn't get bigger if
- it's under 1 second. This could end up leading to CPU under-utilisation and
- lower and lower hash rates. Fix it by increasing work length if it drops
- under 1 second.
- - 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.
- - Update utility and efficiency figures when displaying them.
- - Some Intel HD graphics support the opencl commands but return errors since
- they don't support opencl. Don't fail with them, just provide a warning and
- disable GPU mining.
- - Add http:// if it's not explicitly set for URL entries.
- - Log to the output file at any time with warnings and errors, instead of just
- when verbose mode is on.
- - Display the correct current hash as per blockexplorer, truncated to 16
- characters, with just the time.
- CGMiner Version 1.5.1 - July 27, 2011
- - Two redraws in a row cause a crash in old libncurses so just do one redraw
- using the main window.
- - Don't adjust hash_div only up for GPUs. Disable hash_div adjustment for GPUs.
- - Only free the thread structures if the thread still exists.
- - Update both windows separately, but not at the same time to prevent the double
- refresh crash that old libncurses has. Do the window resize check only when
- about to redraw the log window to minimise ncurses cpu usage.
- - Abstract out the decay time function and use it to make hash_div a rolling
- average so it doesn't change too abruptly and divide work in chunks large enough
- to guarantee they won't overlap.
- - Sanity check to prove locking.
- - Don't take more than one lock at a time.
- - Make threads report out when they're queueing a request and report if they've
- failed.
- - Make cpu mining work submission asynchronous as well.
- - Properly detect stale work based on time from staging and discard instead of
- handing on, but be more lax about how long work can be divided for up to the
- scantime.
- - Do away with queueing work separately at the start and let each thread grab
- its own work as soon as it's ready.
- - Don't put an extra work item in the queue as each new device thread will do so
- itself.
- - Make sure to decrease queued count if we discard the work.
- - Attribute split work as local work generation.
- - 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.
- - Dividing work is like the work is never removed at all so treat it as such.
- However the queued bool needs to be reset to ensure we *can* request more work
- even if we didn't initially.
- - Make the display options clearer.
- - Add debugging output to tq_push calls.
- - Add debugging output to all tq_pop calls.
- CGMiner Version 1.5.0 - July 26, 2011
- - 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).
- - Don't request work too early for CPUs as CPUs will scan for the full
- opt_scantime anyway.
- - Simplify gpu management enable/disable/restart code.
- - Implement much more accurate rolling statistics per thread and per gpu and
- improve accuracy of rolling displayed values.
- - Make the rolling log-second average more accurate.
- - 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.
- - The last pool is when we are low in total_pools, not active_pools.
- - Make the thread restart do a pthread_join after disabling the device, only
- re-enabling it if we succeed in restarting the thread. Do this from a separate
- thread so as to not block any other code.This will allow cgminer to continue
- even if one GPU hangs.
- - Try to do every curses manipulation under the curses lock.
- - Only use the sockoptfunction if the version of curl is recent enough.
- CGMiner Version 1.4.1 - July 24, 2011
- - Do away with GET for dealing with longpoll forever. POST is the one that works
- everywhere, not the other way around.
- - Detect when the primary pool is lagging and start queueing requests on backup
- pools if possible before needing to roll work.
- - Load balancing puts more into the current pool if there are disabled pools.
- Fix.
- - Disable a GPU device should the thread fail to init.
- - Out of order command queue may fail on osx. Try without if it fails.
- - Fix possible dereference on blank inputs during input_pool.
- - Defines missing would segfault on --help when no sse mining is built in.
- - Revert "Free up resources/stale compilers." - didn't help.
- - Only try to print the status of active devices or it would crash.
- - Some hardware might benefit from the less OPS so there's no harm in leaving
- kernel changes that do that apart from readability of the code.
- CGMiner Version 1.4.0 - July 23, 2011
- - Feature upgrade: Add keyboard input during runtime to allow modification of
- and viewing of numerous settings such as adding/removing pools, changing
- multipool management strategy, switching pools, changing intensiy, verbosity,
- etc. with a simple keypress menu system.
- - Free up resources/stale compilers.
- - Kernels are safely flushed in a way that allows out of order execution to
- work.
- - Sometimes the cl compiler generates zero sized binaries and only a reboot
- seems to fix it.
- - Don't try to stop/cancel threads that don't exist.
- - Only set option to show devices and exit if built with opencl support.
- - Enable curses earlier and exit with message in main for messages to not be
- lost in curses windows.
- - Make it possible to enter server credentials with curses input if none are
- specified on the command line.
- - Abstract out a curses input function and separate input pool function to allow
- for live adding of pools later.
- - Remove the nil arguments check to allow starting without parameters.
- - Disable/enable echo & cbreak modes.
- - Add a thread that takes keyboard input and allow for quit, silent, debug,
- verbose, normal, rpc protocol debugging and clear screen options.
- - Add pool option to input and display current pool status, pending code to
- allow live changes.
- - Add a bool for explicit enabling/disabling of pools.
- - Make input pool capable of bringing up pools while running.
- - Do one last check of the work before submitting it.
- - Implement the ability to live add, enable, disable, and switch to pools.
- - Only internally test for block changes when the work matches the current pool
- to prevent interleaved block change timing on multipools.
- - Display current pool management strategy to enable changing it on the fly.
- - The longpoll blanking of the current_block data may not be happening before
- the work is converted and appears to be a detected block change. Blank the
- current block be
- - Make --no-longpoll work again.
- - Abstract out active pools count.
- - Allow the pool strategy to be modified on the fly.
- - Display pool information on the fly as well.
- - Add a menu and separate out display options.
- - Clean up the messy way the staging thread communicates with the longpoll
- thread to determine who found the block first.
- - Make the input windows update immediately instead of needing a refresh.
- - Allow log interval to be set in the menu.
- - Allow scan settings to be modified at runtime.
- - Abstract out the longpoll start and explicitly restart it on pool change.
- - Make it possible to enable/disable longpoll.
- - Set priority correctly on multipools. Display priority and alive/dead
- information in display_pools.
- - Implement pool removal.
- - Limit rolltime work generation to 10 iterations only.
- - Decrease testing log to info level.
- - Extra refresh not required.
- - With huge variation in GPU performance, allow intensity to go from -10 to +10.
- - Tell getwork how much of a work item we're likely to complete for future
- splitting up of work.
- - Remove the mandatory work requirement at startup by testing for invalid work
- being passed which allows for work to be queued immediately. This also
- removes the requirem
- - Make sure intensity is carried over to thread count and is at least the
- minimum necessary to work.
- - Unlocking error on retry. Locking unnecessary anyway so remove it.
- - Clear log window from consistent place. No need for locking since logging is
- disabled during input.
- - Cannot print the status of threads that don't exist so just queue enough work
- for the number of mining threads to prevent crash with -Q N.
- - 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.
- - Make it possible to select the choice of kernel on the command line.
- - Simplify the output part of the kernel. There's no demonstrable advantage from
- more complexity.
- - Merge pull request #18 from ycros/cgminer
- - No need to make leaveok changes win32 only.
- - Build support in for all SSE if possible and only set the default according to
- machine capabilities.
- - Win32 threading and longpoll keepalive fixes.
- - Win32: Fix for mangled output on the terminal on exit.
- CGMiner Version 1.3.1 - July 20, 2011
- - Feature upgrade; Multiple strategies for failover. Choose from default which
- now falls back to a priority order from 1st to last, round robin which only
- changes pools when one is idle, rotate which changes pools at user-defined
- intervals, and load-balance which spreads the work evenly amongst all pools.
- - Implement pool rotation strategy.
- - Implement load balancing algorithm by rotating requests to each pool.
- - Timeout on failed discarding of staged requests.
- - Implement proper flagging of idle pools, test them with the watchdog thread,
- and failover correctly.
- - Move pool active test to own function.
- - Allow multiple strategies to be set for multipool management.
- - Track pool number.
- - Don't waste the work items queued on testing the pools at startup.
- - 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.
- - Allow the user/pass userpass urls to be input in any order.
- - When json rpc errors occur they occur in spits and starts, so trying to limit
- them with the comms error bool doesn't stop a flood of them appearing.
- - Reset the queued count to allow more work to be queued for the new pool on
- pool switch.
- CGMiner Version 1.3.0 - July 19, 2011
- - Massive infrastructure update to support pool failover.
- - Accept multiple parameters for url, user and pass and set up structures of
- pool data accordingly.
- - Probe each pool for what it supports.
- - Implement per pool feature support according to rolltime support as
- advertised by server.
- - Do switching automatically based on a 300 second timeout of locally generated
- work or 60 seconds of no response from a server that doesn't support rolltime.
- - Implement longpoll server switching.
- - Keep per-pool data and display accordingly.
- - Make sure cgminer knows how long the pool has actually been out for before
- deeming it a prolonged outage.
- - Fix bug with ever increasing staged work in 1.2.8 that eventually caused
- infinite rejects.
- - Make warning about empty http requests not show by default since many
- servers do this regularly.
- CGMiner Version 1.2.8 - July 18, 2011
- - More OSX build fixes.
- - Add an sse4 algorithm to CPU mining.
- - Fix CPU mining with other algorithms not working.
- - Rename the poclbm file to ensure a new binary is built since.
- - We now are guaranteed to have one fresh work item after a block change and we
- should only discard staged requests.
- - Don't waste the work we retrieve from a longpoll.
- - Provide a control lock around global bools to avoid racing on them.
- - Iterating over 1026 nonces when confirming data from the GPU is old code
- and unnecessary and can lead to repeats/stales.
- - The poclbm kernel needs to be updated to work with the change to 4k sized
- output buffers.
- - longpoll seems to work either way with post or get but some servers prefer
- get so change to httpget.
- CGMiner Version 1.2.7 - July 16, 2011
- - Show last 8 characters of share submitted in log.
- - Display URL connected to and user logged in as in status.
- - Display current block and when it was started in the status line.
- - Only pthread_join the mining threads if they exist as determined by
- pthread_cancel and don't fail on pthread_cancel.
- - Create a unique work queue for all getworks instead of binding it to thread 0
- to avoid any conflict over thread 0's queue.
- - Clean up the code to make it clear it's watchdog thread being messaged to
- restart the threads.
- - Check the current block description hasn't been blanked pending the real
- new current block data.
- - Re-enable signal handlers once the signal has been received to make it
- possible to kill cgminer if it fails to shut down.
- - Disable restarting of CPU mining threads pending further investigation.
- - Update longpoll messages.
- - Add new block data to status line.
- - Fix opencl tests for osx.
- - Only do local generation of work if the work item is not stale itself.
- - Check for stale work within the mining threads and grab new work if
- positive.
- - Test for idle network conditions and prevent threads from being restarted
- by the watchdog thread under those circumstances.
- - Make sure that local work generation does not continue indefinitely by
- stopping it after 10 minutes.
- - Tweak the kernel to have a shorter path using a 4k buffer and a mask on the
- nonce value instead of a compare and loop for a shorter code path.
- - Allow queue of zero and make that default again now that we can track how
- work is being queued versus staged. This can decrease reject rates.
- - Queue precisely the number of mining threads as longpoll_staged after a
- new block to not generate local work.
- CGMiner Version 1.2.6 - July 15, 2011
- - Put a current system status line beneath the total work status line
- - Fix a counting error that would prevent cgminer from correctly detecting
- situations where getwork was failing - this would cause stalls sometimes
- unrecoverably.
- - Limit the maximum number of requests that can be put into the queue which
- otherwise could get arbitrarily long during a network outage.
- - Only count getworks that are real queue requests.
- CGMiner Version 1.2.5 - July 15, 2011
- - Conflicting -n options corrected
- - Setting an intensity with -I disables dynamic intensity setting
- - Removed option to manually disable dynamic intensity
- - Improve display output
- - Implement signal handler and attempt to clean up properly on exit
- - Only restart threads that are not stuck waiting on mandatory getworks
- - Compatibility changes courtesy of Ycros to build on mingw32 and osx
- - Explicitly grab first work item to prevent false positive hardware errors
- due to working on uninitialised work structs
- - Add option for non curses --text-only output
- - Ensure we connect at least once successfully before continuing to retry to
- connect in case url/login parameters were wrong
- - Print an executive summary when cgminer is terminated
- - Make sure to refresh the status window
- CGMiner Versions -> 1.2.4
- - Con Kolivas - July 2011. New maintainership of code under cgminer name.
- - Massive rewrite to incorporate GPU mining.
- - Incorporate original oclminer c code.
- - Rewrite gpu mining code to efficient work loops.
- - Implement per-card detection and settings.
- - Implement vector code.
- - Implement bfi int patching.
- - Import poclbm and phatk ocl kernels and use according to hardware type.
- - Implement customised optimised versions of opencl kernels.
- - Implement binary kernel generation and loading.
- - Implement preemptive asynchronous threaded work gathering and pushing.
- - Implement variable length extra work queues.
- - Optimise workloads to be efficient miners instead of getting lots of extra
- work.
- - Implement total hash throughput counters, per-card accepted, rejected and
- hw error count.
- - Staging and watchdog threads to prevent fallover.
- - Stale and reject share guarding.
- - Autodetection of new blocks without longpoll.
- - Dynamic setting of intensity to maintain desktop interactivity.
- - Curses interface with generous statistics and information.
- - Local generation of work (xroll ntime) when detecting poor network
- connectivity.
- cpuminer Version 1.0.2
- - Linux x86_64 optimisations - Con Kolivas
- - Optimise for x86_64 by default by using sse2_64 algo
- - Detects CPUs and sets number of threads accordingly
- - Uses CPU affinity for each thread where appropriate
- - Sets scheduling policy to lowest possible
- - Minor performance tweaks
- cpuminer Version 1.0.1 - May 14, 2011
- - OSX support
- cpuminer Version 1.0 - May 9, 2011
- - jansson 2.0 compatibility
- - correct off-by-one in date (month) display output
- - fix platform detection
- - improve yasm configure bits
- - support full URL, in X-Long-Polling header
- cpuminer Version 0.8.1 - March 22, 2011
- - Make --user, --pass actually work
- - Add User-Agent HTTP header to requests, so that server operators may
- more easily identify the miner client.
- - Fix minor bug in example JSON config file
- cpuminer Version 0.8 - March 21, 2011
- - Support long polling: http://deepbit.net/longpolling.php
- - Adjust max workload based on scantime (default 5 seconds,
- or 60 seconds for longpoll)
- - Standardize program output, and support syslog on Unix platforms
- - Suport --user/--pass options (and "user" and "pass" in config file),
- as an alternative to the current --userpass
- cpuminer Version 0.7.2 - March 14, 2011
- - Add port of ufasoft's sse2 assembly implementation (Linux only)
- This is a substantial speed improvement on Intel CPUs.
- - Move all JSON-RPC I/O to separate thread. This reduces the
- number of HTTP connections from one-per-thread to one, reducing resource
- usage on upstream bitcoind / pool server.
- cpuminer Version 0.7.1 - March 2, 2011
- - Add support for JSON-format configuration file. See example
- file example-cfg.json. Any long argument on the command line
- may be stored in the config file.
- - Timestamp each solution found
- - Improve sha256_4way performance. NOTE: This optimization makes
- the 'hash' debug-print output for sha256_way incorrect.
- - Use __builtin_expect() intrinsic as compiler micro-optimization
- - Build on Intel compiler
- - HTTP library now follows HTTP redirects
- cpuminer Version 0.7 - February 12, 2011
- - Re-use CURL object, thereby reuseing DNS cache and HTTP connections
- - Use bswap_32, if compiler intrinsic is not available
- - Disable full target validation (as opposed to simply H==0) for now
- cpuminer Version 0.6.1 - February 4, 2011
- - Fully validate "hash < target", rather than simply stopping our scan
- if the high 32 bits are 00000000.
- - Add --retry-pause, to set length of pause time between failure retries
- - Display proof-of-work hash and target, if -D (debug mode) enabled
- - Fix max-nonce auto-adjustment to actually work. This means if your
- scan takes longer than 5 seconds (--scantime), the miner will slowly
- reduce the number of hashes you work on, before fetching a new work unit.
- cpuminer Version 0.6 - January 29, 2011
- - Fetch new work unit, if scanhash takes longer than 5 seconds (--scantime)
- - BeeCee1's sha256 4way optimizations
- - lfm's byte swap optimization (improves via, cryptopp)
- - Fix non-working short options -q, -r
- cpuminer Version 0.5 - December 28, 2010
- - Exit program, when all threads have exited
- - Improve JSON-RPC failure diagnostics and resilience
- - Add --quiet option, to disable hashmeter output.
- cpuminer Version 0.3.3 - December 27, 2010
- - Critical fix for sha256_cryptopp 'cryptopp_asm' algo
- cpuminer Version 0.3.2 - December 23, 2010
- - Critical fix for sha256_via
- cpuminer Version 0.3.1 - December 19, 2010
- - Critical fix for sha256_via
- - Retry JSON-RPC failures (see --retry, under "minerd --help" output)
- cpuminer Version 0.3 - December 18, 2010
- - Add crypto++ 32bit assembly implementation
- - show version upon 'minerd --help'
- - work around gcc 4.5.x bug that killed 4way performance
- cpuminer Version 0.2.2 - December 6, 2010
- - VIA padlock implementation works now
- - Minor build and runtime fixes
- cpuminer Version 0.2.1 - November 29, 2010
- - avoid buffer overflow when submitting solutions
- - add Crypto++ sha256 implementation (C only, ASM elided for now)
- - minor internal optimizations and cleanups
- cpuminer Version 0.2 - November 27, 2010
- - Add script for building a Windows installer
- - improve hash performance (hashmeter) statistics
- - add tcatm 4way sha256 implementation
- - Add experimental VIA Padlock sha256 implementation
- cpuminer Version 0.1.2 - November 26, 2010
- - many small cleanups and micro-optimizations
- - build win32 exe using mingw
- - RPC URL, username/password become command line arguments
- - remove unused OpenSSL dependency
- cpuminer Version 0.1.1 - November 24, 2010
- - Do not build sha256_generic module separately from cpuminer.
- cpuminer Version 0.1 - November 24, 2010
- - Initial release.
|