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

feat: kernel tracing support #191

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft

Conversation

JonasKruckenberg
Copy link
Owner

Until now, kernel debugging was been limited to structured logging through log and while that is great and more than sufficient for release-build logging, for debugging purposes and especially for performance work we need something more sophisticated.

To this end #185 introduced the concept time & initial support for monotonic and wall-time clocks into the kernel, so that we can actually measure things.

This PR lays the groundwork for more sophisticated debugging by bringing tracing support to the kernel. tracing is a standard Rust crate that - in addition to events that log deals with - knows about spans which represent spans of execution between two points in time. Since tracing has been built with asynchronous Rust in mind, spans can also be paused and resumed an arbitrary amount of time (called entering and exiting) which is convenient for tracking execution time in all kinds of multitasking setups.
tracing also features a host of convenient macros to emit these spans.

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.

1 participant