This is the mail archive of the
ecos-cvs@sourceware.org
mailing list for the ecos project.
ecos/packages/kernel/current ChangeLog cdl/ker ...
- From: nickg at sourceware dot org
- To: ecos-cvs at ecos dot sourceware dot org
- Date: 8 Jan 2007 16:20:14 -0000
- Subject: ecos/packages/kernel/current ChangeLog cdl/ker ...
CVSROOT: /cvs/ecos
Module name: ecos
Changes by: nickg@sourceware.org 2007-01-08 16:20:14
Modified files:
packages/kernel/current: ChangeLog
packages/kernel/current/cdl: kernel.cdl
packages/kernel/current/include: bitmap.hxx kapidata.h
mlqueue.hxx
packages/kernel/current/src/sched: mlqueue.cxx sched.cxx
packages/kernel/current/tests: timeslice.c tm_basic.cxx
Added files:
packages/kernel/current/tests: timeslice2.c
Log message:
* src/sched/mlqueue.cxx (add_thread, yield):
* src/sched/sched.cxx (unlock_inner, thread_entry):
* include/mlqueue.hxx (class Cyg_SchedThread_Implementation):
* include/kapidata.h (CYG_SCHEDTHREAD_TIMESLICE_MEMBER):
* include/bitmap.hxx (class Cyg_SchedThread_Implementation):
Reimplement timeslicing code. There is now a timeslice_count field
in each thread which is moved to and from the per-CPU counter
during thread dispatch. This approach has been taken to minimize
the changes needed to SMP code. Scheduler specific thread
functions handle counter save, restore and reset. These functions
are defined (as empty inlines) even when timeslicing is disabled,
or in non-timeslicing schedulers, to avoid adding ifdefs to the
code (this change actually removes some).
* tests/timeslice2.c:
* cdl/kernel.cdl: Added timeslice2 test to test behaviour of
timeslicing while being preempted.