Update NEWS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
diff --git a/NEWS b/NEWS
index 0e93140..ae1a402 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