-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Report true average task execution time in tasks report #11446
Conversation
I tried PR betaflight_4.3.0_CRAZYBEEF4SX1280_5bbe500.hex.zip Average tasks seems to normal between befor binding rx and after binding rx. but osd delay when rx not connected.
|
@bike797 Thank you for that testing. You revealed an issue when, when no signal was being received the RX task was performing processing every time the check routine was called (so about 30000 times per second!) and this was making the CPU rather too busy to properly handle the OSD. I've revised this to limit such processing to once every 10ms which is plenty fast enough and still ensures that the RC channels are promptly updated in the event of a failsafe. betaflight_4.3.0_CRAZYBEEF4SX1280_d118e70.hex.zip |
15 packs with BETAFPVF4SX1280 5bbe500 on a DarwinFPV, Darwin ELRS2.0 F411 15A Bluejay AIO, and I noticed no issues with OSD, no failsafes. Im flying 1S 3" and frankly, it's absolutely ripping. This board seems more robust than BetaFPVSX1280, and CrazybeeSX1280 (of which I have 1, and 6 units respectively,) somehow consistently showing 10-15% less cpu usage with the same config. Anyway I'll test the latest image d118e70 now. I did rip 4-5 packs on a Crazybeesx1280 5bbe500 and the first pack I failsafed about 25m out, and link never recovered. No problem on the next few packs. Also, the link is not dropping out when I cal or trim the acc with stick commands, which is great! I'll just keep ripping packs unless someone would like to see specific type of testing. I do have video of the above mentioned fs, but seems that may not be relevant now. Oh, also, I'm flying 500hz, 2.67k gyro loop, dshot300, rpmfilter, on everything, and my 1s 3" has a wicked tune, fast, responsive, almost no propwash, 4 min hard ripping on 660mah, seriously never seen 1S like this. You should hear the motors! Anyway, things have come a really long way from a few weeks ago. You guys really blow my mind. Thanks so much for the hard work. |
@SantiCO19 thanks for testing. Sounds like you’re enjoying it! Please do test the latest image and feedback if the OSD is updating correctly with the radio link established or not. Perhaps set a timer with tenths enabled to help confirm this. |
Latest push inhibits the stats display when a disarm occurs due to a failsafe. This allows the betaflight_4.3.0_BETAFPVF4SX1280_667847d.hex.zip |
57530bd
to
cc3552b
Compare
The fixes related to failsafe CPU load (and thus the impact on OSD performance) and honouring of timing are now moved to #11459. |
Flew a dozen packs using betaflight_4.3.0_CRAZYBEEF4SX1280_667847d.hex today. Flew great. Keep up the great work. |
Some description of what the actual issue was would help understanding here. It's not immediately obvious by looking at the change-set. |
@hydra Description updated |
@SteveCEvans ok, that is much clearer now, thank you! |
Thinking about it, can we now change the output of tasks so that it's clearer which are estimates, and which are not. Perhaps one or more of:
Currently people will make comparisons between old values and new values and will not be aware that they are now reported differently, changing the |
@haslinghuis Since this has been merged without waiting for further comments / suggestions after the description was updated I have raised a bug report, #11466 so my suggestions above can be tracked and actioned accordingly. |
Fixes #11445
With ELRS connected on a BETAFPVF4SX1280 the tasks command now reports the correct average task loads, but it is noticeable that the max loads are much higher. This is due to tasks being delayed by the peaks of interrupt activity caused by ELRS and is perfectly OK.
The CPU load is a true average whereas the figure being presented as a task average relates (in master) not to the average time the tasks are taking, but the scheduler's estimate of how much time allow for the tasks to run which is more conservative and higher.