Mercurial > nand-ecoscentric
comparison packages/kernel/current/ChangeLog @ 115:6ed91473a1cd ecos-sw-2000-08-21
Merge from eCos master repository on 2000-08-21-22:40:54-BST
| author | jlarmour |
|---|---|
| date | Fri, 25 Aug 2000 17:32:38 +0000 |
| parents | 02ea4320376c |
| children | 0ec04793409a |
comparison
equal
deleted
inserted
replaced
| 114:5ad2b71d525e | 115:6ed91473a1cd |
|---|---|
| 1 2000-08-17 Hugo Tyson <hmt@cygnus.co.uk> | |
| 2 | |
| 3 * src/sched/sched.cxx (unlock_inner): Move an assert to some place | |
| 4 where it's true *all* the time! There was a narrow margin where a | |
| 5 DSR could confuse unlock_inner() by reanimating the current thread | |
| 6 before it had a chance to sleep - hence the call appears to be | |
| 7 pointless. Putting the assert before the DSR calls makes sense. | |
| 8 | |
| 9 * include/mboxt.inl: | |
| 10 * src/sync/bin_sem.cxx: | |
| 11 * src/sync/cnt_sem.cxx: | |
| 12 * src/sync/flag.cxx: | |
| 13 * src/sync/mutex.cxx: | |
| 14 All of these now use Cyg_Scheduler::reschedule() rather than an | |
| 15 unlock/lock pair to yield in their functions which can sleep. | |
| 16 They therefore can be called safely and atomically with the | |
| 17 scheduler already locked. This is a Good Thing[tm]. Since the | |
| 18 network stack synch primitives now use this feature, the asserts | |
| 19 that the scheduler was not locked must disappear: this change. | |
| 20 | |
| 21 | |
| 22 2000-08-07 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 23 | |
| 24 * include/mutex.hxx (class Cyg_Mutex): Add comment explaining | |
| 25 presence of locked. | |
| 26 | |
| 27 2000-08-04 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 28 | |
| 29 * tests/stress_threads.c (STACK_SIZE_HANDLER): Increase stack sizes | |
| 30 otherwise it crashes! | |
| 31 | |
| 32 2000-07-31 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 33 | |
| 34 * include/mempolt2.hxx: As per change of 2000-07-04, also delete - left | |
| 35 behind accidentally | |
| 36 | |
| 37 2000-07-20 Nick Garnett <nickg@cygnus.co.uk> | |
| 38 | |
| 39 * include/mutex.hxx (class Cyg_Mutex): Added get_ceiling() | |
| 40 accessor function. | |
| 41 | |
| 42 * src/sched/mlqueue.cxx: Fixed bug in sorted queue code that | |
| 43 resulted in an infinite loop if the thread being inserted is of | |
| 44 lower priority than all threads in the queue. This case is now | |
| 45 detected early. | |
| 46 | |
| 1 2000-07-17 Gary Thomas <gthomas@redhat.com> | 47 2000-07-17 Gary Thomas <gthomas@redhat.com> |
| 2 | 48 |
| 3 * tests/kflag1.c (FIRST_THREAD_WAIT_TIME): Parameterize thread | 49 * tests/kflag1.c (FIRST_THREAD_WAIT_TIME): Parameterize thread |
| 4 synchronization wait times (for understanding) and adjust for | 50 synchronization wait times (for understanding) and adjust for |
| 5 incredibly slow platforms. [Previous value allowed for the test | 51 incredibly slow platforms. [Previous value allowed for the test |
| 6 to get out of sync because the code ran so slowly] | 52 to get out of sync because the code ran so slowly] |
| 7 | 53 |
| 54 2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 55 | |
| 56 * cdl/kernel.cdl: Remove all configury related to memory allocators, | |
| 57 including tests. Make CYGFUN_KERNEL_API_C require CYGFUN_MEMALLOC_KAPI | |
| 58 | |
| 59 * include/memfixed.hxx, include/mempolt2.inl, include/mempoolt.hxx, | |
| 60 include/mempoolt.inl, include/memvar.hxx, include/mfiximpl.hxx, | |
| 61 include/mfiximpl.inl, include/mvarimpl.hxx, include/mvarimpl.inl, | |
| 62 src/mem/memfixed.cxx, src/mem/memvar.cxx, tests/kmemfix1.c, | |
| 63 tests/kmemvar1.c, tests/memfix1.cxx, tests/memfix2.cxx, | |
| 64 tests/memvar1.cxx, tests/memvar2.cxx: | |
| 65 Move to separate memory allocator package CYGPKG_MEMALLOC | |
| 66 | |
| 67 * include/kapi.h, include/kapidata.h, src/common/kapi.cxx: | |
| 68 Remove memory allocator functionality - now implemented in | |
| 69 CYGPKG_MEMALLOC | |
| 70 | |
| 71 * tests/dhrystone.c: | |
| 72 Update configuration dependencies for new isoinfra design | |
| 73 * tests/stress_threads.c: | |
| 74 Likewise. | |
| 75 Also fix early termination after DEATH_TIME_LIMIT so that | |
| 76 allocated resources are freed, and so more appropriate | |
| 77 statistics are reported | |
| 78 Also update to use mallinfo() interface to memory allocator | |
| 79 | |
| 8 2000-06-23 Hugo Tyson <hmt@cygnus.co.uk> | 80 2000-06-23 Hugo Tyson <hmt@cygnus.co.uk> |
| 9 | 81 |
| 10 * include/kapi.h (cyg_scheduler_read_lock): New function, to | 82 * include/kapi.h (cyg_scheduler_read_lock): New function, to |
| 11 return the value of the scheduler lock; this for implementing SPLX | 83 return the value of the scheduler lock; this for implementing SPLX |
| 12 in the network stack. | 84 in the network stack. |
| 13 | 85 |
| 14 * src/common/kapi.cxx (cyg_scheduler_read_lock): New function. | 86 * src/common/kapi.cxx (cyg_scheduler_read_lock): New function. |
| 15 | 87 |
| 88 2000-06-20 Nick Garnett <nickg@cygnus.co.uk> | |
| 89 | |
| 90 * src/sched/mlqueue.cxx (Cyg_ThreadQueue_Implementation::enqueue): | |
| 91 Rewrote code to insert threads into priority sorted queue. The | |
| 92 original code could not cope with a queue all of whose members | |
| 93 were lower priority than the new thread - it looped for ever. Also | |
| 94 provided fast paths for common and easily detected cases such as | |
| 95 adding to a single element queue and adding at the front. By | |
| 96 taking these cases out early, we can also simplify the code to | |
| 97 search the queue. | |
| 98 | |
| 16 2000-06-16 Gary Thomas <gthomas@redhat.com> | 99 2000-06-16 Gary Thomas <gthomas@redhat.com> |
| 17 | 100 |
| 18 * cdl/kernel.cdl: Remove exception tests for CMA230 - not supported | 101 * cdl/kernel.cdl: Remove exception tests for CMA230 - not supported |
| 19 by hardware. | 102 by hardware. |
| 20 | 103 |
| 21 2000-06-16 Jesper Skov <jskov@redhat.com> | 104 2000-06-16 Jesper Skov <jskov@redhat.com> |
| 22 | 105 |
| 23 * src/intr/intr.cxx (chain_isr): Only call default_isr if no isrs | 106 * src/intr/intr.cxx (chain_isr): Only call default_isr if no isrs |
| 24 in the chain reacted to the interrupt. | 107 in the chain reacted to the interrupt. |
| 25 | 108 |
| 109 2000-06-15 Nick Garnett <nickg@cygnus.co.uk> | |
| 110 | |
| 111 * include/mutex.hxx (class Cyg_Condition_Variable): Added an | |
| 112 inline function, get_queue(), to return a pointer to the | |
| 113 underlying thread queue. To be used mainly for comparing with a | |
| 114 thread's current queue to decide whether it is waiting for a | |
| 115 condition variable. | |
| 116 | |
| 117 * include/kapi.h: | |
| 118 * src/common/kapi.cxx: | |
| 119 Changed return type of cyg_semaphore_wait() to match existing | |
| 120 behaviour of Cyg_Counting_Semaphore::wait(). | |
| 121 Changed return type of cyg_cond_wait() to match new behaviour of | |
| 122 Cyg_Condition_Variable::wait(). | |
| 123 | |
| 124 2000-06-09 Nick Garnett <nickg@cygnus.co.uk> | |
| 125 | |
| 126 * include/mutex.hxx: | |
| 127 * src/sync/mutex.cxx: | |
| 128 Modified non-timeout condition variable wait() API to return | |
| 129 cyg_bool. A true result indicates that the wait() terminated | |
| 130 normally. A false result indicates that the wait() was terminated | |
| 131 as a result of a release() or destroy operation. For most uses | |
| 132 this distinction is irrelevant, but in some situations it is a | |
| 133 useful bit of information to have. | |
| 134 Also modified timeout condition variable wait to reacquire the | |
| 135 mutex under all circumstances. This is the correct and consistent | |
| 136 thing to do. | |
| 137 | |
| 26 2000-06-08 Jesper Skov <jskov@redhat.com> | 138 2000-06-08 Jesper Skov <jskov@redhat.com> |
| 27 | 139 |
| 28 * src/debug/dbg-thread-demux.c: Use generic HAL feature to allow | 140 * src/debug/dbg-thread-demux.c: Use generic HAL feature to allow |
| 29 ROM/RAM intercalling. | 141 ROM/RAM intercalling. |
| 30 | 142 |
| 31 2000-05-30 Gary Thomas <gthomas@redhat.com> | 143 2000-05-30 Gary Thomas <gthomas@redhat.com> |
| 32 | 144 |
| 33 * tests/dhrystone.c: Increase number of test loops for faster | 145 * tests/dhrystone.c: Increase number of test loops for faster |
| 34 StrongARM platforms. | 146 StrongARM platforms. |
| 147 | |
| 148 2000-05-22 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 149 | |
| 150 * cdl/scheduler.cdl (CYGIMP_KERNEL_SCHED_SORTED_QUEUES): Disable by | |
| 151 default | |
| 152 | |
| 153 * src/sched/mlqueue.cxx (enqueue): Add to end of thread queue even | |
| 154 when not priority ordered | |
| 155 | |
| 156 2000-05-20 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 157 | |
| 158 * include/mqueue.hxx, include/mqueue.inl: | |
| 159 Add POSIX-style message queue implementation | |
| 160 | |
| 161 * cdl/kernel.cdl: Add mqueue1 test | |
| 162 * cdl/scheduler.cdl: Add new CYGIMP_KERNEL_SCHED_SORTED_QUEUES option | |
| 163 | |
| 164 * include/sema.hxx: Need thread.inl header, not just thread.hxx | |
| 165 Make Cyg_Counting_Semaphore::peek() const since it is | |
| 166 | |
| 167 * src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, include/sema2.hxx: | |
| 168 Make Cyg_Counting_Semaphore{2}::peek() const since it is | |
| 169 | |
| 170 * include/thread.hxx: don't want Cyg_Thread_queue::empty() to be marked | |
| 171 inline in the class def, otherwise we get warnings elsewhere | |
| 172 | |
| 173 * include/mlqueue.hxx (Cyg_ThreadQueue_Implementation): | |
| 174 Add set_thread_queue private method | |
| 175 Add derived class Cyg_SchedulerThreadQueue_Implementation, and | |
| 176 make scheduler implementation use it instead of | |
| 177 Cyg_ThreadQueue_Implementation | |
| 178 | |
| 179 * src/mlqueue.cxx: Fix typo | |
| 180 Support CYGIMP_KERNEL_SCHED_SORTED_QUEUES, i.e. allow insertion | |
| 181 into thread queue in order of thread priority, with oldest at the | |
| 182 front | |
| 183 (Cyg_ThreadQueue_Implementation::set_thread_queue): Add | |
| 184 (Cyg_SchedulerThreadQueue_Implementation::enqueue): Add, like old | |
| 185 one, except make it FIFO instead of LIFO by inserting at end of queue | |
| 35 | 186 |
| 36 2000-05-15 Jonathan Larmour <jlarmour@redhat.co.uk> | 187 2000-05-15 Jonathan Larmour <jlarmour@redhat.co.uk> |
| 37 | 188 |
| 38 * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY): | 189 * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY): |
| 39 Default to CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY | 190 Default to CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY |
| 49 | 200 |
| 50 * tests/kintr0.c: | 201 * tests/kintr0.c: |
| 51 * tests/intr0.cxx: Correct test for cases when VSR_MIN or | 202 * tests/intr0.cxx: Correct test for cases when VSR_MIN or |
| 52 ISR_MIN are not zero (bad assumption). | 203 ISR_MIN are not zero (bad assumption). |
| 53 | 204 |
| 205 2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk> | |
| 206 | |
| 207 * cdl/thread.cdl (CYGNUM_KERNEL_THREADS_DATA_LIBC): Don't need libc | |
| 208 slot. Replace with CYGNUM_KERNEL_THREADS_DATA_ERRNO slot instead. | |
| 209 | |
| 210 2000-04-28 Nick Garnett <nickg@cygnus.co.uk> | |
| 211 | |
| 212 * src/sched/sched.cxx (unlock_inner): | |
| 213 A significant change to the behaviour of this function. The | |
| 214 new_lock argument contains the value that the scheduler lock | |
| 215 should have after this function has completed. If it is zero then | |
| 216 the lock is being released and some extra work (running ASRs, | |
| 217 checking for DSRs) is done before returning. If it is non-zero | |
| 218 then it must equal the current value of the lock, and is used to | |
| 219 indicate that we want to reacquire the scheduler lock before | |
| 220 returning. This latter option only makes any sense if the current | |
| 221 thread is no longer runnable, otherwise this function will do | |
| 222 nothing. | |
| 223 | |
| 224 The result of this is that where we used to "blip" the scheduler | |
| 225 lock to force a sleep, we now call reschedule(), which calls | |
| 226 unlock_inner() with the current sched_lock value. The important | |
| 227 difference is that there is not now the brief window between the | |
| 228 calls where the lock is unclaimed. It also prevents ASRs being run | |
| 229 at inopportune moments. In future this will also allow us to force | |
| 230 threads to sleep even when they are deeply nested in the scheduler | |
| 231 lock. | |
| 232 | |
| 233 * include/mutex.hxx: | |
| 234 Added Cyg_Mutex::get_owner() to return pointer to owning thread. | |
| 235 | |
| 236 * include/sched.hxx: | |
| 237 * include/sched.inl: | |
| 238 Added new_lock argument to unlock_inner(), added reschedule(). | |
| 239 Made set_asr_inhibit() and clear_asr_inhibit() available even when | |
| 240 ASRs are disabled. | |
| 241 | |
| 242 * include/mboxt.inl: | |
| 243 * src/sync/bin_sem.cxx: | |
| 244 * src/sync/cnt_sem.cxx: | |
| 245 * src/sync/flag.cxx: | |
| 246 * src/sync/mutex.cxx: | |
| 247 Converted instances of "blipping" the scheduler lock into calls to | |
| 248 Cyg_Scheduler::reschedule(), which is better behaved. Some calls | |
| 249 to set_asr_inhibit() and clear_asr_inhibit() also added in various | |
| 250 places. | |
| 251 | |
| 54 2000-04-26 Jesper Skov <jskov@redhat.com> | 252 2000-04-26 Jesper Skov <jskov@redhat.com> |
| 55 | 253 |
| 56 * tests/kcache1.c: Also to flush testing with unified caches. | 254 * tests/kcache1.c: Also to flush testing with unified caches. |
| 57 | 255 |
| 58 2000-04-26 Jesper Skov <jskov@redhat.com> | 256 2000-04-26 Jesper Skov <jskov@redhat.com> |
| 69 2000-04-19 Jesper Skov <jskov@cygnus.co.uk> | 267 2000-04-19 Jesper Skov <jskov@cygnus.co.uk> |
| 70 | 268 |
| 71 * tests/clockcnv.cxx: | 269 * tests/clockcnv.cxx: |
| 72 * tests/dhrystone.c: | 270 * tests/dhrystone.c: |
| 73 Only a few laps around the block on the v850... | 271 Only a few laps around the block on the v850... |
| 272 | |
| 273 2000-04-13 Nick Garnett <nickg@cygnus.co.uk> | |
| 274 | |
| 275 * include/clock.hxx: | |
| 276 * src/common/clock.cxx: | |
| 277 Added Cyg_Alarm::get_times() member function to allow reading of | |
| 278 trigger and interval values from an alarm. | |
| 279 | |
| 280 2000-04-12 Nick Garnett <nickg@cygnus.co.uk> | |
| 281 | |
| 282 * include/sched.hxx: | |
| 283 * src/sched/sched.cxx: | |
| 284 Added ASR support. | |
| 285 | |
| 286 * include/thread.hxx: | |
| 287 Made Cyg_ThreadQueue::empty() an inline in class definition. | |
| 288 | |
| 289 * src/common/thread.cxx: | |
| 290 Added CYG_REPORT_FUNCTION() to Cyg_Thread::exit(). | |
| 291 | |
| 292 * include/kapidata.h: | |
| 293 Brought thread structures up to date with kernel objects. | |
| 294 | |
| 295 * cdl/thread.cdl: | |
| 296 * cdl/scheduler.cdl: | |
| 297 Added ASR configuration, minor tidies. | |
| 74 | 298 |
| 75 2000-04-12 Gary Thomas <gthomas@redhat.com> | 299 2000-04-12 Gary Thomas <gthomas@redhat.com> |
| 76 | 300 |
| 77 * src/common/kapi.cxx (cyg_scheduler_safe_lock): | 301 * src/common/kapi.cxx (cyg_scheduler_safe_lock): |
| 78 * include/kapi.h: Add 'cyg_scheduler_safe_lock()' function. | 302 * include/kapi.h: Add 'cyg_scheduler_safe_lock()' function. |
| 81 | 305 |
| 82 * cdl/interrupts.cdl: | 306 * cdl/interrupts.cdl: |
| 83 * cdl/scheduler.cdl: | 307 * cdl/scheduler.cdl: |
| 84 * cdl/counters.cdl: | 308 * cdl/counters.cdl: |
| 85 Don't let interfaces define anything. | 309 Don't let interfaces define anything. |
| 310 | |
| 311 2000-04-07 Nick Garnett <nickg@cygnus.co.uk> | |
| 312 | |
| 313 * include/sched.hxx: | |
| 314 * include/thread.inl: | |
| 315 * src/sync/mutex.cxx: | |
| 316 * src/sched/sched.cxx: | |
| 317 * src/common/thread.cxx: | |
| 318 General reorganization of priority inversion protocol support, | |
| 319 addition of priority ceiling protocol. | |
| 320 | |
| 321 * include/mlqueue.hxx: | |
| 322 * src/sched/mlqueue.cxx: | |
| 323 Added timeslicing enable support. | |
| 324 | |
| 325 * cdl/thread.cdl: | |
| 326 * cdl/synch.cdl: | |
| 327 Reorganized priority inversion protocol configuration to permit | |
| 328 different protocols and dynamic choice. Added configuration for | |
| 329 condition variables to use a user-specified mutex. | |
| 330 | |
| 331 * cdl/scheduler.cdl: | |
| 332 Added dynamic timeslicing enable option. | |
| 333 | |
| 334 * include/kapidata.h: | |
| 335 Adjusted to match changes in other header files. | |
| 336 | |
| 337 * tests/mutex3.cxx: | |
| 338 * tests/sync3.cxx: | |
| 339 Modified these tests to match new priority inversion protocols | |
| 340 configuration options. | |
| 86 | 341 |
| 87 2000-03-28 John Dallaway <jld@cygnus.co.uk> | 342 2000-03-28 John Dallaway <jld@cygnus.co.uk> |
| 88 | 343 |
| 89 * cdl/counters.cdl, | 344 * cdl/counters.cdl, |
| 90 cdl/interrupts.cdl, | 345 cdl/interrupts.cdl, |
