3.0 Changelog

From ChronOS Linux

(Difference between revisions)
Jump to: navigation, search
(Created page with 'Changes made between Beta 2.8 and 3.0. ==Kernel== * Moved from kernel version 2.6.33.9 to 3.0.14, and updated to the rt31 version of the PREEMPT_RT patch. * Allow processes to e…')
m
 
(11 intermediate revisions not shown)
Line 1: Line 1:
-
Changes made between Beta 2.8 and 3.0.
+
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.14, and updated to the rt31 version of the PREEMPT_RT patch.
+
* 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.
* Allow processes to exit gracefully, even if inside a real-time segment.
-
* Make MCS Lock implementation generic.
+
* Ported to ARM architecture.
-
* Port 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 11: 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)
Personal tools