Commit Graph

1580 Commits

Author SHA1 Message Date
Sebastian Huber
d20b029af9 doc: Add SMP glossary 2014-05-05 08:26:27 +02:00
Ralf Kirchner
0832ca7dc3 doc: Extend documentation for unlimited objects
Mark POSIX Keys and POSIX Key Value Pairs as supported.
Add list of unsupported object classes.
Add hint to unified work areas.
Add example.
2014-04-30 08:29:55 +02:00
Sebastian Huber
7c0bd74c87 sparc: Add _CPU_Get_current_per_CPU_control()
Use register g6 for the per-CPU control of the current processor.  The
register g6 is reserved for the operating system by the SPARC ABI.  On
Linux register g6 is used for a similar purpose with the same method
since 1996.

The register g6 must be initialized during system startup and then must
remain unchanged.

Since the per-CPU control is used in all critical sections of the
operating system, this is a performance optimization for the operating
system core procedures.  An additional benefit is that the low-level
context switch and interrupt processing code is now identical on non-SMP
and SMP configurations.
2014-04-28 09:26:19 +02:00
Sebastian Huber
3fe1e4308a sparc: Document register g7 usage 2014-04-28 09:26:19 +02:00
Sebastian Huber
b2ec2d1597 sparc: Optimize context switch
The registers g2 through g4 are reserved for applications.  GCC uses
them as volatile registers by default.  So they are treated like
volatile registers in RTEMS as well.
2014-04-28 09:26:19 +02:00
Sebastian Huber
d60e760e80 bsps: Fix TLS support in linker command files
The TLS section symbols had wrong values in case of an empty TLS data
section and a nonempty TLS BSS section.
2014-04-22 09:51:17 +02:00
Sebastian Huber
fab2f1885c doc: Setting Affinity to a Single Processor 2014-04-22 08:34:45 +02:00
Sebastian Huber
320faf8e68 score: Clarify TLS support 2014-04-17 08:06:40 +02:00
Sebastian Huber
10e613ba52 doc: Typo 2014-04-17 08:06:39 +02:00
Sebastian Huber
f8300293ae doc: rtems_task_set_scheduler() 2014-04-17 08:06:39 +02:00
Sebastian Huber
babb1a2ce8 doc: rtems_task_get_scheduler() 2014-04-17 08:06:39 +02:00
Sebastian Huber
d1f2f222d2 doc: rtems_scheduler_get_processor_set() 2014-04-17 08:06:39 +02:00
Sebastian Huber
89c1a21f9c doc: rtems_scheduler_ident() 2014-04-17 08:06:38 +02:00
Sebastian Huber
ed859d514a doc: rtems_task_set_affinity() 2014-04-17 08:06:38 +02:00
Sebastian Huber
2be51ccf6e doc: rtems_task_get_affinity() 2014-04-17 08:06:38 +02:00
Sebastian Huber
4a93980a14 doc: rtems_get_current_processor() 2014-04-17 08:06:38 +02:00
Sebastian Huber
6809383d76 doc: rtems_get_processor_count() 2014-04-17 08:06:38 +02:00
Sebastian Huber
c5831a3f9a score: Add clustered/partitioned scheduling
Clustered/partitioned scheduling helps to control the worst-case
latencies in the system.  The goal is to reduce the amount of shared
state in the system and thus prevention of lock contention.  Modern
multi-processor systems tend to have several layers of data and
instruction caches.  With clustered/partitioned scheduling it is
possible to honour the cache topology of a system and thus avoid
expensive cache synchronization traffic.

We have clustered scheduling in case the set of processors of a system
is partitioned into non-empty pairwise-disjoint subsets.  These subsets
are called clusters.  Clusters with a cardinality of one are partitions.
Each cluster is owned by exactly one scheduler instance.
2014-04-15 10:41:44 +02:00
Sebastian Huber
133d54c55e score: Add scheduler name 2014-04-15 08:37:12 +02:00
Sebastian Huber
e1598a616d score: Static scheduler configuration
Do not allocate the scheduler control structures from the workspace.
This is a preparation step for configuration of clustered/partitioned
schedulers on SMP.
2014-04-15 08:37:11 +02:00
Sebastian Huber
263f4becea score: Statically initialize IO manager
This simplifies the RTEMS initialization and helps to avoid a memory
overhead.  The workspace demands of the IO manager were not included in
the <rtems/confdefs.h> workspace size estimate.  This is also fixed as a
side-effect.

Update documentation and move "Specifying Application Defined Device
Driver Table" to the section end.  This sub-section is not that
important for the user.  Mentioning this at the beginning may lead to
confusion.
2014-04-10 12:37:40 +02:00
Sebastian Huber
3a4d28a8c3 documentation: Clarify 2014-04-10 12:34:00 +02:00
Sebastian Huber
d61f550246 documentation: Move CONFIGURE_MAXIMUM_DEVICES
Move CONFIGURE_MAXIMUM_DEVICES documentation to "File System
Configuration Parameters".  This define has nothing to do with the
device driver table.
2014-04-10 11:52:22 +02:00
Joel Sherrill
d507c03731 Disable per task variables when SMP is enabled
Per task variables are inherently unsafe in SMP systems. This
patch disables them from the build and adds warnings in the
appropriate documentation and configuration sections.
2014-04-04 14:27:27 -05:00
Christian Mauderer
5c0c0cf2a6 privateenv: Use POSIX keys instead of task variables. 2014-03-27 14:50:36 +01:00
Joel Sherrill
8cc7084c2c doc misc: Building again and updates
Remove references to Cygnus
Fix issues introduced in previous edits
2014-03-21 08:53:31 -05:00
Joel Sherrill
4c36cd5b71 relnotes/intro.texi: Change rtems.com to rtems.org and update 2014-03-20 16:20:29 -05:00
Joel Sherrill
98fd4153b4 relnotes/status.texi: Update to Bugzilla 2014-03-20 16:20:21 -05:00
Joel Sherrill
0b7e5f7510 HELP.html Makefile.am: Remove unused HELP.html 2014-03-20 16:18:34 -05:00
Joel Sherrill
0dd02c6876 cpright.texi: Update to reflect services and community 2014-03-20 16:17:24 -05:00
Joel Sherrill
a86d13a57d texi2html_init.in: Reword rtems.com to rtems.org 2014-03-20 16:16:41 -05:00
Joel Sherrill
f5bbc042d9 started/buildc.t: Change CVS to Git 2014-03-20 16:16:39 -05:00
Joel Sherrill
df40cc9016 started/buildrt.t: Change CVS to Git 2014-03-20 16:16:02 -05:00
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Christian Mauderer
6cd4a5ca2e cpukit/shell: Replace task variables with posix keys.
Use posix keys for current shell environment instead of task variables. With
this patch the shell needs one posix-key and one posix-key-value-pair
configured.

Update documentation for the shell.

Adapt samples/fileio:
- Add necessary objects.
- Add login function and custom device name for better testing of the shell.
2014-03-20 09:10:26 +01:00
Sebastian Huber
0bf59cf0ae Add documentation for profiling 2014-03-14 08:46:51 +01:00
Joel Sherrill
2aeeaa00f9 doc: Improve description of rtems_status_text for ToC 2014-03-11 19:04:06 -05:00
Joel Sherrill
89e72a80c9 smp.t: Add Background and Operation Sections 2014-03-11 19:03:53 -05:00
Joel Sherrill
d46ab11bcd Classic API Users Guide: Add SMP and affinity services.
This patch adds the initial version of the SMP chapter to the Users Guide.
2014-03-11 16:27:57 -05:00
Joel Sherrill
4013d25bc2 POSIX Users Guide: Add thread affinity services. 2014-03-11 16:27:57 -05:00
Joel Sherrill
30d1176618 stackchk.t task.t: Change can not to cannot for consistency 2014-03-11 16:27:57 -05:00
Joel Sherrill
48198f1b35 cpright.texi: Update to 2014. 2014-03-11 16:27:56 -05:00
Joel Sherrill
653ed5e151 gen_section: Update for use with new SMP chapters. 2014-03-11 13:21:47 -05:00
Sebastian Huber
24bf11eca1 score: Add CPU counter support
Add a CPU counter interface to allow access to a free-running counter.
It is useful to measure short time intervals.  This can be used for
example to enable profiling of critical low-level functions.

Add two busy wait functions rtems_counter_delay_ticks() and
rtems_counter_delay_nanoseconds() implemented via the CPU counter.
2014-02-14 10:28:29 +01:00
Sebastian Huber
bab16de267 score: Change debug helper functions
Rename rtems_internal_error_description() to
rtems_internal_error_text().  Rename rtems_fatal_source_description() to
rtems_fatal_source_text().  Rename rtems_status_code_description() to
rtems_status_text().  Remove previous implementation of
rtems_status_text().
2014-02-12 09:18:00 +01:00
Sebastian Huber
920a43e639 rtems: Add rtems_status_code_description() 2014-02-06 08:47:02 +01:00
Sebastian Huber
022851aba5 Add thread-local storage (TLS) support
Tested and implemented on ARM, m68k, PowerPC and SPARC.  Other
architectures need more work.
2014-02-04 10:06:35 +01:00
Chris Johns
2d1bdc8f79 cpukit/rtems: Add rtems_clock_get_uptime_nanoseconds to the RTEMS API.
Add Timestamp support in the score to return a timestamp in nanoseconds.
Add a test.
Update the RTEMS API documentation.
2013-12-24 16:46:19 +11:00
Chris Johns
259328a78d cpukit/shell: Control help break with SHELL_LINES env variable.
Control the help command break with the SHELL_LINES evironment variable
where the numeric value is the number of lines to break on. If the
value is 0 the output is not broken. The default is 16 lines.

Add shell documentation for the help command.
2013-12-16 11:59:51 +11:00
Sahil Patnayakuni
98b9a3b5cb doc/posix_users: add notes and descriptions for pthread_key functions 2013-12-05 10:16:11 -05:00