Skip to content
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

perf: vectored interrupt improvements #121

Merged
merged 1 commit into from
Jul 27, 2022

Conversation

MabezDev
Copy link
Member

Instead of building a table of all configured interrupts,
we now only check the currently pending interrupts configuration
status. This means in the best-case scenario we only ever do one
lookup instead of the 60+ we did before.

Tested on esp32c3, gpio_interrupt example:

Before: 850cycles from handler_interrupts to the actual handler
After: 125cycles

Closes #119

Instead of building a table of _all_ configured interrupts,
we now only check the currently _pending_ interrupts configuration
status. This means in the best case scenario we only ever do _one_
lookup instead of the 60~ we did before.

Tested on esp32c3, gpio_interrupt:

Before: 850cycles from `handler_interrupts` to the actual handler
After: 125cycles
Copy link
Contributor

@bjoernQ bjoernQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome - works great!

@bjoernQ bjoernQ merged commit 1bf89b3 into main Jul 27, 2022
@jessebraham jessebraham deleted the perf/improve-vectored-intr-latency branch October 27, 2022 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Explore improving interrupt latency with vectoring
2 participants