Commit Graph

51 Commits

Author SHA1 Message Date
Sebastian Huber
d271c3bb78 rtems: Add rtems_task_iterate()
Update #2423.
2016-11-02 08:46:47 +01:00
Sebastian Huber
1dd8ffff9f capture: Use proper accessor functions 2016-09-06 10:52:19 +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
df23f464be capture: Fix use of per-processor data
Get the current processor index only once and with interrupts disabled.

Close #2707.
2016-05-12 13:24:43 +02:00
Sebastian Huber
d449c12df3 capture: Remove superfluous includes 2016-05-12 13:24:43 +02:00
Sebastian Huber
f97536dcd3 basdefs.h: Add and use RTEMS_UNUSED 2015-10-26 09:13:19 +01:00
Sebastian Huber
16b2de3545 capture: Fix warnings 2015-03-05 11:33:57 +01:00
Sebastian Huber
cfe6d05e3b capture: Fix lock initialization 2015-01-09 14:03:32 +01: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
133962bf2f capture: Split user extension methods out. 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
Sebastian Huber
f39f667a69 score: Simplify _Thread_Change_priority()
The function to change a thread priority was too complex.  Simplify it
with a new scheduler operation.  This increases the average case
performance due to the simplified logic.  The interrupt disabled
critical section is a bit prolonged since now the extract, update and
enqueue steps are executed atomically.  This should however not impact
the worst-case interrupt latency since at least for the Deterministic
Priority Scheduler this sequence can be carried out with a wee bit of
instructions and no loops.

Add _Scheduler_Change_priority() to replace the sequence of
  - _Thread_Set_transient(),
  - _Scheduler_Extract(),
  - _Scheduler_Enqueue(), and
  - _Scheduler_Enqueue_first().

Delete STATES_TRANSIENT, _States_Is_transient() and
_Thread_Set_transient() since this state is now superfluous.

With this change it is possible to get rid of the
SCHEDULER_SMP_NODE_IN_THE_AIR state.  This considerably simplifies the
implementation of the new SMP locking protocols.
2014-05-15 12:18:44 +02:00
Sebastian Huber
2ca0a7be22 capture: Use ISR lock for SMP support 2014-04-14 08:37:04 +02: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
Daniel Ramirez
2bafb96037 rtems: classic api to/from core priority conversions 2013-12-21 20:09:02 -05: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
Sebastian Huber
fe6c170cf5 score: Create states implementation header
Move implementation specific parts of states.h and states.inl into new
header file statesimpl.h.  The states.h contains now only the
application visible API.
2013-07-26 11:55:45 +02:00
Sebastian Huber
1cb75cc4c2 score: Merge wkspace API into one file 2013-07-23 17:19:07 +02:00
Sebastian Huber
4b48ece07d score: Create watchdog implementation header
Move implementation specific parts of watchdog.h and watchdog.inl into
new header file watchdogimpl.h.  The watchdog.h contains now only the
application visible API.
2013-07-22 16:57:25 +02:00
Sebastian Huber
5e86086f1e sapi: Use rtems_config*_get_microseconds_per_tick 2012-11-07 15:08:43 +01:00
Joel Sherrill
721fe34aae Fix C files which had two semi-colons at EOL 2012-05-31 15:34:36 -05: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
a0323a9f8f 2011-02-15 Joel Sherrill <joel.sherrilL@OARcorp.com>
* libmisc/capture/capture.c, posix/src/keyfreememory.c,
	posix/src/pthread.c, score/include/rtems/score/wkspace.h,
	score/src/objectextendinformation.c,
	score/src/objectnamespaceremove.c, score/src/objectsetname.c,
	score/src/threadclose.c, score/src/threadinitialize.c,
	score/src/wkspace.c: Many places were checking for a NULL pointer
	before calling _Workspace_Free. By moving the check into
	_Workspace_Free, we eliminate a number of conditional paths and make
	it harder to return a NULL pointer.
2011-02-16 00:24:49 +00:00
Joel Sherrill
59f1bfe606 2011-01-21 Eric Norum <wenorum@lbl.gov>
* libmisc/capture/capture.c: Avoid using TCB of task just deleted.
2011-01-21 19:40:17 +00:00
Ralf Corsepius
0893220b2a Whitespace removal. 2009-11-29 12:12:39 +00:00
Joel Sherrill
3f727f980e 2009-09-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* libmisc/capture/capture.c, posix/src/pthread.c, rtems/src/tasks.c,
	score/include/rtems/score/userext.h: Eliminate use of deprecated
	rtems_extension. Re-add prototype for _User_extensions_Add_API_set.
2009-09-26 16:17:00 +00:00
Joel Sherrill
6dad79ffa4 2009-09-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* libmisc/capture/capture.c: Use public API to obtain object name.
2009-09-11 14:53:40 +00:00
Ralf Corsepius
031deada15 Add __attribute__((unused)) to unused function args. 2009-01-02 13:04:13 +00:00
Joel Sherrill
26fb4aadcd 2008-12-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* libblock/src/bdbuf.c, libmisc/capture/capture-cli.c,
	libmisc/capture/capture.c, libmisc/mw-fb/mw_uid.c,
	rtems/include/rtems/rtems/support.h, score/Makefile.am,
	score/include/rtems/score/tod.h, score/src/coretod.c,
	score/src/coretodtickle.c: Eliminate all public use of TOD conversion
	routines. Eliminate _TOD_Microseconds_per_tick and let every place
	use the field directly from the Configuration Table. This required
	moving some methods from macros to bodies.
	* score/src/coretodmsecstoticks.c, score/src/coretodtickspersec.c,
	score/src/coretodusectoticks.c: New files.
2008-12-16 20:53:34 +00:00
Joel Sherrill
aac75d3b9b 2008-12-15 Joel Sherrill <joel.sherrill@oarcorp.com>
* itron/include/rtems/itron/itronapi.h, libmisc/capture/capture.c,
	libmisc/monitor/mon-config.c, libmisc/monitor/mon-driver.c,
	libmisc/monitor/mon-itask.c, libmisc/monitor/mon-mpci.c,
	posix/include/rtems/posix/config.h,
	posix/include/rtems/posix/posixapi.h,
	rtems/include/rtems/rtems/config.h,
	rtems/include/rtems/rtems/rtemsapi.h, rtems/src/taskinitusers.c,
	sapi/include/confdefs.h, sapi/include/rtems/config.h,
	sapi/include/rtems/init.h, sapi/src/exinit.c, sapi/src/itronapi.c,
	sapi/src/posixapi.c, sapi/src/rtemsapi.c, score/src/isr.c,
	score/src/thread.c, score/src/threadcreateidle.c,
	score/src/threadstackallocate.c, score/src/threadstackfree.c,
	score/src/wkspace.c: Eliminate pointers to API configuration tables
	in the main configuration table. Reference the main configuration
	table and the API configuration tables directly using the confdefs.h
	version rather than obtaining a pointer to it. This eliminated some
	variables, a potential fatal error, some unnecessary default
	configuration structures. Overall, about a 4.5% reduction in the code
	size for minimum and hello on the SPARC.
2008-12-15 19:21:01 +00:00
Ralf Corsepius
11672356e7 Convert to using "bool". 2008-09-01 11:28:56 +00:00
Ralf Corsepius
347a3feee3 Stop using old-style function-definitions. 2008-08-25 11:03:14 +00:00
Joel Sherrill
6c06288f64 2008-01-29 Joel Sherrill <joel.sherrill@oarcorp.com>
* itron/src/exd_tsk.c, itron/src/task.c, libmisc/capture/capture.c,
	libmisc/monitor/mon-config.c, libmisc/monitor/mon-driver.c,
	libmisc/monitor/mon-itask.c, libmisc/monitor/mon-monitor.c,
	libmisc/monitor/mon-mpci.c, libmisc/monitor/mon-object.c,
	libmisc/monitor/mon-symbols.c, posix/src/cancelrun.c,
	posix/src/pthreadexit.c, rtems/Makefile.am, rtems/preinstall.am,
	rtems/include/rtems.h, rtems/include/rtems/rtems/support.h,
	rtems/inline/rtems/rtems/tasks.inl, rtems/src/eventmp.c,
	rtems/src/msgmp.c, rtems/src/partmp.c, rtems/src/regionmp.c,
	rtems/src/rtemsobjectgetname.c, rtems/src/semmp.c,
	rtems/src/signalmp.c, rtems/src/taskdelete.c, rtems/src/taskmp.c,
	rtems/src/timerserver.c, score/Makefile.am,
	score/include/rtems/score/object.h,
	score/inline/rtems/score/object.inl, score/src/Unlimited.txt,
	score/src/objectgetnameasstring.c,
	score/src/threadqextractwithproxy.c: Add new Object Services
	collection. This changed the name of a few previously public but
	undocumented services and added a some new services.
	* rtems/include/rtems/rtems/object.h, rtems/src/rtemsbuildid.c,
	rtems/src/rtemsbuildname.c, rtems/src/rtemsobjectapimaximumclass.c,
	rtems/src/rtemsobjectapiminimumclass.c,
	rtems/src/rtemsobjectgetapiclassname.c,
	rtems/src/rtemsobjectgetapiname.c,
	rtems/src/rtemsobjectgetclassicname.c,
	rtems/src/rtemsobjectgetclassinfo.c,
	rtems/src/rtemsobjectidapimaximum.c,
	rtems/src/rtemsobjectidapiminimum.c, rtems/src/rtemsobjectidgetapi.c,
	rtems/src/rtemsobjectidgetclass.c, rtems/src/rtemsobjectidgetindex.c,
	rtems/src/rtemsobjectidgetnode.c, rtems/src/rtemsobjectsetname.c,
	score/src/objectapimaximumclass.c, score/src/objectgetinfo.c,
	score/src/objectgetinfoid.c, score/src/objectsetname.c: New files.
	* rtems/src/rtemsidtoname.c: Removed.
2008-01-29 21:52:21 +00:00
Joel Sherrill
ce19f1fa3b 2008-01-23 Joel Sherrill <joel.sherrill@oarcorp.com>
* itron/include/rtems/itron/object.h, itron/src/cre_tsk.c,
	libblock/src/show_bdbuf.c, libmisc/capture/capture-cli.c,
	libmisc/capture/capture.c, libmisc/monitor/mon-manager.c,
	libmisc/stackchk/check.c, posix/src/condinit.c,
	posix/src/keycreate.c, posix/src/mqueuecreatesupp.c,
	posix/src/mqueuedeletesupp.c, posix/src/mqueuenametoid.c,
	posix/src/mqueueopen.c, posix/src/mqueueunlink.c,
	posix/src/mutexinit.c, posix/src/pbarrierinit.c,
	posix/src/prwlockinit.c, posix/src/pspininit.c,
	posix/src/pthreadcreate.c, posix/src/pthreadexit.c,
	posix/src/semaphorecreatesupp.c, posix/src/semaphorenametoid.c,
	posix/src/timercreate.c, rtems/src/barrierident.c,
	rtems/src/dpmemident.c, rtems/src/msgqident.c, rtems/src/partident.c,
	rtems/src/ratemonident.c, rtems/src/regionident.c,
	rtems/src/semident.c, rtems/src/taskident.c, rtems/src/timerident.c,
	sapi/src/extensionident.c, score/Makefile.am,
	score/include/rtems/score/object.h,
	score/inline/rtems/score/object.inl, score/src/apimutexallocate.c,
	score/src/objectextendinformation.c,
	score/src/objectgetnameasstring.c, score/src/objectmp.c,
	score/src/objectnametoid.c: Convert the Objects_Name type from a
	simple type to a union of an unsigned 32 bit integer and a pointer.
	This should help eliminate weird casts between u32 and pointers in
	various places. The APIs now have to explicitly call _u32 or _string
	versions of helper routines. This should also simplify things and
	eliminate the need for ugly casts in some cases.
	* score/src/objectclearname.c, score/src/objectcomparenameraw.c,
	score/src/objectcomparenamestring.c, score/src/objectcopynameraw.c,
	score/src/objectcopynamestring.c: Removed.
2008-01-23 22:57:43 +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
08885d631d Fix typo. 2005-01-05 18:17:01 +00:00
Ralf Corsepius
aed742c9a0 Remove stray white spaces. 2004-04-16 12:06:28 +00:00
Ralf Corsepius
3239698d1f Remove stray white spaces. 2004-04-15 13:26:21 +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
Ralf Corsepius
550c3df787 2003-07-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* capture/capture-cli.c: Add config-header support.
	* capture/capture.c: Add config-header support.
	* cpuuse/cpuuse.c: Add config-header support.
	* devnull/devnull.c: Add config-header support.
	* dummy/dummy.c: Add config-header support.
	* dumpbuf/dumpbuf.c: Add config-header support.
	* monitor/mon-command.c: Add config-header support.
	* monitor/mon-config.c: Add config-header support.
	* monitor/mon-dname.c: Add config-header support.
	* monitor/mon-driver.c: Add config-header support.
	* monitor/mon-extension.c: Add config-header support.
	* monitor/mon-itask.c: Add config-header support.
	* monitor/mon-manager.c: Add config-header support.
	* monitor/mon-monitor.c: Add config-header support.
	* monitor/mon-mpci.c: Add config-header support.
	* monitor/mon-object.c: Add config-header support.
	* monitor/mon-prmisc.c: Add config-header support.
	* monitor/mon-queue.c: Add config-header support.
	* monitor/mon-server.c: Add config-header support.
	* monitor/mon-symbols.c: Add config-header support.
	* monitor/mon-task.c: Add config-header support.
	* mw-fb/mw_fb.c: Add config-header support.
	* mw-fb/mw_uid.c: Add config-header support.
	* rtmonuse/rtmonuse.c: Add config-header support.
	* serdbg/serdbg.c: Add config-header support.
	* serdbg/serdbgio.c: Add config-header support.
	* serdbg/termios_printk.c: Add config-header support.
	* shell/cmds.c: Add config-header support.
	* stackchk/check.c: Add config-header support.
	* untar/untar.c: Add config-header support.
2003-07-08 08:39:16 +00:00
Joel Sherrill
12857dda9a 2002-10-24 Fabrizio Pirovano <pirovano.thysys@tiscalinet.it>
* capture/capture.c, monitor/mon-manager.c, stackchk/check.c:
	Patch to remove problems introduced by object name rework.
2002-10-24 22:19:27 +00:00
Ralf Corsepius
aebc8290f2 2002-07-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* capture/capture.c: include <string.h> for memset.
2002-07-20 09:18:37 +00:00