ardupilot/libraries/AP_HAL_Linux
Lucas De Marchi 619ce23799 AP_HAL_Linux: Perf: rework integration with other tools
The idea is to leave the internal perf enabled all the time, like it is
in PX4, and then allow the integration with lttng on top. Next step
would be to runtime enable/disable only the perf counters we are
interested in.

This also changes the structure so it's easy to allow another thread to
pull data from the Perf object. A rw lock protects from addition of new
counters and an atomic unsigned int allows other threads to do a
lockless copy of the data.

In order for this to work the allocation was changed to use a single
memory pool instead of returning a calloc'ed data for each perf counter.
Since most of our counters are of ' elapsed' type, don't bother using a
smaller struct for the 'count' type
2016-06-23 19:06:30 -03:00
..
benchmarks waf: ardupilotwaf: prefix build context methods with ap_ 2016-01-22 20:10:29 -02:00
examples Global: rename enum SPIDevice to SPIDeviceType 2016-02-01 14:18:50 -02:00
qflight HAL_Linux: added qflight README.md 2015-12-27 16:12:27 +11:00
AnalogIn_ADS1115.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
AnalogIn_ADS1115.h AP_HAL_Linux: ADS1115: rename classes to follow other names 2016-02-01 14:18:51 -02:00
AnalogIn_IIO.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
AnalogIn_IIO.h AP_HAL_Linux: AnalogIn_IIO: add scale for minlure 2016-02-19 11:55:31 -02:00
AnalogIn_Navio2.cpp AP_HAL_Linux: Simplification of the code 2016-06-08 11:50:43 -03:00
AnalogIn_Navio2.h AP_HAL_Linux: added AnalogIn_Navio2 2016-02-27 03:06:50 -03:00
AnalogIn_Raspilot.cpp AP_HAL_Linux: remove ifdef checks for HAL_BOARD_LINUX 2016-05-18 23:05:56 -03:00
AnalogIn_Raspilot.h AP_HAL_Linux: AnalogIn_Raspilot: rename classes to follow other names 2016-02-01 14:18:51 -02:00
AnalogIn.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
AnalogIn.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
AP_HAL_Linux_Namespace.h AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
AP_HAL_Linux_Private.h AP_HAL_Linux: rename ToneAlarmDriver to follow other names 2016-03-18 21:51:37 -03:00
AP_HAL_Linux.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
CameraSensor_Mt9v117_Patches.cpp AP_HAL_Linux: move mt9v117 patches inside class 2015-12-18 17:56:06 +11:00
CameraSensor_Mt9v117.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
CameraSensor_Mt9v117.h AP_HAL_Linux: move mt9v117 patches inside class 2015-12-18 17:56:06 +11:00
CameraSensor.cpp AP_HAL_Linux: make CameraSensor follow coding style 2015-12-18 17:56:04 +11:00
CameraSensor.h AP_HAL_Linux: make CameraSensor follow coding style 2015-12-18 17:56:04 +11:00
ConsoleDevice.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
ConsoleDevice.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Flow_PX4.cpp AP_HAL_Linux: Fix typos 2016-05-13 19:20:06 -03:00
Flow_PX4.h AP_HAL_Linux: Flow_PX4: follow coding style 2015-12-18 17:56:05 +11:00
GPIO_BBB.cpp AP_HAL_Linux: Fix compiler warning unused hal 2016-04-24 11:09:55 -03:00
GPIO_BBB.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
GPIO_Bebop.cpp AP_HAL_Linux: Add support for Sonar GPIO 2016-05-03 16:43:39 -03:00
GPIO_Bebop.h AP_HAL_Linux: Add support for Sonar GPIO 2016-05-03 16:43:39 -03:00
GPIO_Minnow.cpp AP_HAL_Linux: add GPIO definitions for minlure 2015-10-22 12:04:52 +11:00
GPIO_Minnow.h AP_HAL_Linux: add GPIO definitions for minlure 2015-10-22 12:04:52 +11:00
GPIO_RPI.cpp AP_HAL_Linux: GPIO: reduce macro and variable scopes 2016-06-21 12:16:32 -03:00
GPIO_RPI.h AP_HAL_Linux: GPIO: reduce macro and variable scopes 2016-06-21 12:16:32 -03:00
GPIO_Sysfs.cpp AP_HAL_Linux: remove ifdef checks for HAL_BOARD_LINUX 2016-05-18 23:05:56 -03:00
GPIO_Sysfs.h AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
GPIO.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
GPIO.h AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
HAL_Linux_Class.cpp AP_HAL_Linux: Simplify I2C initialization in HAL_Linux_Class 2016-05-20 10:12:17 -03:00
HAL_Linux_Class.h AP_HAL_Linux: Remove unused extern declaration for HALs 2015-11-20 16:32:17 +09:00
Heat_Pwm.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
Heat_Pwm.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Heat.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
I2CDevice.cpp AP_HAL_Linux: I2CDevice: add missing stdio.h include 2016-05-16 13:12:53 -03:00
I2CDevice.h AP_HAL_Linux: I2CDevice: method to read multiple times 2016-02-16 19:49:09 -02:00
I2CDriver.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
I2CDriver.h AP_HAL_Linux: Fix typos 2016-05-13 19:20:06 -03:00
OpticalFlow_Onboard.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
OpticalFlow_Onboard.h OpticalFlow_Onboard: fix body rate calculation 2016-01-15 16:11:19 -02:00
Perf_Lttng_TracePoints.h AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
Perf_Lttng.cpp AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
Perf_Lttng.h AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
Perf.cpp AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
Perf.h AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
PWM_Sysfs.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
PWM_Sysfs.h AP_HAL_Linux: fix warning due to derived PWM_Sysfs 2015-12-02 10:43:43 +11:00
px4io_protocol.h AP_HAL_Linux: new files for raspilot 2015-09-14 14:22:16 +10:00
RCInput_AioPRU.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_AioPRU.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput_DSM.cpp HAL_Linux: added qflight board subtype 2015-12-27 16:12:27 +11:00
RCInput_DSM.h HAL_Linux: added qflight board subtype 2015-12-27 16:12:27 +11:00
RCInput_Navio2.cpp AP_HAL_Linux: added RCInput for Navio2 2016-02-27 03:06:50 -03:00
RCInput_Navio2.h AP_HAL_Linux: support 16 RCInput channels on Navio2 2016-05-23 09:12:33 -03:00
RCInput_PRU.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_PRU.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput_Raspilot.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_Raspilot.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput_RPI.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_RPI.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput_UART.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_UART.h RCInput_UART: remove unused _count, _direction 2016-04-23 23:06:23 -07:00
RCInput_UDP_Protocol.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput_UDP.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_UDP.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput_ZYNQ.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput_ZYNQ.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCInput.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCInput.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCOutput_AioPRU.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_AioPRU.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCOutput_Bebop.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_Bebop.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCOutput_PCA9685.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_PCA9685.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCOutput_PRU.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_PRU.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCOutput_qflight.cpp AP_HAL_Linux: always build with MAVLink2 headers 2016-05-21 15:25:16 +10:00
RCOutput_qflight.h HAL_Linux: added qflight board subtype 2015-12-27 16:12:27 +11:00
RCOutput_Raspilot.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_Raspilot.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RCOutput_Sysfs.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_Sysfs.h AP_HAL_Linux: use init() method without arguments 2015-12-02 14:49:11 -02:00
RCOutput_ZYNQ.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RCOutput_ZYNQ.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
RPIOUARTDriver.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
RPIOUARTDriver.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
sbus.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
sbus.h HAL_Linux: added SBUS decoder from PX4 project 2014-10-07 14:57:34 +11:00
Scheduler.cpp AP_HAL_Linux: Scheduler: set stack sizes to 256k 2016-05-12 13:35:23 -03:00
Scheduler.h AP_HAL_Linux: Scheduler: debug stack usage 2016-05-12 13:35:23 -03:00
Semaphores.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
Semaphores.h AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
SerialDevice.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
SPIDevice.cpp AP_HAL_Linux: implement SPIDevice 2016-02-16 19:49:09 -02:00
SPIDevice.h AP_HAL_Linux: implement SPIDevice 2016-02-16 19:49:09 -02:00
SPIDriver.cpp AP_HAL_Linux: fix bhat spi device driver build error 2016-05-20 10:09:50 -03:00
SPIDriver.h AP_HAL_Linux: Add fake device to SPIDriver 2016-02-16 19:49:09 -02:00
SPIUARTDriver.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
SPIUARTDriver.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Storage_FRAM.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
Storage_FRAM.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Storage.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
Storage.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
system.cpp AP_HAL_Linux: ignore unused result on panic 2016-06-23 18:34:01 -03:00
TCPServerDevice.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
TCPServerDevice.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Thread.cpp AP_HAL_Linux: Thread: add doc about rounding function 2016-05-20 16:31:15 -03:00
Thread.h AP_HAL_Linux: Thread: allow to set stack size 2016-05-12 13:35:23 -03:00
ToneAlarm_Raspilot.cpp AP_HAL_Linux: ToneAlarm_Raspilot: add fixme comment 2016-06-21 12:16:32 -03:00
ToneAlarm_Raspilot.h AP_HAL_Linux: rename ToneAlarmDriver to follow other names 2016-03-18 21:51:37 -03:00
ToneAlarm.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
ToneAlarm.h AP_HAL_Linux: rename ToneAlarmDriver to follow other names 2016-03-18 21:51:37 -03:00
UARTDevice.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
UARTDevice.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
UARTDriver.cpp HAL_Linux: cope with MAVLink2 in UDP driver for packetising 2016-05-23 10:10:03 +10:00
UARTDriver.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
UARTQFlight.cpp HAL_Linux: added qflight board subtype 2015-12-27 16:12:27 +11:00
UARTQFlight.h HAL_Linux: added qflight board subtype 2015-12-27 16:12:27 +11:00
UDPDevice.cpp AP_HAL_Linux: fix include order 2016-05-18 23:05:56 -03:00
UDPDevice.h AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Util_RPI.cpp AP_HAL_Linux: Changes in RPi version detection 2016-06-08 11:50:43 -03:00
Util_RPI.h AP_HAL_Linux: remove prefix from AP_HAL_Linux classes 2015-10-21 10:11:19 +11:00
Util.cpp AP_HAL_Linux: Simplification of the code 2016-06-08 11:50:43 -03:00
Util.h AP_HAL_Linux: Perf: rework integration with other tools 2016-06-23 19:06:30 -03:00
VideoIn.cpp AP_HAL_Linux: Enable optical flow onboard for BBBMINI 2016-02-08 08:52:10 -02:00
VideoIn.h AP_HAL_Linux: add shrink_8bpp() to VideoIn 2016-01-15 16:05:47 -02:00