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,