Commit Graph

82 Commits

Author SHA1 Message Date
Tamas Nepusz c544f3dd01 AP_Scheduler: corrected tick counter overflow handling, fixes #17642 2021-06-10 12:46:27 +10:00
Andrew Tridgell f6ec48e0e2 AP_Scheduler: removed perf counters 2021-06-07 14:29:27 +10:00
Patrick José Pereira 806bc4898b AP_Scheduler: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Andrew Tridgell 6da0212ce4 AP_Scheduler: use ExpandingString class 2021-01-05 10:52:00 +11:00
Michael du Breuil 0f5179d204 AP_Scheduler: Emit last internal error line 2020-11-03 11:04:13 +11:00
Andy Piper af8d6c5fc9 AP_Scheduler: add the fast loop to task statistics 2020-10-07 18:08:19 +11:00
Andy Piper 958c19543f AP_Scheduler: print task total time as a percentage of all tasks time 2020-09-30 17:37:20 +10:00
Andy Piper 5b5b9d57a1 AP_Scheduler: add per-task performance information accesible from @SYS/tasks.txt
print fully qualified name on most boards
remove old task slip message
Don't die on allocation failure.
dynamically allocation/free task info based on SCHED_OPTIONS
dynamically enable task info on ftp get
2020-09-09 17:06:12 +10:00
Andy Piper a16bb2f188 AP_Scheduler: allow registration of tasks at loop rate 2020-02-22 11:15:37 +11:00
Michael du Breuil c257cea375 AP_Scheduler: Add a lock that is held during all normal operations 2020-02-18 09:16:10 +11:00
Peter Barker 5580196b1c AP_Scheduler: move clamping of loop rate to init function
Parameters may not be available in the constructor, and that's what we
need to be clamping.
2020-02-06 14:41:06 +11:00
Andy Piper debc13965a AP_Scheduler: add common tasks from AP_Vehicle and manage them 2019-12-30 13:02:04 +11:00
Andrew Tridgell ddde512b74 AP_Scheduler: use fill_nanf() on each scheduler function 2019-10-01 17:35:26 +10:00
Andrew Tridgell 79acaeaef1 AP_Scheduler: cope with high CPU load by stretching loop times
this adds an extra budget of time per loop when we are not achieving
scheduled tasks at a rate of at least 1/8 of the desired rate. This
fixes an issue where a vehicle can become uncontrollable if the user
asks for a SCHED_LOOP_RATE which is not achievable. As these events
happen we add extra loop budget until we are able to run all tasks. We
drop the extra time when the CPU pressure eases.
2019-09-19 18:25:20 +10:00
Andrew Tridgell 4027d61e17 AP_Scheduler: log I2C ISR count 2019-08-26 09:13:39 +10:00
Peter Barker cc7044b360 AP_Scheduler: include internal error count in PM log message 2019-06-12 10:05:59 +10:00
Andrew Tridgell 4888583e17 AP_Scheduler: use task -3 for wait_for_sample() 2019-05-17 09:00:22 +10:00
Andrew Tridgell e801821f0c AP_Scheduler: log SPI and I2C counters in PM msg 2019-05-17 08:56:06 +10:00
Andrew Tridgell 49061aae67 AP_Scheduler: use persistent_data for current_task 2019-05-15 15:33:48 +10:00
Peter Barker 82f8a7fa1b AP_Scheduler: include internal errors in dataflash PM message 2019-03-21 21:34:33 +11:00
Tom Pittenger 155a1b7ec7 AP_Scheduler: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Peter Barker 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Peter Barker 01e0c03a12 AP_Scheduler: add singleton 2018-06-15 08:01:22 +10:00
Peter Barker c4ea83177f AP_Scheduler: remove unused ins error count logging 2018-04-04 14:21:20 +01:00
Peter Barker d5c57d949b AP_Scheduler: eliminate goto update_spare_ticks 2018-03-22 10:01:45 +11:00
Peter Barker badfde6f18 AP_Scheduler: use continue instead of nested-if (NFC) 2018-03-22 10:01:45 +11:00
Peter Barker 224ea50260 AP_Scheduler: continue in place of nested if (NFC) 2018-03-22 10:01:45 +11:00
Mark Whitehorn 919383a739 AP_Scheduler: add load_average() to PM log message 2018-02-21 23:53:08 +10:00
Andrew Tridgell 6cc007598e AP_Scheduler: initialise _last_loop_time_s in init() 2018-02-13 17:15:05 +11:00
Andrew Tridgell 491715bec7 AP_Scheduler: added get_last_loop_time_s()
this gives compatibility with previous G_Dt in copter
2018-02-13 17:15:05 +11:00
Andrew Tridgell f436901517 AP_Scheduler: fixed perf info to match previous behaviour 2018-02-13 17:15:05 +11:00
Andrew Tridgell e0c9d9b592 AP_Scheduler: fixed loop time available 2018-02-13 17:15:05 +11:00
Andrew Tridgell 24d6493453 AP_Scheduler: make loop times cover INS wait_for_sample
this matches past behaviour, and gives much more useful information to
a user wanting to know if their board it meeting its desired loop rate
2018-02-13 17:15:05 +11:00
Peter Barker 73c0905b5e AP_Scheduler: pass log-performance-bit at init time rather than update time 2018-02-13 17:15:05 +11:00
Peter Barker 4672e9d4eb AP_Scheduler: resolve debug name conflict 2018-02-13 17:15:05 +11:00
Peter Barker d3c1b720c6 AP_Scheduler: move logging of PM messages to AP_Scheduler 2018-02-13 17:15:05 +11:00
Peter Barker d151b27e92 AP_Scheduler: move PERF: statustext sending into AP_Scheduler 2018-02-13 17:15:05 +11:00
Peter Barker baa6e04854 AP_Scheduler: change loop time to remove sleeping in wait_for_sample 2018-02-13 17:15:05 +11:00
Peter Barker 4909000441 AP_Scheduler: implement loop() 2018-02-13 17:15:05 +11:00
Andrew Tridgell 8dcf89b2b7 AP_Scheduler: put scheduler debug on console 2018-02-08 17:36:33 +11:00
Andrew Tridgell 8b0e9bcff4 AP_Scheduler: use pre-computed loop constants
this prevents changing the loop rate without a reboot. Too many
subsystems rely on a consistent loop rate to allow it to be changed
2018-01-20 15:35:58 +11:00
Andrew Tridgell 44dd079cb9 AP_Scheduler: allow for loop rates above 400Hz
with ChibiOS we can run copter at 1KHz with no scheduling misses. This
small PR allows that to be configured.
2018-01-20 10:40:37 +11:00
Peter Barker b445313bf1 AP_Scheduler: remove loop-period argument from load_average
This now comes from a parameter rather than being hard-set
in the vehicle code

Also adds a method returning the max loop period based on the
loop rate
2017-08-01 19:39:27 +01:00
Andrew Tridgell 56aa467d60 AP_Scheduler: adjust debug levels
this is more useful for performance analysis of scheduler, using perf
command
2017-05-01 15:02:34 +10:00
jaxxzer ccb6434831 AP_Scheduler: Set main loop rate to 400hz for Sub 2017-02-21 11:26:14 +11:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
murata 7721290160 AP_Scheduler:time_available value type invalid uint16_t to valid uint32_t. 2016-07-25 20:18:16 -03:00
Andrew Tridgell 63d0c040e4 AP_Scheduler: expose loop rate on all builds
as discussed with Randy
2016-06-17 15:02:28 +10:00
Andrew Tridgell fb4cdafef8 AP_Scheduler: allow SCHED_LOOP_RATE for copter in SITL
very useful for slow simulation environment
2016-06-17 15:01:18 +10:00