3.0 Changelog
From ChronOS Linux
(Difference between revisions)
m |
m |
||
(9 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | + | The changes made between Beta 2.8 and 3.0 follow. ChronOS 3.0 is a fairly major release, including a rebase to a new kernel, solidifying code which had to change with the move to the different kernel version, and many bug fixes and many new userspace features and improvements. | |
==Kernel== | ==Kernel== | ||
- | * Moved from kernel version 2.6.33.9 to 3.0. | + | * Moved from kernel version 2.6.33.9 to 3.0.24, and updated to the 3.0.24-rt42 version of the PREEMPT_RT patch. |
- | * Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0. | + | * Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.24 kernels. |
* Allow processes to exit gracefully, even if inside a real-time segment. | * Allow processes to exit gracefully, even if inside a real-time segment. | ||
- | * | + | * Ported to ARM architecture. |
- | * | + | ** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions. |
+ | * Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely). | ||
+ | * Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name. | ||
+ | * United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled. | ||
==Userspace== | ==Userspace== | ||
Line 12: | Line 15: | ||
** Remove dependence on QT | ** Remove dependence on QT | ||
** Add three timing methods: WCET, average-case, and timer-polling. | ** Add three timing methods: WCET, average-case, and timer-polling. | ||
+ | ** Add array-walk (forwards, backwards, and random), linked list and BST traversal workloads for memory-intensive testing. | ||
** Improve accuracy of slope-generation mechanism. | ** Improve accuracy of slope-generation mechanism. | ||
+ | ** Add ability to configure groups of threads, which all share memory, and allow that working set size to be configurable via the taskset files. | ||
* Ported to ARM (fixed several overflow and type issues) | * Ported to ARM (fixed several overflow and type issues) |
Current revision as of 03:31, 21 March 2012
The changes made between Beta 2.8 and 3.0 follow. ChronOS 3.0 is a fairly major release, including a rebase to a new kernel, solidifying code which had to change with the move to the different kernel version, and many bug fixes and many new userspace features and improvements.
Kernel
- Moved from kernel version 2.6.33.9 to 3.0.24, and updated to the 3.0.24-rt42 version of the PREEMPT_RT patch.
- Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.24 kernels.
- Allow processes to exit gracefully, even if inside a real-time segment.
- Ported to ARM architecture.
- Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.
- Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).
- Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name.
- United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled.
Userspace
- Re-wrote entire sched_test_app for better modularity, portability, and expandability.
- Remove dependence on QT
- Add three timing methods: WCET, average-case, and timer-polling.
- Add array-walk (forwards, backwards, and random), linked list and BST traversal workloads for memory-intensive testing.
- Improve accuracy of slope-generation mechanism.
- Add ability to configure groups of threads, which all share memory, and allow that working set size to be configurable via the taskset files.
- Ported to ARM (fixed several overflow and type issues)