-
Notifications
You must be signed in to change notification settings - Fork 102
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
rtapp execution gives unreliable actual duty cycle #89
Comments
Actually, it seems more like a calibration issue: rt-app gives very different calibration results from one run to another, but when a good value is found, rt-app seems to execute workloads reliably. EDIT: both issues are present, and seems to share a common cause |
The known-good version I tried was 482e47a |
Hi Douglas, I have run on my hikey 20 times : "rt-app doc/examples/template.json" with the master branch and the calibration stays the same: 151ns. I have also checked the log file of the thread, the variation of the duration of the 10msec run event is 18usec. |
I also tried with static link: I also run tests on the big core of hikey960 and the results are quite similar: the calibration always return 138ns and the variation of the 10 msec run event is only 7usec |
Do you see anything strange in the traces I've attached to the issue ? |
i don't see any strange things. |
Calibration runs as root without tracing. We just run rt-app with idle states disabled, performance cpufreq gov and the rest of the userspace frozen.
Do you mean logging to a file in tmpfs, or a specific rt-app option ? |
"log_size" : 1024, as an example so you will not access file while running events |
I'll give it a go. Is that the same logs as enabled by Also found that util of the task has some kind of low freq component (~120ms period) with the current rt-app. That happened on CPU1 of my Juno R0, although CPU2 was apparently unaffected (they are the same kind of big core). |
logstats ? Do you mean log_timing() ? |
@derkling added "logstats" global option in the JSON produced by LISA, so I assume rt-app knows about it. This is supposed to enable/disable the generation of slack logs, now that they can also be emitted as ftrace events. Let me know if you are interested in a trace where this strange util variation is observed, and fixed by the change to the busy loop |
There is no "logstats" is master branch sha1: 9a50d76 |
Tests when changing the busy loop were conducted on master @ 9a50d76 But rt-app used within LISA is:
This commit SHA1 does not seem to exist in rt-app. @derkling Do you remember if the build of rt-app you upstreamed in LISA ? |
I'll try with |
I've tried with Task utilization with current version of rt-app: With rt-app from #90 : These results seem to be reproducible (I ran multiple iterations with each, always getting similar results). I also ran an integration cycle with the modified version of rt-app and it removed some failures, most notably on the CPUMigration tests that these graphs are taken from. |
I have run your json file on my hikey but still can't reproduce your instability. I would say that this is even quite stable. Then, the theoretical range of util_avg for your migrX-X tasks is [159-211] but with #90 your range is around [110-150] could you try to run my rt-app binary ? so we can check if your instability comes from your compilation env |
Douglas, |
Hi Douglas, Have you done any progress on this topic ? |
Hi @vingu-linaro, sorry for the response delay. The current state of things seems to be:
note: The CPUMigration test in LISA will soon not trigger that issue anymore, since it is going to measure the duty cycle from the trace directly to avoid this kind of issue. |
I have just rerun run your json file on my hikey and tasks are scheduled simultaneously on the same CPU AFAICT. And the util_avg of all tasks stays quite stable: +/-1 at most
yes there is no linear relation between duty cycle and utilization because the period also impact the utilization. The formula is:
|
The following JSON configuration was used on a Juno R0, big core running with "performance" cpufreq governor and idle states disabled:
This leads to active time in a period of ~8.5ms in one trace and ~9ms in another, instead of 8 in both.
traces.tar.gz
This may be related to the "loop" ftrace configuration, will update the ticket with further information as they come.
The text was updated successfully, but these errors were encountered: