Commit Graph

33 Commits

Author SHA1 Message Date
Sebastian Huber
2dd098a635 score: Introduce Thread_Scheduler_control::home
Replace Thread_Scheduler_control::control and
Thread_Scheduler_control::own_control with new
Thread_Scheduler_control::home.

Update #2556.
2016-11-02 10:05:45 +01:00
Sebastian Huber
300f6a481a score: Rework thread priority management
Add priority nodes which contribute to the overall thread priority.

The actual priority of a thread is now an aggregation of priority nodes.
The thread priority aggregation for the home scheduler instance of a
thread consists of at least one priority node, which is normally the
real priority of the thread.  The locking protocols (e.g. priority
ceiling and priority inheritance), rate-monotonic period objects and the
POSIX sporadic server add, change and remove priority nodes.

A thread changes its priority now immediately, e.g. priority changes are
not deferred until the thread releases its last resource.

Replace the _Thread_Change_priority() function with

 * _Thread_Priority_perform_actions(),
 * _Thread_Priority_add(),
 * _Thread_Priority_remove(),
 * _Thread_Priority_change(), and
 * _Thread_Priority_update().

Update #2412.
Update #2556.
2016-09-21 08:59:26 +02:00
Sebastian Huber
b20b736382 score: Introduce _Thread_Get_priority()
Avoid direct access to thread internal data fields.
2016-09-08 09:55:28 +02:00
Sebastian Huber
7af6b58c5c capture: Workaround to avoid misaligned access
Move the 64-bit field to a not 64-bit aligned structure offset to stop
the compiler from generating 64-bit load/store operations.
2016-09-06 09:53:08 +02:00
Chris Johns
1c18ebf0d6 libmisc/capture: Remove the reserved _t in the types. 2016-09-01 11:11:45 +10:00
Chris Johns
6da06c559f libmisc/capture: Fix the capture engine on SMP.
This patches some issues with the capture engine:

 1. Check is the engine is open in ctrace commands.
 2. Check all record open and appends for overflow.
 3. Fix the record open to take the size of user data and
    not the record header.
 4. Use packed structs for data being written to the per
    cpu buffers.
 5. Remove direct struct access to the capture buffers to
    avoid misaligned accesses.
 6. Add support to extract records, no struct access to the
    capture buffers.
 7. Update ctrace to extract records from the capture buffers.
 8. Add support to ctrace to always print the task name if it
    has one.
 9. Add support to manage names or the lack of a name.
10. Range of minor fixes.
11. Fix a long standing bug in ctset's handling of args.

Closes #2780.
2016-09-01 11:11:22 +10:00
Sebastian Huber
c82835a231 rtems: Rework RTEMS API to SuperCore priority
Use same structure as POSIX API for thread priority conversion to/from
SuperCore.
2016-06-22 14:00:28 +02:00
Sebastian Huber
7bd18697f8 capture: Compact rtems_capture_record_t
Order fields according to alignment to reduce structure internal
padding.
2016-05-12 13:24:42 +02:00
Joel Sherrill
cc69334f42 Fix a number of minor Doxygen formatting issues 2015-03-06 10:37:55 -06:00
Jennifer Averett
c577500023 capture: Remove whitespace and fix copyrights. 2014-11-24 14:04:54 -06:00
Jennifer Averett
66bf2af278 capture: Add SMP support.
To support smp data was broken into global and percpu capture data.
Capture control must be disabled prior to printing or setting of
watch points.
2014-11-24 14:04:54 -06:00
Jennifer Averett
3d5bcdedfd capture: Move logging of task record to occur after filter check.
The catpture task record is now logged just prior to the first
log entry using that task instead of the first time the task
is seen.  This involved splitting the record task method into
an initialize task and a record task.
2014-11-24 14:04:53 -06:00
Jennifer Averett
05e4e59984 capture: Removal of capture task tracking.
This patch removes functionality for stack checking from
the capture engine and requiresi the use of existing rtems
functions for this information.  It modifies ctload to use
functionality similar to rtems cpuusage.  It removes the
capture task and stores a new capture task record the first
time the task is seen.  The per task data that was still
needed is scaled down and stored in the tcb.
2014-10-27 14:01:13 -05:00
Jennifer Averett
2a86615b98 capture: Add support for variable length records. 2014-09-05 06:50:29 -05:00
Jennifer Averett
463de590f0 capture: Fix capture engine to handle new extensions. 2014-07-11 09:48:50 -05:00
Jennifer Averett
1af8634a84 capture: Update comment block style in capture engine.
Doxygen added and comment blocks standardized.
2014-07-11 09:48:35 -05:00
Chris Johns
9f9c0bbf47 cpukit/capture: Use the new RTEMS API to get the uptime in nanoseconds.
Use the new API to get the uptime in nanoseconds and update the capture
engine.
2013-12-24 16:46:19 +11:00
Chris Johns
db8a89e212 cpukit/capture: Update the capture engine.
The capture did not work due to changes in the workspace allocator.
The engine now scans all existing tasks when enabled and does any
allocations then.

Fixed a bug in the ctset commandi in the CLI.

Updated the capture engine to use 64bit nanosec timestamps.

Fixed the CLI showing the stack usage.
2013-12-19 19:01:23 +11:00
Mathew Kallada
c5782a26b3 Header File Doxygen Enhancement Task #7 2012-12-28 11:17:49 -06:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines
  next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
  contain CVS Ids
+ If the processing left a blank line at the top of
  a file, it was removed.
2012-05-11 08:44:13 -05:00
Ralf Corsepius
e8f0541c34 2011-12-05 Ralf Corsépius <ralf.corsepius@rtems.org>
* libmisc/capture/capture.c:
	Make RTEMS_CAPTURE_* defines unsigned (Avoid implicit
	sign-conversions).
	Make rtems_capture_trigger static (Missing prototypes).
	Make rtems_capture_trigger static (Missing prototypes).
	* libmisc/capture/capture.h:
	Make RTEMS_CAPTURE_WATCH, RTEMS_CAPTURE_TRACED unsigned (Avoid
	implicit sign conversions).
2011-12-05 17:31:19 +00:00
Joel Sherrill
21242c252a 2011-06-24 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/rtems/bspIo.h, include/rtems/concat.h,
	include/rtems/endian.h, include/rtems/fs.h, include/rtems/irq.h,
	include/rtems/pci.h, include/rtems/userenv.h,
	libblock/include/rtems/flashdisk.h,
	libblock/include/rtems/nvdisk-sram.h,
	libblock/include/rtems/nvdisk.h, libcsupport/include/clockdrv.h,
	libcsupport/include/console.h, libcsupport/include/iosupp.h,
	libcsupport/include/spurious.h,
	libcsupport/include/motorola/mc68230.h,
	libcsupport/include/rtems/assoc.h, libcsupport/include/rtems/error.h,
	libcsupport/include/rtems/framebuffer.h,
	libcsupport/include/rtems/gxx_wrappers.h,
	libcsupport/include/rtems/libcsupport.h,
	libcsupport/include/rtems/libio_.h,
	libcsupport/include/rtems/malloc.h,
	libcsupport/include/rtems/termiostypes.h,
	libcsupport/include/sys/statvfs.h, libcsupport/include/sys/termios.h,
	libcsupport/include/sys/utsname.h, libcsupport/include/zilog/z8036.h,
	libcsupport/include/zilog/z8530.h, libcsupport/include/zilog/z8536.h,
	libfs/src/imfs/imfs.h, libfs/src/pipe/pipe.h,
	libmisc/capture/capture-cli.h, libmisc/capture/capture.h,
	libmisc/cpuuse/cpuuse.h, libmisc/devnull/devnull.h,
	libmisc/devnull/devzero.h, libmisc/dumpbuf/dumpbuf.h,
	libmisc/fb/fb.h, libmisc/fb/mw_uid.h, libmisc/mouse/mouse_parser.h,
	libmisc/shell/shellconfig.h, libmisc/stringto/stringto.h,
	libmisc/untar/untar.h, libnetworking/memory.h, posix/include/aio.h,
	posix/include/mqueue.h, posix/include/semaphore.h,
	posix/include/rtems/posix/aio_misc.h,
	posix/include/rtems/posix/barrier.h,
	posix/include/rtems/posix/cond.h, posix/include/rtems/posix/config.h,
	posix/include/rtems/posix/key.h, posix/include/rtems/posix/mqueue.h,
	posix/include/rtems/posix/mutex.h,
	posix/include/rtems/posix/posixapi.h,
	posix/include/rtems/posix/priority.h,
	posix/include/rtems/posix/psignal.h,
	posix/include/rtems/posix/pthread.h,
	posix/include/rtems/posix/ptimer.h,
	posix/include/rtems/posix/rwlock.h,
	posix/include/rtems/posix/semaphore.h,
	posix/include/rtems/posix/sigset.h,
	posix/include/rtems/posix/spinlock.h,
	posix/include/rtems/posix/threadsup.h,
	posix/include/rtems/posix/time.h, posix/include/rtems/posix/timer.h,
	posix/inline/rtems/posix/barrier.inl,
	posix/inline/rtems/posix/cond.inl,
	posix/inline/rtems/posix/mqueue.inl,
	posix/inline/rtems/posix/mutex.inl,
	posix/inline/rtems/posix/priority.inl,
	posix/inline/rtems/posix/pthread.inl,
	posix/inline/rtems/posix/rwlock.inl,
	posix/inline/rtems/posix/semaphore.inl,
	posix/inline/rtems/posix/spinlock.inl,
	posix/inline/rtems/posix/timer.inl, rtems/mainpage.h,
	rtems/include/rtems/rtems/barrier.h,
	rtems/include/rtems/rtems/object.h,
	rtems/include/rtems/rtems/timer.h,
	rtems/inline/rtems/rtems/barrier.inl,
	rtems/inline/rtems/rtems/timer.inl,
	rtems/src/semtranslatereturncode.c, sapi/include/rtems/config.h,
	sapi/include/rtems/fatal.h, sapi/include/rtems/mptables.h,
	score/include/rtems/score/object.h,
	score/include/rtems/score/priority.h,
	score/inline/rtems/score/object.inl,
	score/inline/rtems/score/priority.inl: Add @file Doxygen directives
	and descriptions to files which originated with RTEMS. This improves
	the file list page generated by Doxygen.
2011-06-24 17:52:58 +00:00
Ralf Corsepius
33c3b54d57 Whitespace removal. 2009-11-29 11:57:23 +00:00
Ralf Corsepius
15baee5af9 2009-11-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* libmisc/capture/capture.h (RTEMS_CAPTURE_CONTROL_FROM_MASK):
	Use UINT32_C(1) to avoid overflow in implict typecast on 16bit
	targets.
2009-11-08 08:15:59 +00:00
Ralf Corsepius
11672356e7 Convert to using "bool". 2008-09-01 11:28:56 +00:00
Ralf Corsepius
30b8ac1cc4 Add missing prototypes. 2008-07-29 11:49:50 +00:00
Chris Johns
dec8f84375 2007-12-03 Chris Johns <chrisj@rtems.org>
* libmisc/shell/shell.h: Added comments for the parameters to the
	shell_init function.
	* libmisc/shell/shell.c: Only set cflags if tcflags is
	non-zero. This means the shell can use the current cflags settings
	and the application does not need to know the baudrate etc.
	* libmisc/capture/capture.h: Fix the comment.
2007-12-03 02:22:35 +00:00
Chris Johns
1374fd3f07 2007-08-17 Chris Johns <chrisj@rtems.org>
* libmisc/capture/README: Minor copyright change.
	* libmisc/capture/capture-cli.c, libmisc/capture/capture.c,
	libmisc/capture/capture.h: Fixed the memory leak when lots of
	tasks are being created and deleted. Improved the trigger
	interface so all task type actions can be caught.
2007-08-17 00:54:16 +00:00
Eric Norum
32293d6929 Add ability to free information on task delete. 2006-04-27 18:17:20 +00:00
Ralf Corsepius
cbd76915cf 2004-12-02 Ralf Corsepius <ralf.corsepius@rtems.org>
* libmisc/capture/capture-cli.h, libmisc/capture/capture.h,
	libmisc/monitor/monitor.h, libmisc/rtmonuse/rtmonuse.h,
	libmisc/shell/shell.h: Partial doxygenification.
	* libmisc/capture/capture.h: Use INT32_C for constants.
2004-12-02 18:20:51 +00:00
Ralf Corsepius
aed742c9a0 Remove stray white spaces. 2004-04-16 12:06:28 +00:00
Ralf Corsepius
3e08d4ee62 2004-03-26 Ralf Corsepius <ralf_corsepius@rtems.org>
* libmisc/capture/capture-cli.c, libmisc/capture/capture.c,
	libmisc/capture/capture.h, libmisc/cpuuse/cpuuse.c,
	libmisc/devnull/devnull.c, libmisc/fsmount/fsmount.h,
	libmisc/monitor/mon-config.c, libmisc/monitor/mon-dname.c,
	libmisc/monitor/mon-driver.c, libmisc/monitor/mon-extension.c,
	libmisc/monitor/mon-itask.c, libmisc/monitor/mon-monitor.c,
	libmisc/monitor/mon-mpci.c, libmisc/monitor/mon-object.c,
	libmisc/monitor/mon-prmisc.c, libmisc/monitor/mon-queue.c,
	libmisc/monitor/mon-server.c, libmisc/monitor/mon-symbols.c,
	libmisc/monitor/monitor.h, libmisc/monitor/symbols.h,
	libmisc/mw-fb/mw_uid.c, libmisc/rtmonuse/rtmonuse.c,
	libmisc/serdbg/serdbg.h, libmisc/serdbg/serdbgio.c,
	libmisc/serdbg/termios_printk.c, libmisc/serdbg/termios_printk.h,
	libmisc/shell/shell.c, libmisc/shell/shell.h, libmisc/stackchk/check.c,
	libmisc/stackchk/internal.h: Convert to using c99 fixed size types.
2004-03-26 06:59:18 +00:00
Joel Sherrill
a923a82d2d 2002-05-16 Chris Johns <ccj@acm.org>
* Per PR194, added the Capture engine.
	* capture/Makefile.am, capture/README, capture/capture-cli.c,
	capture/capture-cli.h, capture/capture.c, capture/capture.h,
	capture/.cvsignore: New files.
	* Makefile.am, configure.ac, wrapup/Makefile.am: Modified to
	reflect addition.
2002-05-15 16:36:10 +00:00