summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/capture (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cpukit/libmisc/capture: Manually change license to BSD-2Joel Sherrill2022-03-227-112/+212
| | | | | | | These files did not follow the standard format and needed to be changed manually. Updates #3053.
* cpukit/capture: Change license to BSD-2Joel Sherrill2022-03-222-6/+44
| | | | Updates #3053.
* capture: Fix unaligned pointer value warningFrank Kühndel2020-10-101-4/+4
| | | | | | | | | | | | | | rtems_name is a four byte integer. Giving an rtems_name as value instead of a pointer to ctrace_task_name_add() fixes not only the compiler warning but it is also a bit more safe For those who have asked for the warning: ../../../cpukit/libmisc/capture/capture_support.c:352:49: warning: taking address of packed member of 'struct rtems_capture_task_record' may result in an unaligned pointer value [-Waddress-of-packed-member] 352 | ctrace_task_name_add (rec_out->task_id, &task_rec.name); | ^~~~~~~~~~~~~~
* capture: Move default trace dataSebastian Huber2020-09-202-28/+37
| | | | | | | Provide the default trace data in a separate file to avoid issues on targets with a small-data area. Close #3883.
* rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber2019-04-092-4/+4
| | | | | | | | | | | Add rtems_scheduler_get_processor_maximum() as a replacement for rtems_get_processor_count(). The rtems_get_processor_count() is a bit orphaned. Adopt it by the Scheduler Manager. The count is also misleading, since the processor set may have gaps and the actual count of online processors may be less than the value returned by rtems_get_processor_count(). Update #3732.
* rtems: Add rtems_scheduler_get_processor()Sebastian Huber2019-04-091-2/+2
| | | | | | | | | | | Add rtems_scheduler_get_processor() as a replacement for rtems_get_current_processor(). The rtems_get_current_processor() is a bit orphaned. Adopt it by the Scheduler Manager. This is in line with the glibc sched_getcpu() function. Deprecate rtems_get_current_processor(). Update #3731.
* Remove explicit file names from @fileSebastian Huber2019-02-281-1/+1
| | | | | | This makes the @file documentation independent of the actual file name. Update #3707.
* capture: prevent unaligned access when reading timeDaniel Hellstrom2018-08-241-1/+3
| | | | | | | | | | | | LLVM warns about this: cpukit/libmisc/capture/capture.c:405:30: warning: taking address of packed member 'time' of class or structure 'rtems_capture_record' may result in an unaligned pointer value [-Waddress-of-packed-member] rtems_capture_get_time (&in.time); And on sparc it generates an unaligned trap which makes smpcapture01 and smpcapture02 test to fail on sparc.
* Remove make preinstallChris Johns2018-01-254-1508/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
* capture: Include <rtems/captureimpl.h>Sebastian Huber2017-12-132-5/+3
| | | | | | Prepare for header file move to common include directory. Update #3254.
* capture/rtems-trace-buffer-vars.c: Fix duplicate const warningJoel Sherrill2017-06-211-1/+1
|
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-021-1/+1
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* rtems: Add rtems_task_iterate()Sebastian Huber2016-11-022-20/+22
| | | | Update #2423.
* score: Rework thread priority managementSebastian Huber2016-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* score: Introduce _Thread_Get_priority()Sebastian Huber2016-09-081-1/+1
| | | | Avoid direct access to thread internal data fields.
* capture: Use proper accessor functionsSebastian Huber2016-09-061-4/+4
|
* capture: Workaround to avoid misaligned accessSebastian Huber2016-09-061-1/+1
| | | | | Move the 64-bit field to a not 64-bit aligned structure offset to stop the compiler from generating 64-bit load/store operations.
* libmisc/capture: Remove the reserved _t in the types.Chris Johns2016-09-018-271/+252
|
* libmisc/capture: Fix the capture engine on SMP.Chris Johns2016-09-019-666/+880
| | | | | | | | | | | | | | | | | | | | | | | 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.
* rtems: Rework RTEMS API to SuperCore prioritySebastian Huber2016-06-222-6/+6
| | | | | Use same structure as POSIX API for thread priority conversion to/from SuperCore.
* capture: Fix use of per-processor dataSebastian Huber2016-05-122-27/+31
| | | | | | Get the current processor index only once and with interrupts disabled. Close #2707.
* capture: Remove superfluous includesSebastian Huber2016-05-121-3/+0
|
* capture: Compact rtems_capture_record_tSebastian Huber2016-05-121-1/+1
| | | | | Order fields according to alignment to reduce structure internal padding.
* capture: Fix buffer allocation and freeSebastian Huber2016-05-122-11/+11
| | | | | | | Do not use function static variables. Remove superfluous volatile qualifiers. Use proper integer types. Close #2706.
* basdefs.h: Add and use RTEMS_UNUSEDSebastian Huber2015-10-262-2/+2
|
* capture: Define __rtld_tbg_lockSebastian Huber2015-04-021-0/+2
|
* libmisc/shell: Add the rtrace command for buffered tracing support.Chris Johns2015-03-312-0/+326
| | | | | The rtrace command interfaces to the RTEMS Trace Linker's trace buffering data allowing users to capture and report trace data.
* capture/capture_support.c: Fix printf() warning and formattingJoel Sherrill2015-03-241-10/+14
|
* libmisc/capture: Clean up formatting on ARM.Chris Johns2015-03-192-22/+29
| | | | | | | | The printing of 64bit diff's for the timestamp did not work on ARM so I have changed this to 32bit. A 32bit nano-second diff between events should be more than enough time. Print '____' for POSIX thread output.
* capture: fix warnings in printGedare Bloom2015-03-161-4/+6
|
* cpukit: Remove old DESCRIPTION: in commentsJoel Sherrill2015-03-113-69/+1
| | | | These were remnants of pre-Doxygen comment style.
* Fix a number of minor Doxygen formatting issuesJoel Sherrill2015-03-062-1/+3
|
* capture: Fix warningsSebastian Huber2015-03-051-5/+5
|
* capture: Fix lock initializationSebastian Huber2015-01-091-6/+11
|
* capture: Resolve failure path memory leak.Jennifer Averett2014-11-251-0/+1
|
* capture: Remove whitespace and fix copyrights.Jennifer Averett2014-11-246-61/+55
|
* capture: Add SMP support.Jennifer Averett2014-11-243-218/+234
| | | | | | 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.
* capture: Move print methods out of cli for reuse.Jennifer Averett2014-11-243-210/+370
| | | | | | | Methods to print the data were moved from capture-cli into a support area and are no longer static so that they can be shared by test routines, or application code that wants to use the capture engine without the shell interface.
* capture: Move logging of task record to occur after filter check.Jennifer Averett2014-11-243-36/+78
| | | | | | | 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.
* capture: Remove ctload command.Jennifer Averett2014-10-281-272/+0
| | | | rtems_cpu_usage_top should be used for this information.
* capture: Removal of capture task tracking.Jennifer Averett2014-10-275-892/+415
| | | | | | | | | | 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.
* capture: Add support for variable length records.Jennifer Averett2014-09-057-70/+467
|
* capture: Split user extension methods out.Jennifer Averett2014-09-053-387/+671
|
* capture: Fix capture engine to handle new extensions.Jennifer Averett2014-07-112-35/+76
|
* capture: Update comment block style in capture engine.Jennifer Averett2014-07-112-416/+378
| | | | Doxygen added and comment blocks standardized.
* score: Simplify _Thread_Change_priority()Sebastian Huber2014-05-151-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* capture: Use ISR lock for SMP supportSebastian Huber2014-04-141-71/+72
|
* cpukit/capture: Print the uptime and diff in ctrace.Chris Johns2013-12-241-17/+17
| | | | | | | | | | | Print the uptime and difference in nanoseconds to the previous record in the ctrace output. For example: 0:00:59.474927121 14760 0a01000c TNTD 235 235 CREATED_BY 0:00:59.474927418 297 0a010012 /dev 235 235 CREATED 0:00:59.474930799 3381 0a01000c TNTD 235 235 STARTED_BY 0:00:59.474931105 306 0a010012 /dev 235 235 STARTED 0:00:59.475072297 141192 0a01000c TNTD 235 235 SWITCHED_OUT
* cpukit/capture: Use the new RTEMS API to get the uptime in nanoseconds.Chris Johns2013-12-243-16/+57
| | | | | Use the new API to get the uptime in nanoseconds and update the capture engine.
* rtems: classic api to/from core priority conversionsDaniel Ramirez2013-12-211-1/+4
|