-
Notifications
You must be signed in to change notification settings - Fork 2k
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
sys/xtimer: make xtimer_ztimer_compat default backend #17721
sys/xtimer: make xtimer_ztimer_compat default backend #17721
Conversation
42a294e
to
b99946a
Compare
1dc1be4
to
a0e5010
Compare
With this commit xtimer will always be implemented with ztimer. The default compat layer will be ztimer_xtimer_compat, so xtimer calls will be inlined to ZTIMER_USEC, or ZTIMER64_USEC when the 64bit xtimer API is required. This can be reverted by adding 'xtimer_no_ztimer_default' module to a build.
3c93df9
to
20e68fb
Compare
I ran all test on a series of BOARDs besides usually failing tests or tests known to fail I see just as in the murdock run that |
I ran tests on multiple BOARD, the only failure that seems relevant is |
For the record here is a comparison, this kind of difference is not observed on other platforms.
|
I wanted to see if there was another arch where we would observe this increase because of what seems to be the use of Since its only one platform that is not very used, I still think we should be moving on with this PR, in parallel we could start working into the init logic how to use different All benchmarks where ran with USEMODULE+=ztimer_no_periph_rtt nrf52dk-tests/bench_ztimer_usec
nrf52dk-tests/bench_ztimer_msec
nrf52dk-tests/bench_ztimer64_usec
nucleo-l073rz-tests/bench_ztimer_usec
nucleo-l073rz-tests/bench_ztimer_msec
nucleo-l073rz-tests/bench_ztimer64_usec
nucleo-l152re-tests/bench_ztimer_usec
nucleo-l152re-tests/bench_ztimer_msec
nucleo-l152re-tests/bench_ztimer64_usec
z1-tests/bench_ztimer_usec
z1-tests/bench_ztimer_msec
z1-tests/bench_ztimer64_usec
arduino-mega2560-tests/bench_ztimer_usec
arduino-mega2560-tests/bench_ztimer_msec
arduino-mega2560-tests/bench_ztimer64_usec
|
So, probably msp430 with 8 mhz really doesn't like what ztimer is doing (maybe ztimer_convert_frac?). |
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.
ACK.
This is the culmination of tons of work, I'm happy to see it done!
(there's some CI blacklisting that's not directly caused by the switch to ztimer, they could be split out but our CI would turn that another day of waiting...)
Opened the issue for z1 #17845. |
Contribution description
This PR make
xtimer_ztimer_compat
the defaultxtimer
backend. Oldxtimer
code is kept and can be selected by asking forxtimer_no_ztimer_default
, or in Kconfig by selectMODULE_XTIMER_NO_ZTIMER_BACKEND
. So as suggested in #17721 (comment) this PR change now limits to a oneliner for Kconfig and make.With this commit
xtimer
code is not used anymore except forxtimer
specific tests:xtimer_now32_overflow
andxtimer_now64_continuity
.So to summarize anyone wanting to revert back can do:
Or from the command line
Testing procedure
Issues/PRs references
#17111