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
tests/bench_xtimer: initial import #12942
tests/bench_xtimer: initial import #12942
Conversation
4ffc222
to
4b17f38
Compare
All boards are now sorted into their corresponding memory lists. |
Sorry, I accidentally squashed those commits. |
Murdock shows an unrelated failure in tests/shell on esp32-wroom-32. I'll trigger again. |
@MichelRottleuthner We'll get numbers!! 😉 |
Awesome, thanks for adding this! As I said before I won't really have time to spend time on this till beginning of next year but I'm very eager to see the results 😃 |
@MichelRottleuthner could we maybe fasttrack this to make testing #9530 for (too heavy) regressions easier? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit short on time today, but I'd be fine with fast-tracking this one as it won't break anything.
Regarding #9530 I just wonder how much value we get out of benching a currently not working implementation against a (hopefully) working solution. I'd still prefer the degraded performance over a non-working solution with better performance characteristics ;)
One thing that should be added to the readme is a short description on how to interpret the values.
Looking at the results of a first try it looks like at least for set() one
remove() one
set() + remove() one
and xtimer_now()
need more repetitions to give a more precise calculated end result.
I didn't at all look at how reasonable the benches are. But even executing all basic operations a few times gives us something as a starting point for comparison and it can be easily extended later.
Each board was run on the HiL setup which means raspberry pi 3s so maybe that affects timing. Three runs for each board. samr21-xpro
nrf52dk
nucleo-l073rz
nucleo-f411re
remote-revb
arduino-mega2560
nucleo-f103rb
frdm-k22f
slstk3401a
arduino-mkrzero
nucleo-f767zi
frdm-kw41z
a different arduino-mega2560
saml10-xpro
esp32-wroom-32
arduino-due
|
@kaspar030 can you just look over the results so they make sense to you and maybe note why the bold ones could be failing (I am willing to accept it is my setup as an arduino-mega2560 passed but a different one was failing). |
I agree on the arduino. My local one works fine.
The others look fine! |
I've added some description.
Do you think? The numbers are very stable, more iterations don't change them. Just the last printout is truncated. I'd rather keep it as is to have fast running tests. For accurate numbers, we can always manually use the numbers before division.
Yup. They already show some things, e.g., if the implicit "remove() on set()" is properly optimized, or that msp430 seems to be very slow in the list operations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added some description.
Looks very good!
(...) Just the last printout is truncated. I'd rather keep it as is to have fast running tests. For accurate numbers, we can always manually use the numbers before division.
Ok.
You said the remote just seems to be reeeally slow, but the test shouldn't create a kernel panic in these cases, right? Apart from that I'm fine with merging this PR. See below for small typos etc..
Well, all timers are set at |
addressed! |
I don't have access to a remote right now but tomorrow we can re-test. After confirmed working we should go ahead and merge this. Feel free to squash already. |
68679a7
to
d89debd
Compare
Test output for
|
I know why, this PR doesn't have the change so that the board is not reset after term is opened. |
remote-revb is working. I guess this just needs an ACK. |
Maybe because test tries to reset which changes the baud of the connection? |
Nice one! |
Contribution description
This PR provides a basic benchmark for some of xtimer's operations.
Testing procedure
Please comment if the benchmaring methodology makes sense.
The usual review otherwise.
Issues/PRs references