From fffdea0949823adaf93face116e9268d40a7d4d4 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Wed, 21 Aug 2013 21:15:27 +1000 Subject: [PATCH] Update NEWS. --- NEWS | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 104 insertions(+), 10 deletions(-) diff --git a/NEWS b/NEWS index 0e93140b..ae1a4028 100644 --- a/NEWS +++ b/NEWS @@ -1,9 +1,103 @@ +Version 3.4.0 - 21st August 2013 + +- Use stack data for HW error% in avalon stats. +- Add avalon HW error% to stats and only show BTB variables if avalon is a BTB. +- Check for cnx_needed on each loop through wait_lp_current. +- Return positive for cnx_needed when no_work is true. +- Stratum is used more often so test for it first. +- Reorder support names alphabetically. +- Only display the no pool work message once if there are multiple waiters in +hash_pop +- Provide a message and set a bool when no work is available from any pools and +when it resumes again. +- We don't want to continue into the hash_pop function if the getq is frozen. +- Only report threads in and out in queued work devices across a get work since +the rest happens asynchronously and the get work is what the device might be +waiting on. +- Thread reportin and out can be static non inline. +- usbutils cps sleep_estimate is not an underestimate +- usbutils add cps stats estimates +- Provide cgtimer_sub helper functions. +- Provide cgtimer_to_ms helper functions. +- Rename cgsleep_prepare_r as cgtimer_time to get time in cgtimer_t format and +call cgsleep_prepare_r as a macro for cgtimer_time +- Use the reentrant cgsleep functions for usecps in usbutils. +- TimeBeginPeriod and TimeEndPeriod do not add significant overhead when run the +entire time for cgminer so avoid trying to maintain balanced numbers of them for +specific time calls to simplify code. +- Replace all references to the old n*sleep functions with the equivalent +cgsleep_*s replacements. +- timeGetTime uses huge resources on windows so revert to using timevals for its +implementation of cgtimer_t +- Quotient/remainder error in ms division. +- Only grab a queued work item if we successfully grab the lock to submit work +in bflsc_send_work +- BTB get version from Firmware +- Carve out the unused portions of sha2 implementation. +- Import Aaron D. Gifford's fast sha256 implementation. +- Increase the que_low watermarks on BFLSC for they are too low to keep the +device busy on scanwork loops. +- Provide cgtimer_to_timeval helper functions. +- Provide a timeval_to_cgtime helper function to reuse values. +- Check for thr->work_restart in restart_wait. +- We should be using que_low to decrease scan sleep time in bflsc. +- Prepare sleep time on bflsc if no dev needs work yet to avoid busy waiting. +- Simplify cgsleep code for windows by using a typedef for cgtimer_t that +resolves to clock resolution, using that internally. +- On windows use the higher accuracy timegettime function to really get 1ms +clock and timer accuracy. +- Use the cgsleep reentrant function to sleep for bflsc between read results to +account for time taken to perform reads. +- Use 100ms delay between checking for results on all bflsc devices as the +buffering of results mean checking more frequently just wastes CPU and causes +more lock contention for only marginally better latencies. +- Fix missed endtimeperiod in overrun timer on windows. +- Make cgsleep_us_r take an int64_t for us. +- Make the cgsleep functions build on windows. +- Use the cgsleep reentrant function in avalon_send_task. +- Use the reentrant cgsleep functions within the avalon_send_tasks function. +- Set high resolution timing on windows within the cgsleep functions. +- Use the reentrant cgsleep function to time sleeps on reading from avalon. +- Provide reentrant versions of cgsleep functions to allow start time to be set +separately from the beginning of the actual sleep, allowing scheduling delays to +be counted in the sleep. +- Make the nmsleep and nusleep functions use the new cgsleep functions +internally till functions are migrated to the new cgsleep API. +- Add a ms_to_timespec helper function, and create a cgsleep_ms function that +uses absolute timers with clock_nanosleep to avoid overruns. +- Add rt lib linkage to enable use of clock_nanosleep functions with older +glibc. +- Add necessary time header include to avalon driver. +- Do a sleep of the full duration it would take to do all the work using +clock_nanosleep in avalon_send_tasks to avoid sleep overruns before polling to +see if it's ready. +- Add a timeraddspec helper function. +- Provide a us_to_timespec helper function. +- Use the us_to_timeval helper function in the avalon driver. +- Provide a us_to_timeval helper function. +- Use timeval_to_spec helper in avalon driver. +- Add helper functions to convert timespec to timeval and vice versa. +- simplifying buffer full check +- forking bitburner write thread function +- making sure original Avalon is unaffected by BitBurner changes +- changes to queueing strategy for BitBurner boards +- Do not poll in avalon_get_results without sleeping if we have finished parsing +a full result. +- Add c to ambient temperature display for avalon driver. +- BTB allow up to 1400mV as per firmware limits +- avalon for timeout allow d='calculate it' and fix uninitialised +- Use cloned work when finding avalon results since another thread can discard +the work item while it's in use. +- Provide a variant of find_work_bymidstate that returns a clone of the found +work. + + Version 3.3.4 - 14th August 2013 - API/miner.php add some % fields - Nonce2 stratum submission is not working with nonce2 lengths >4, revert the buggy __bin2hex function and use bin2hex. -- The write thread in avalon is only ever actually woken up by timeout so remove +- The write thread in avalon is only ever actually woken up by timeout so remove the write semaphore and use a simple sleep poll. - Fix warning. - Interrupting reads on the avalon to start writes loses data so remove the @@ -48,7 +142,7 @@ before downgrading the lock. working at all via config files. - Cache the hex2bin of pool nonce1 in stratum, avoiding hex2bin on each work generation. -- Cache the binary generation of coinbase1 and 2 on stratum, avoiding a hex2bin +- Cache the binary generation of coinbase1 and 2 on stratum, avoiding a hex2bin of coinbase1 and 2 on each work generation. - cgsem - increase information on failure - avalon init write_sem before use @@ -59,7 +153,7 @@ of coinbase1 and 2 on each work generation. - Fix uninit variable warnings. - usbutils - force check every combination - Fix warning. -- Recreate curses windows on windows when a device is hotplugged to allow window +- Recreate curses windows on windows when a device is hotplugged to allow window resizing without crashing. - Update copyright notice. - Limit intensity range according to whether scrypt is in use or not. @@ -100,11 +194,11 @@ waited to avoid a 60 second wait dropping to 1 second due to a blocked socket. - size check get_datestamp/get_timestamp and remove unused cgpu->init - make all statline overflow safe - WU only needs +2 width -- Check for a timeout in avalon_scanhash and post to the write sem if we receive +- Check for a timeout in avalon_scanhash and post to the write sem if we receive one. -- Decay result count in avalon more slowly to not falsely detect idle periods as +- Decay result count in avalon more slowly to not falsely detect idle periods as low result return rates. -- Count the number of miners idled in avalon to account more accurately for when +- Count the number of miners idled in avalon to account more accurately for when its result return rate is too low. - Fix potential dereference when starting avalon with all new work. - Convert the decay_time function into one that truly creates an exponentially @@ -113,18 +207,18 @@ decaying average over opt_log_interval. settings if the fanspeed has reached maximum. - Reinstate more aggressive <2% HW error target for avalon-auto - Set avalon fan min and fan max to PWM values instead of percentage. -- Provide an --avalon-freq command line to give a valid range of frequencies for +- Provide an --avalon-freq command line to give a valid range of frequencies for avalon in auto mode. - Set the avalon idle frequency to lowest if avalon auto is enabled and we have an overheat condition. - Decrease avalon frequency in auto mode if we are unable to maintain the temperature in the optimal range. - Don't count invalid nonces as hashrate for bflsc. -- Use a more conservative upper limit of 1% for hardware errors with avalon auto +- Use a more conservative upper limit of 1% for hardware errors with avalon auto frequency. -- Allow the avalon fanspeed range to be passed as parameter on the command line, +- Allow the avalon fanspeed range to be passed as parameter on the command line, default to 20-100% -- Just display A: and R: for difficulty accepted and rejected to preserve screen +- Just display A: and R: for difficulty accepted and rejected to preserve screen real estate and decrease decimal places for WU. - correct device DR: and remove global U: - Update all screen A/R to instead use DA/DR and device U to WU